【自用】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代表所有权限

相关推荐
l1t13 分钟前
DeepSeek总结的DuckDB 2.0.0 中的隐藏亮点
大数据·数据库·duckdb
爱吃火鸡面呀15 分钟前
MySQL、ClickHouse、Doris、Hive、Spark SQL、Flink SQL 选型对比:优点、缺点与面试话术
hive·mysql·clickhouse
程序员塔塔喵25 分钟前
【MySQL篇|第八篇】索引底层实现
数据库·mysql·adb·索引
updayday8541 小时前
电脑换了硬盘、加了内存,资产台账却没更新 - Ping64 硬件资产管理
大数据·网络·数据库·安全·智能路由器
hhhjhl1 小时前
mime-types 跨端三方库仓颉适配全流程
数据库
广州智造1 小时前
Radioss中破坏模型FAILTAB1的详细介绍
数据库·人工智能·算法·机器学习·仿真软件·radioss
李兆龙的博客1 小时前
从一到无穷大 #101:SSD 的工作原理——从 NAND 到数据库读写
数据库·ssd·存储
吹什么轩1 小时前
MySQL 内置函数全景:日期 / 字符串 / 数学 / 其他,一次讲透(附索引杀手排查)
java·数据库·面试
CS创新实验室1 小时前
改了模型,数据库为什么能自动跟上?——Django 迁移(migrations)的底层
数据库·django·sqlite
编码追梦人1 小时前
基于 ESP32-S3 的便携式多参数环境监护仪设计:从硬件选型到 FreeRTOS 多任务落地
数据库·单片机·嵌入式硬件·mongodb·esp32·freertos·低功耗设计