【自用】MySQL - 语法:DDL、DML、DQL、DCL

通用语法

分类

DDL数据定义语言

DDL用来定义数据库对象

操作数据库

注: 为可选项

操作表

注:需要先通过use进入数据库

创建表

示例:

创建表

查询表与表结构:

查询创建时使用的语句:

数据类型

主要类型:数值类型、字符串类型、日期时间类型

数值类型

精度:整个数值的长度;标度:小数点后的长度。比如:123.45的精度为5,标度为2

使用double时,需要采用double(4,1)这种形式,即对应double(精度, 标度)

字符串类型

重点关注char与varchar,后面的一般会用专门的文件服务器进行存储

使用char与varchar是一般会带参数,比如char(10)与varchar(10),则代表最多使用10个字符,多了会报错,区别在于使用char即使只使用2个字符也会存入10个字符,而varchar则是使用多少存多少,但是由于varchar需要通过计算才能知道实际占用多少,因此性能较差

日期时间类型

案例

修改表

添加字段:

修改数据类型 或 字段名 字段类型:

删除字段:

修改表名:

删除操作:删除指定表、删除指定表并重新创建该表(目的就是保留表结构但清除其中的所有数据)

DML数据操作语言

DML用来对数据库表中的数据进行增删改

增

示例:

改

案例:

删

如果想删除某一个字段的值,使用update将其设置为null即可

DQL数据查询语言

使用的频率最高,这里仅涉及单表查询

分类:

基本查询

as可省略

案例1,查询指定字段,仅返回指定的列:

案列2,查询所有字段,会返回整张表(用*性能不好):

案例3,查询工作地址并起别名,可以观察到workaddress变成了工作地址(as可省略):

案例4,查询不重复的工作地址,会返回不重复的结果:

条件查询

案例:

like '__'对应只要是2个,是什么都行;like '%X',代表前面可以是任意个字符,但最后一个必须是X

聚合函数

案例:

注意,统计员工数量时应使用*而不是idcard,如果idcard为null,则会不参与计算

分组查询

查询其他字段无任何意义怎么理解,比如案例1中,查询的聚合函数为对应性别的人数,而查询的字段为性别,如果此时再查询姓名则无意义

补充一种用法:比如要查询前5个,可以采用分页,查询第一页并且每页5个即可

案例1:

案例2:

案例3:

理解:查询的字段为workaddress与聚合函数(表中年龄小于45的计数),并根据workaddress分组

在上面的基础上,加上having,表示在上面的筛选结果后,再次筛选,筛选出聚合函数>3的

当然,也可以给聚合函数取个名字,如下

排序查询

默认就是asc升序排序,因此可以省略

案例:

分页查询

案例练习

执行顺序

DCL数据控制语言

管理用户

案例:

注意,创建完用户后只能访问系统库,没有其他权限,想要拥有其他权限,需要通过下面的的章节赋予

权限控制

案例:

all代表所有权限

相关推荐
姜鱼问生1 小时前
数据库备份 + 灾难恢复演练:从 dump 恢复全库
运维·数据库
一技安身2 小时前
【mysql】Windows MySQL 8.4.10 绿色免安装喂饭教程
windows·mysql·adb
斯内普吖2 小时前
(开源)宠物饲养系统实战指南 基于 Java + SSM + Vue + MySQL
java·vue.js·mysql·开源·宠物
ao-weilai2 小时前
MySQL数据库:表约束
数据库·mysql·adb
ly76892 小时前
Redis 分布式锁的边界条件:Redlock 争议、锁续期与客户端崩溃后的互斥失效
数据库·redis·分布式·分布式锁·watchdog·redlock
kaixin_learn_qt_ing2 小时前
qgeoview-samples-basic
数据库
Omics Pro3 小时前
微软:多模态生物世界模型
数据库·人工智能·算法·microsoft·机器学习·自然语言处理
字节渡客3 小时前
接口明明返回成功,数据库偶尔就是没写入
数据库
Ivanqhz3 小时前
KV Cache
服务器·数据库·人工智能·深度学习·算法