|
SQL:DML、DQL、DCL
DML:Data Manipulation Language(数据操作语言)
DML用来对数据库中的数据记录进行增删改操作。
- INSERT INTO 表名(字段名1,字段名2,...) VALUES(值1,值2,...);
复制代码- INSERT INTO 表名 VALUES(值1,值2,...);
复制代码- # 指定字段
- INSERT INTO 表名(字段名1,字段名2,...) VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...);
- # 所有字段
- INSERT INTO 表名 VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...);
复制代码 注意:
- 插入数据时,指定的字段顺序需要与值的顺序是一一对应的。
- 字符串和日期型数据应该包含在引号中。
- 插入的数据大小,应该在字段的规定范围内。
- UPDATE 表名 SET 字段名1=值1,字段名2=值2,...[WHERE 条件];
- -- 若不带where条件,则修改整张表全部记录的同一个字段为同一个值
- -- 例子:
- update emp set name='youhui',gender='女' where id=10;
复制代码- DELETE FROM 表名 [WHERE 条件];
- --注意:DELETE语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据,即表会被清空。
- --DELETE语句不能删除某一个字段的值(可以使用UPDATE)。
- --例子:
- delete from emp where id=10;
复制代码 DQL:Data Query Language(数据查询语言)
DQL用来查询数据库中表的记录。
查询关键字:SELECT
- --编写顺序
- SELECT
- 字段列表
- FROM
- 表名列表
- WHERE
- 条件列表
- GROUP BY
- 分组字段列表
- HAVING
- 分组后条件列表
- ORDER BY
- 排序字段列表
- LIMIT
- 分页参数
复制代码- SELECT 字段1,字段2,字段3... FROM 表名;
- SELECT * FROM 表名;
复制代码- SELECT 字段1 [AS 别名1],字段2[AS 别名2] ... FROM 表名;
复制代码- SELECT DISTINCT 字段列表 FROM 表名;
复制代码- SELECT 字段列表 FROM 表名 WHERE 条件列表;
复制代码 比较运算符功能>大于>=大于等于</tdtd小于/td/trtrtd=/tdtd小于等于/td/trtrtd=/tdtd等于/td/trtrtd 或 !=/tdtd不等于/td/trtrtdBETWEEN 最小值 AND 最大值/tdtd在某个范围之内(含最小、最大值)/td/trtrtdIN(...)/tdtd在IN之后的列表中的值,多选一/td/trtrtdLIKE 占位符/tdtd模糊查询(_匹配单个字符,%匹配任意个字符)/td/trtrtdIS NULL/tdtd是NULL/td/tr/tbody/tabletabletheadtrth逻辑运算符/thth功能/th/tr/theadtbodytrtdAND 或 &&/tdtd并且(多个条件同时成立)/td/trtrtdOR 或 ||/tdtd或者(多个条件任意一个成立)/td/trtrtdNOT 或 !/tdtd非,不是/td/tr/tbody/tableullistrong聚合函数(count、max、min、avg、sum)/strong/li/ulolli介绍:聚合函数是将一列数据作为一个整体,进行纵向计算。/lili常见聚合函数:都是作用于表中的某一列的/li/oltabletheadtrth 函数/thth 功能/th/tr/theadtbodytrtd count/tdtd 统计数量/td/trtrtd max/tdtd 最大值/td/trtrtd min/tdtd 最小值/td/trtrtd avg/tdtd 平均值/td/trtrtd sum/tdtd 求和/td/tr/tbody/tableol start="3"li语法:/li/ol- SELECT 聚合函数(字段列表) FROM 表名;
- 例子:select count(*) from emp;
- --注意:null值不参与所有聚合函数运算
复制代码 ullistrongDQL-分组查询(GROUP BY)/strong/li/ulolli语法:/li/ol- SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];
复制代码 ol start="2"liwhere与having区别ulli执行时机不同:where是分组之前进行过滤,不满足where条件,不进行分组;而having是分组之后对结果进行过滤。/lili判断条件不同:where不能对聚合函数进行判断,而having可以。/li/ul/li/olp注意:/polli执行顺序:where 聚合函数 > having。分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
</ol>
- SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1, 字段2 排序方式2;
- 例子:
- select * from emp order by entrytime;
复制代码 注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。
- SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;
复制代码
- 注意:
- 起始索引从0开始,起始索引=(查询页码 - 1)*每页显示记录数。
- 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。
- 如果查询的是第一页的数据,起始索引可以省略,直接简写为limit 查询记录数。
DCL:Data Control Language
DQL是用来管理数据库用户、控制数据库的访问权限的。
- USE mysql;
- SELECT * FROM user;
复制代码- CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
复制代码- ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';
复制代码 注意:
- 主机名可以使用 % 通配。
- 这类SQL开发人员操作的比较少,主要是DBA(Database Administrator,数据库管理员)使用。
- DCL-权限控制:控制当前用户连接上MySQL数据库之后可以访问哪些数据库哪些表以及对这些表执行什么样的操作。
MySQL中定义了很多种权限,但是常用的就以下几种:
[table]权限说明ALL,ALL PRIVILEGES所有权限SELECT查询数据INSERT插入数据UPDATE修改数据DELETE删除数据ALTER修改表DROP修改数据表/库/视图CREATE创建数据库/表- SHOW GRANTS FOR '用户名'@'主机名';
复制代码- GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
复制代码- REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
复制代码
- 注意:
- 多个权限之间,使用逗号分隔。
- 授权时,数据库名和表名可以使用 * 进行通配,代表所有。
来源:https://www.cnblogs.com/qiulimei/p/17241383.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|