目录
1.数据定义语言(DDL)---------Data Definition Language
2.数据操作语言(DML)---------Data Manipulation Language
3.数据查询语言(DQL)---------Data Query Language
4.数据控制语言(DCL)---------Data Control Language
一、SQL
首先我们来了解一下SQL的通用语法,
1、SQL语句可以单行或多行书写,它以分号结尾。(多行书写可以增加它的可读性)
2、SQL语句可以使用空格,或者缩进增强语句的可读性,
3、MySQL数据库的SQL语句不区分大小,但写关键字的时候建议使用大写
4、在写注释是可以使用:--或者#,多行注释使用/* */
二、SQL分类
在前面呢,我们介绍了SQL语句,他是操作关系型数据库的编程语言,它定义了一套操作关系型数据库的统一标准!接下来我们就学习一下我们所说的SQL语句,它的分类!
1.数据定义语言(DDL)---------Data Definition Language
DDL是数据定义语言,用来定义数据库对象,也就是数据库,数据表和表中的字段。
1.1 数据库操作
查询:
show databases;-----------查询所有数据库
select database();--------查询当前所使用的数据库
创建:
create database [if not exists] 数据库名字 [default charset 字符集][collate 排序规则];
在语句中,[ ] 中的语句可有可无,if not exists-----表示如果已经有该名称的数据库则不会报错并且不创建,如果没有则创建数据库。 ‘字符集’----所表示的是数据库所用的字符集,例如utf8,utf8mb4等。默认为utf8mb4.
删除:
drop database [if exists] 数据库名;
使用数据库:
use 数据库名;
在生产中由于数据库操作过多,若需要切换数据库就可以使用该语句!
1.2 数据表操作
查询:
show tables;---------------------查询当前数据库所有表
desc 表名;---------------------查询表结构
show create table 表名;--------查询建表语句
创建:
create table 表名(
字段1 数据类型 [comment 字段注释] ,
字段2 数据类型 [comment 字段注释] ,
字段3 数据类型 [comment 字段注释] ,
... ... [...]
字段n 数据类型 [comment 字段注释]
)[comment 数据表的注释]
comment-----用来注释的关键词,可有可无,注意上面语句中的逗号“,” 在最后一个字段后面没有逗号。
关于数据类型
修改:
添加字段:
alter table 表名 add 字段名 字段类型 [comment 注释][约束];
修改数据类型:
alter table 表名 modify 字段名 数据类型;
修改字段名和数据类型:
alter table 表名 change 旧字段名 新字段名 数据类型 [comment 字段注释][约束];
删除字段:
alter table 表名 drop 字段名;
修改表名:
alter table 表名 rename to 新表名;
删除表:
drop table 表名;
删除表后重新创建表:
truncate table 表名;
2.数据操作语言(DML)---------Data Manipulation Language
DML是数据操作语言,用来对数据表中的数据进行增删改。
添加数据(指定字段)
insert into 表名(字段1,字段2,...)values(值1,值2,...);
添加数据(所有字段)
insert into 表名 values(值1,值2,...);
批量添加数据
insert into 表名 values(值1,值2,...),
(值1,值2,...),
(值1,值2,...),
(值1,值2,...),
( ... )
(值1,值2,...);
修改数据
updata 表名 set 字段1=值1,字段2=值2,......[where 条件];
删除数据
delete from 表名 [where 条件];
3.数据查询语言(DQL)---------Data Query Language
DQL是数据查询语言,用来查询数据库中表的记录。
3.1 基础查询
select 字段名 from 表名 where 条件 group by 分组字段列表 having 分组后条件列表 order by 排序字段列表 limit 分页参数 ;
在查询时,可以在字段后面加“ as 别名”,当分组后需要去除重复记录时,用语句:
select distinct 字段列表 from 表名 ;
3.2 条件查询
对于条件查询,就是在where之后书写的条件。我们这里介绍一下条件查询中的条件:
比较运算 >、>=、<、<=、=、!=、between...and...(包含边界值)
in()------->在条件中,字段符合in中的一个值时就会被返回。
like------->占位符,用于模糊匹配( _ 匹配单个字符,%匹配任意个字符。)
is null----->表示为空值
逻辑运算 and/&&、or/||、not/!
3.3 聚合函数查询
select 聚合函数(字段列表)from 表名;
注意:null值不参与所有运算
3.4 分组查询
select 字段列表 from 表名 group by 分组字段名[having 分组后过滤条件];
3.5 排序查询
select 字段列表 from 表名 order by 字段1 排序方式,字段2 排序方式;
3.6 分页查询
分页查询,又叫做数据库的方言,因为数据库不同所用的关键字就不同,MySQL中用limit。
select 字段列表 from 表名 limit 起始索引,查询记录数;
3.7 DQL总结
4.数据控制语言(DCL)---------Data Control Language
DCL是数据控制语言,用来创建数据库用户、控制数据库的访问权限。(如果是做开发,DCL只需简单了解,但如果是做DBA,这部分也需要重点掌握!!!)
4.1 管理用户
查询用户:(均可查询用户)
use mysql;
select * from user;
创建用户:
create user '用户名'@'主机名' identfied by '密码';
修改用户密码:
alter user '用户名'@'主机名' identfied with mysql_native_password by '新密码';
删除用户:
drop user '用户名'@'主机名';
4.2 权限控制
查询权限:
show grants for '用户名'@'主机名';
授予权限:
grant 权限列表 on 数据库.数据表 to '用户名'@'主机名';
撤销权限:
revoke 权限列表 on 数据库.数据表 from '用户名'@'主机名';
ALL / all privileges | 所有权限 | select | 查数据 |
insert | 插入数据 | update | 修改数据 |
delete | 删除数据 | alter | 修改数据表 |
drop | 删除库/表/视图 | create | 创建库/表 |
三、总结
经过上面的学习,相信大家对数据库有了进一步的了解,但如果想要熟练掌握还是需要做一些练习的。希望上文可以对你有所帮助,谢谢大家!!!