MySQL基础--SQL基础语句--2022年9月28日
第一节 数据库相关概念
第二节 MySQL安装及启动
1、MySQL安装及启动自行查看文档,这里不多笔记
2、关系型数据库是什么
3、数据模型
第三节 SQL
1、SQL通用语法
2、SQL分类
第四节 DDL
1、数据库的DDL操作
2、表的DDL操作
表的创建规范:[...]内为可选参数,最后一个字段后面没有逗号
CREATE TABLE 表名( 字段1 字段1类型 [ COMMENT 字段1注释 ], 字段2 字段2类型 [COMMENT 字段2注释 ], 字段3 字段3类型 [COMMENT 字段3注释 ], ...... 字段n 字段n类型 [COMMENT 字段n注释 ] ) [ COMMENT 表注释 ] ;
3、数据类型
整数型
字符串类型
日期时间类型
4、表的DDL操作--修改
A、添加字段:ALTER TABLE 表名 ADD 字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ] ;
B、修改数据类型:ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度) ;
C、修改字段名和字段类型:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];
D、删除字段:ALTER TABLE 表名 DROP 字段名;
E、修改表名:ALTER TABLE 表名 RENAME TO 新表名;
5、表的DDL操作--删除
A、删除表:DROP TABLE [ IF EXISTS ] 表名;
B、删除指定表并重新创建:TRUNCATE TABLE 表名;
注意:删除表时,表中的数据会被全部删除。
6、总结
第五节 DML
1、添加字段
A、给指定字段添加数据:INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...);
B、给全部字段添加数据:INSERT INTO 表名 VALUES (值1, 值2, ...);
C、批量添加数据:INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...) ;
INSERT INTO 表名 VALUES (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...) ;
INSERT INTO 表名(字段名1,字段名2,....) SELECT 字段名1,字段名2,...... FROM.....
INSERT INTO 表名 SELECT * FROM.....
REPLACE INTO......(replace into 跟 insert into功能类似,不同点在于:replace into 首先尝试插入数据到表中,如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据;否则,直接插入新数据。)
D、注意事项
插入数据时,指定的字段顺序需要与值的顺序是一一对应的
字符串和日期型数据应该包含在引号中
插入的数据大小,应该在字段的规定范围内
2、修改数据
A、UPDATE 表名 SET 字段名1 = 值1 , 字段名2 = 值2 , .... [ WHERE 条件 ] ;
B、注意事项:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。
3、删除数据
A、DELETE FROM 表名 [ WHERE 条件 ] ;
B、注意事项:DELETE 语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。
DELETE 语句不能删除某一个字段的值(可以使用UPDATE,将该字段值置为NULL即可)。
4、总结
第六节 DQL
1、基本语法
SELECT 字段列表 FROM 表名列表 WHERE 条件列表 GROUP BY 分组字段列表 HAVING 分组后条件列表 ORDER BY 排序字段列表 LIMIT 分页参数
2、基础查询
A、查询多个字段:SELECT 字段1, 字段2, 字段3 ... FROM 表名 ;
B、查询全部字段:SELECT * FROM 表名 ;【* 号代表查询所有字段,在实际开发中尽量少用(不直观、影响效率)。】
C、给字段设置别名:SELECT 字段1 [ AS 别名1 ] , 字段2 [ AS 别名2 ] ... FROM 表名;【as可省略。】
D、去除重复记录:SELECT DISTINCT 字段列表 FROM 表名; 【记忆点:查看不重复的字段。】
3、条件查询
A、语法:SELECT 字段列表 FROM 表名 WHERE 条件列表 ;
B、常见的比较运算符:
C、常见的逻辑运算符
4、聚合函数
A、介绍:将一列数据作为一个整体,进行纵向计算。
B、常见的聚合函数
C、语法:SELECT 聚合函数(字段列表) FROM 表名 ;【null值不参与所有聚合函数的运算】
5、分组查询
A、语法:SELECT 字段列表 FROM 表名 [ WHERE 条件 ] GROUP BY 分组字段名 [ HAVING 分组后过滤条件 ];
B、where和having的区别
C、关于分组的一些理解--分组后只是为了聚合
分组以后的结果,每组只能有一个结果
分组的目的是为了查询某个组的东西,这个查询只能有一个结果,比如和、最大值、最小值、平均值、数量
通过上面也让我明白了为什么叫聚合函数了,其实就是为了得到一个结果的计算就是聚合,无论最大最小值都是为了得到一个结果
由第三条又能明白,在分组以后使用having 来运行聚合函数,而不是分组以前使用聚合函数,分组前使用聚合函数是得到的所有记录的运算结果
where语句是为了控制进入分组的记录,可以把它想象成一个过滤器,把你想要的数据筛选出来 比如 你想得到天津市是所有男人的数量
6、排序查询
A、语法:SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1 , 字段2 排序方式2 ;
B、排序方式:
7、分页查询
A、语法:SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数 ;
B、注意事项:
8、执行顺序
9、总结
第七节 DCL
1、管理用户
A、查询用户:select * from mysql.user;
B、创建用户:CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
C、修改用户密码:ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码' ;
D、删除用户:DROP USER '用户名'@'主机名' ;
E、注意事项:
2、权限控制
A、常用权限
B、查询权限:SHOW GRANTS FOR '用户名'@'主机名' ;
C、授予权限:GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
D、撤销权限:GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
E、注意事项
3、总结
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)