导航

运维向dba转行-----MySQL基础(2)

Posted on 2025-09-03 10:15  清欢也野  阅读(6)  评论(0)    收藏  举报

SQL语句(Structured Query Language)具有循环语句 判断语句功能 -- 数据库存储过程(数据库中的脚本)

DDL语句(数据定义语句 Data Definition Language)

create:创建数据库 创建数据表 创建索引信息 
alter :修改数据库属性信息(字符集 校对规则)  修改数据表属性信息(字符集 校对规则 表结构-列名 数据类型 约束属性 索引 引擎? 名称)
drop  :删除数据库 删除数据表(磁盘层面删除数据) 慎用
show  :做以上操作的查看确认    

DCL语句(数据控制语句 Data Control Language)
grant: 授权权限信息
revoke:回收权限信息
create user:创建用户  
alter user: 修改用户
commit:  操作提交语句  
rollback:操作回滚语句  

DML语句(数据操作语句 Data Manipulation Language)

insert:在表中插入数据信息
delete:在表中删除数据信息 
update:在表中修改数据信息

DCL语句(数据控制语句 Data Control Language)

创建用户	CREATE USER … IDENTIFIED BY …	8.0 以后推荐 CREATE USER … IDENTIFIED WITH …
修改用户	ALTER USER … IDENTIFIED BY …	可改密码、资源限制、过期策略、认证插件等
授权	GRANT 权限 ON 对象 TO 用户 [WITH GRANT OPTION]	粒度可细到列、存储过程;8.0 起支持角色
撤销	REVOKE 权限 ON 对象 FROM 用户	对应 GRANT 的反操作

DQL语句(数据查询语句 Data Query Language)

查看表中的数据  select 
查看单表数据信息 select + from + where + group by + having + order by + limit  
查看多表数据信息 select + join on + union all 
其他信息查看
查看数据库变量信息(内置变量-状态变量 功能变量)
查看数据库函数信息(获取特定数据)
详情:https://dev.mysql.com/doc/refman/8.4/en/indexes.html

数据库服务字符设置

1)数据库中可以设置的字符编码
mysql> show charset;
| gb2312   | GB2312 Simplified Chinese       | gb2312_chinese_ci   |      2 |
| gbk      | GBK Simplified Chinese          | gbk_chinese_ci      |      2 |
| utf8mb3  | UTF-8 Unicode                   | utf8mb3_general_ci  |      3 |   ******
| utf8mb4  | UTF-8 Unicode                   | utf8mb4_0900_ai_ci  |      4 |   ******

utf8mb3  等价于早期的utf8字符编码  可以识别中文信息  每个字符占用3字节   
utf8mb4  支持emoji                                    每个字符占用4字节   

2)数据库如何设置字符编码
修改配置文件:
# cat my.cnf
[mysqld] 
character-set-server=utf8mb3 

数据库数据类型介绍

创建数据表时,需要对表的列指定数据类型(合理录入数据 控制数据磁盘占用 影响索引应用)

数值类型:整数类型,浮点数类型,
- 整数类型:
tinyint      微小整数  1个字节  范围(-128~127)              范围(0~255)           2的8=256   
smallint     小型整数  2个字节  范围(-32768~32767)          范围(0~65535)          2的16=65536
mediumint    中型整数  3个字节  范围(-8388608~8388607)    范围(0~16777215)    2的24=16777216
int         标准整数  4个字节  范围(-2147483648~2147483647)  ?????
bigint      大型整数  8个字节  范围(+-9.22*10的18次方)                     2的64=18446744073709551616

- 浮点类型:(小数类型)
float    单精度浮点类型  可以保留的小数位最多 6
double   双精度浮点类型  可以保留的小数位最多 17
decimal  定点数类型      可以自定义
字符类型
char(n)     存储字符范围 最多255个字符     固定长度字符类型(提高数据检索效率?) 
varchar(n)  存储字符范围 最多65535个字符   可变长度字符类型(提高磁盘利用率)

日期类型
date          日期类型          存储年月日
time          时间类型          存储小时分钟秒
datetime       日期时间类型      存储年月日 小时分钟秒 1000~9999          
timestamp   日期时间类型       存储年月日 小时分钟秒 1970~2037 
其他类型:ENUM 枚举类型(插入单个合理数据) -- SET 集合类型(插入多个合理数据)
限制数据录入 比如:性别-'男 女 未知' 省份 国家 ....

数据库数据约束属性

约束设置:
- 主键约束(PK primary key): 限制列信息非空 且唯一               主键索引
  CREATE TABLE `xiaoA`.`test01` (
  `id` INT NOT NULL,
  PRIMARY KEY (`id`));
  
- 唯一约束(UQ unique): 限制列的信息不能重复,但可以输入空值     唯一索引
  ALTER TABLE `xiaoA`.`test01` 
  ADD COLUMN `name` VARCHAR(10) NULL AFTER `id`,
  ADD UNIQUE INDEX `name_UNIQUE` (`name` ASC) VISIBLE;
  ;

- 非空约束(NN not null): 限制列的信息不能为空,但是可以重复
  ALTER TABLE `xiaoA`.`test01` 
  ADD COLUMN `gender` ENUM('男', '女') NOT NULL AFTER `name`;

- 外键约束: 当业务功能需要操作多张数据表时,需要控制操作表的顺序
  当多张表插入数据和删除数据都会有合理顺序 
-- 当设置外键约束,插入数据信息时,需要先在主表中插入数据,然后才能在子表中插入对应数据;
  -- 当设置外键约束,删除数据信息时,需要先在子表中删除数据,然后才能在主表中删除对应数据;
PS: 以上4种约束信息,其中PK UQ NN约束需要创建表时进行设置,FK约束可以创建表后进行设置


属性设置:
default          设定默认数据信息,可以实现自动填充
auto_increment   设定数值信息自增,可以实现数值编号自增填充(一般配合主键使用)
comment          设定数据注释信息                                    
unsigned         设定数值信息非负,可以实现数值信息列不能出现负数信息