【七天入门数据库】第三天 MySQL的库表操作

news2024/11/26 11:56:26

系列文章传送门:

【七天入门数据库】第一天 MySQL的安装部署

【七天入门数据库】第二天 数据库理论基础

【七天入门数据库】第三天 MySQL的库表操作

文章目录

一、SQL语句书写规范

二、数据库的操作

三、表的基本操作

四、表的约束

五、存储引擎

六、MySQL的用户授权

七、实践作业

一、SQL语句书写规范

(一)SQL语句不区分大小写(建议大写) , 但字符串常量区分大小写。

(二)SQL语句可单行或多行书写,以“;”结尾。 关键词不能跨多行或简写。

(三)用空格和缩进来提高语句的可读性,子句通常位于独立行,便于编辑,提高可读性。

(四)注释:   /**/多行注释    “--” 单行注释 

二、数据库的操作

(一)MySQL自带数据库

Information_schema:主要存储了系统中的一些数据库对象信息,如用户表信息、列信息、权限信息、字符集信息、分区信息等。(数据字典表)。

performance_schema:主要存储数据库服务器的性能参数。

sys:5.7新增,之前版本需要手工导入。这个库是通过视图的形式把以上两个结合起来,查询出更加令人容易理解的数据。

mysql:存储了系统的用户权限信息及帮助信息。        

test:系统自动创建的测试数据库,任何用户都可以使用。

(二)创建数据库

create database [if not exists] 库名;

(三)删除数据库

drop database [if exists] 库名;

(四)使用数据库

use 库名;

(五)查询数据库信息

1、查看所有数据库:show databases;

2、查看当前使用的数据库:select database();

3、查看当前的用户:select user();

4、查看指定数据库的指定字段:select 字段名 from 库名;

(六)执行系统命令

system 命令;

三、表的基本操作

(一)创建表

create table 表名(
    列名 列类型 comment '备注' ,
    列名 列类型 comment '备注'
    );

(二)数据类型

文本:TEXT   65535字节(有细分4种)

字符串:CHAR    varchar()  可变化长度

二进制文本:BLOB  (有细分3种)

枚举:ENUM(‘a’,‘b’,....)

浮点型:FLOAT (size,d)    size:总位数   d:小数点后几位

(三)查看表信息

select 字段名 from 库名;

用“show create table 表名\G”可以查看更全面的表定义信息

(四)删除表

drop table [if exists] 表名;

(五)修改表的结构

1、修改列类型:alter table 表名 modify 列名 列类型;

2、增加列:alter table 表名 add 列名 列类型;

3、删除列:alter table 表名 drop 列名;

4、列改名:alter table 表名 change 旧列名 新列名 列类型;

5、更改表名:alter table 表名 rename 新表名;

(六)复制表

1、只复制表的结构:create table 新表名 like 源表

2、只复制数据:insert into 表 select * from 原表;

3、复制结构和数据:create table 新表名 select * from 源表

(七)数据库字典

由information_schema数据库负责维护

tables-存放数据库里所有的数据表、以及每个表所在数据库。
schemata-存放数据库里所有的数据库信息
views-存放数据库里所有的视图信息。
columns-存放数据库里所有的列信息。
triggers-存放数据库里所有的触发器。
routines-存放数据库里所有存储过程和函数。
key_column_usage-存放数据库所有的主外键
table_constraints-存放数据库全部约束。
statistics-存放了数据表的索引。

四、表的约束

       约束是在表上强制执行的数据校验规则,主要用于保证数据库的完整性,当表中数据有相互依赖性时,可以保护相关的数据不被删除。

(一)非空约束(not null)

列级约束,只能使用列级约束语法定义,确保字段值不允许为空,只能在字段级定义。

所有数据类型的值都可以是NULL,空字符串不等于NULL,0也不等于NULL。

例如:stu_name varchar(18) not null

(二)唯一约束(unique)

唯一性约束条件确保所在的字段或者字段组合不出现重复值

例如:stu_name varchar(18) unique not null

(三)主键约束(primary key)

主键从功能上看相当于非空且唯一,一个表中只允许一个主键,是表中唯一确定一行数据的字段,可自动增长,当建立主键约束时,MySQL为主键创建对应的索引。

例如:stu_id  int  primary key auto_increment

(四)外键约束

外键是构建于一个表的两个字段或者两个表的两个字段之间的关系,子表外键列的值必须在主表参照列值的范围内,或者为空),当主表的记录被子表参照时,主表记录不允许被删除。外键参照的只能是主表主键或者唯一键,保证子表记录可以准确定位到被参照的记录。

foreign key (外键列名) references 主表(参照列) on delete/updata +设置

设置:

  • restrict: 默认,不允许删除的
  • cascade: 级联: 联动
  • no action: 什么也不做
  • set null: 设置为null 

(五)检查约束

注意检查约束在8.0之前,MySQL默认但不会强制的遵循check约束(写不报错,但是不生效,需要通触发器完成。

例如:age int check(age > 18)

(六)默认值

可以使用default关键字设置每一个字段的默认值。

例如:default 'M'

(七)添加表的约束

添加NOT NULL约束:alter table 表名 add 列名 类型;

添加UNIQUE约束:alter table 表名 add unique 列名;

添加PRIMARY KEY约束:alter table 表名 add primary key 列名;

添加FOREIGN KEY约束:alter table 表名 add foreign key 列名 references parent 列名;

(八)删除表的约束

删除NOT NULL约束:alter table 表名 modify 列名 类型;

删除UNIQUE约束:alter table 表名 drop index 惟一约束名;

删除PRIMARY KEY约束:alter table 表名 drop primary key;

删除FOREIGN KEY约束:alter table 表名 drop foreign key 外键名;

删除CHECK约束:alter table 表名 drop check 检查约束名;

五、存储引擎

MySQL中的数据用各种不同的技术存储在文件(或者内存)中, 每种技术都使用不同的存储机制、 索引技巧、 锁定水平。这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型)。

插件式存储引擎是MySQL数据库最重要的特性之一, 用户可以根据应用的需要选择如何存储和索引数据、 是 否使用事务等。

默认情况下, 创建表不指定表的存储引擎, 则会使用配置文件的my.cnf中default-storage-engine=InnoDB指定的InnoDB

 SHOW VARIABLES LIKE 'table_type'; 

MyISAM:应用于以读写操作为主, 很少更新 、 删除 , 并对事务的完整性、 并发性要求不高的情况

InnoDB::应用于对事务的完整性要求高,在并发条件下要求数据的一致性的情况。现在的默认值。

MEMORY:表的数据存放在内存中,访问效率高 ,但一旦服务关闭,表中的数据全部丢失。

MERGE: 是一组MyISAM表的组合。 可以突破对单个MyISAM表大小的限制, 并提高访问效率。

六、MySQL的用户授权

(一)密码策略

查看密码:grep 'password' /var/log/mysqld.log

查看数据库当前密码策略: show VARIABLES like "validata_password%";

(二)授权和撤销授权

查看某用户权限:show grants for '用户名'@'地址';

删用户:drop user 用户名;

授权:grant 权限列表 on  库名.表名  to '用户名'@'客户端主机' ;

刷新权限:flush privileges;

移除权限:revoke 权限列表 on  库名.表名  from '用户名'@'客户端主机' ;

权限列表:select,insert,update,delete,create

七、实践作业

一、创建数据库,删除数据库,查询创建数据的语句,使用数据库,查询当前默认的数据库以及使用的编码方式校验规则。

1、创建、删除数据库

b73c1fcca7da458393fa8738487f4af4.png

2、 使用数据库,查询创建数据

e201579881044717b9e14aa8f786a486.png

3、查询当前默认的数据库

da5562bf73ab4c24906668fc657c6390.png

 4、查询当前使用的编码方式校验规则

a57fc0e686d54ae2a1cd48faff50f4cc.png

二、数字,文本,日期,在一章表中定义多个字段,要使用所有的数据类型。 3600fa75a4394c1283c072b22a15f314.png

 都看到这里了,创作不易,大家点个赞再走啦!!- ̗̀(๑ᵔ⌔ᵔ๑)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/740286.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

密码学入门——消息认证码

文章目录 参考书目一、简介二、消息认证码的使用步骤三、消息认证码的应用实例四、消息认证码的实现方法五、认证加密六、HMAC 参考书目 图解密码技术,第三版 一、简介 使用消息认证码可以确认自己收到的消息是否就是发送者的本意,也就是说&#xff0…

python实现压缩与解压(zlib)

本文将使用python的zlib与base64进行压缩与解压 其中base64模块用于对字节流与字符串的转换,zlib用于数据的压缩与解压 同时在后面附上在JS中遇到需要压缩解压的案例 解压代码: import base64 import zlibinput_string eJwlzT1OAzEQBeC7pJjSf1rHu0h…

yum方式安装mysql 8.0.33失败,缺少依赖包

配置网络源 [rootlocalhost yum.repos.d]# ping www.163.com PING z163picipv6.v.bsgslb.cn (61.184.215.68) 56(84) bytes of data. 64 bytes from 61.184.215.68 (61.184.215.68): icmp_seq1 ttl128 time13.2 ms 64 bytes from 61.184.215.68 (61.184.215.68): icmp_seq2 tt…

造船码头行车限位器与驾驶室控制柜无线通讯

随着我国海洋交通的快速发展,船舶信息化管理的建设,无线通信资源的配置,将先进的无线通信技术引入水上交通安全的监管业务中已是大势所趋。码头安装(设备和系统的安装) 船舶下水后常停靠于厂内舾装码头, 以安装船体设备, 机电设备&#xff0c…

第6集丨JavaScript 使用原型(prototype)实现继承——最佳实战3

目录 一、原型继承与属性拷贝1.1 功能说明1.2 功能测试 二、多重继承2.1 功能实现2.2 功能测试 三、寄生式继承四、构造器借用4.1 简单实现4.2 进化版4.2.1 功能实现4.2.2 案例测试 五、借用构造器和原型复制六 综合案例6.1 需求说明6.2 代码实现 一、原型继承与属性拷贝 1.1 功…

免费的音频转文字软件这么多,音频转文字软件推荐有哪些?

在一次音频转文字工作者的聚会上,艾米和迈克正在探讨如何提高他们的工作效率。他们都深知手动转录音频文件的困难和耗时,因此开始讨论是否有一种音频转文字软件可以推荐。 迈克:嘿,艾米!我们都知道,音频转…

Scratch 星际飞船

Scratch 星际飞船 本程序主要增加了背景切换功能,飞船跟随鼠标移动,接触到右边的方块时切换到下一张背景,切换后飞船移动到左边,左边的椭圆则相反。随机生成另外两种飞船角色为背景,接触到边缘后移除。 图形化程序如下…

【算法与数据结构】150、LeetCode逆波兰表达式求值

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:我们常看见的表达式是中缀表达式(关于中缀表达式的定义可以参考前缀、中缀、后缀表达式&am…

0经验也能轻松设计商标logo的方法

如今,越来越多的人开始创业,而拥有一个好看的商标就显得尤为重要。但是,很多人并不具备设计技能,对于商标设计也是一头雾水。不过,现在有了一键logo设计应用,即使零经验的人也能轻松设计出自己满意的商标。…

IoT开发者为王,涂鸦智能硬核“靠边站”

文 | 智能相对论 作者 | 沈浪 6月底,全球化IoT开发平台服务商涂鸦智能开了个TUYA开发者大会,面向行业传达了两个关键的信息点: 1. 当前IoT领域的行业竞争不再局限于技术、渠道的单一纬度,开始演化为整体的生态之争。 2. 紧随行…

STM32 Proteus仿真双机串口通讯同步电子时钟系统数码管显示 -0060

STM32 Proteus仿真双机串口通讯同步电子时钟系统数码管显示 -0060 Proteus仿真小实验: STM32 Proteus仿真双机串口通讯同步电子时钟系统数码管显示 -0060 功能: 硬件组成:本系统由2个设备组成 设备1:STM32F103R6单片机 8位数…

GaussDB OLTP云数据库配套工具DRS

目录 一、前言 二、DRS定义与使用场景 1、DRS定义 2、DRS场景示意图 三、DRS核心功能 1、实时迁移管理 2、实时同步管理 3、备份迁移管理 4、数据订阅管理 5、实时灾备管理 四、小结 一、前言 华为GaussDB云数据库提供了配套的生态工具数据复制服务DRS。 DRS围绕云…

IO流学习09(Java)

解压缩流/压缩流: 解压缩流: 解压本质:把每一个ZipEntry按照层级拷贝到本地另一个文件夹中 注:Java只认zip格式 在正式写之前,先准备好压缩文件和解压完需要存放文件的文件夹 下面直接给出案例: pack…

步进电机的MATLAB仿真程序分享(采用了卡尔曼滤波,对定子电流进行估计,并估算出转子的位置和速度)

两相步进电机的连续时间延长卡尔曼滤波器仿真, 根据定子电流的噪声测量,估计定子电流以及转子位置和速度。 主程序: function MotorKalman % 两相步进电机的连续时间延长卡尔曼滤波器仿真 % 根据定子电流的噪声测量,估计定子电…

为什么InnoDB存储引擎选择使用B+tree索引结构?

🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉欢迎光临🎉🎉🎉🎉🎉&…

CS231W assignment3 RNN

对作业进行一些形象的解释 首先是def rnn_step_forward: 这里的t时刻其实就是一个句子里面的单词数,为了方便会统一到一个最长长度,对于比这个长度短的部分用null进行填充,并且在方法内部会让Null不进行传播和梯度计算。 我们最…

Simpleitk简单应用-python版本

安装: pip install simpletik读取 目前主流的医疗图像格式是nifti格式,相比于dicom格式更加简单和更加容易读取和操作。后缀名为nii或者nii.gz(nii为原格式,gz结尾的是经过压缩格式,因为医疗图像的重复像素特别多,通…

【Hello mysql】 mysql的基本查询(二)

Mysql专栏:Mysql 本篇博客简介:介绍mysql的基本查询 mysql的基本查询(二) 将筛选出来的数据插入到数据库中(insertselect)聚合函数统计班级共有多少同学统计班级手机的qq号有多少统计本次考试去重的数学成绩…

Xcode doesn’t support iPhone’s iOS 15.7.3 (19H307).

Xcode真机调试时,出现了Xcode doesn’t support iPhone’s iOS 15.7.3 (19H307).,Xcode不支持iPhone的版本。升级Xcode太耗时,用了找支持SDK文件方式解决了此问题。下图是本地的SDK支持文件。 从GitHub下载了15.7的设备支持文件&#xff0c…