SQL常用语句汇总

SQL

一、概念

  • SQL:Structured Query Language,结构化查询语言
  • 用于操作关系型数据库(例如MySQL和Oracle)的语言,每种数据库会有自己独有的“方言”。

二、分类

1. DDL

  • Data Definition Language:数据定义语言,用于操作数据库、表、字段(列名称)
  • 关键字:
    • CREATE(创建)
    • DROP(删除)
    • ALTER(修改)

2. DML

  • Data Manipulation Language:数据操作语言,用于操作(增删改)表中数据
  • 关键字:
    • INSERT (插入)
    • DELETE(删除)
    • UPDATE(更新、修改)

3. DQL

  • Data Query Language:数据查询语言,用于查询表中数据
  • 关键字:SELECT(选择)

4. DCL

  • Data Control Language:数据控制语言,用于定义数据库的访问权限和安全级别,以及创建用户
  • 关键字:
    • GRANT(授权)
    • REVOKE(撤销)

三、DDL常用语句

1. 创建(create)

数据库
	create database 数据库名								-- 创建数据库
	create database if not exists 数据库名				-- 判断数据库不存在后再创建
	create database 数据库名 character set 字符集名		-- 创建指定字符集的数据库
数据表
	create table 表名(字段列表)						-- 创建表
	create table if not exists 表名	(字段列表)			-- 判断表不存在后再创建
	create table 表名 like 基表名						-- 创建同结构的表

2. 查询(show)

数据库
	show databases						-- 查询所有数据库名称
	show create database 数据库名		-- 查询数据库的创建语句,常用于查看该库的字符集
数据表
	show tables							-- 查询所有表名称
	desc 表名							-- 查询表结构

3. 修改(alter)

数据库
	alter database 数据库名 set character 字符集名		-- 修改数据库所使用的字符集
数据表
	alter table 表名 rename to 新表名					-- 修改表名
	alter table 表名 set character 字符集名				-- 修改表所使用的字符集
	alter table 表名 add 字段名 数据类型					-- 添加字段
	alter table 表名 change 旧字段名 新字段名 数据类型	-- 修改字段名和数据类型
	alter table 表名 modify 字段名 新数据类型			-- 修改字段的数据类型
	alter table 表名 drop 字段名							-- 删除字段

4. 删除(drop)

数据库
	drop database 数据库名					-- 删除数据库
	drop database if exists 数据库名			-- 先判断数据库存在再删除
数据表
	drop table 表名							-- 删除表
	drop table if exists 表名				-- 先判断表存在再删除

5. 使用数据库

	select database()			-- 查询当前正在使用的数据库
	use 数据库名					-- 使用或切换数据库

四、DML常用语句

1. 增加数据(insert)

	insert into 表名(字段列表) values (值列表)		-- 给指定字段添加指定值
	insert into 表名 values(所有字段值列表)			-- 添加所有字段的值
2. 删除数据(delete)
	delete from 表名 where 条件						-- 删除指定条件对应的记录
	delete from 表名								-- 逐条删除表中所有记录
	truncate table 表名								-- 删除整张表后再创建同结构的表

3. 修改数据(update)

	update 表名 set 字段名 = 字段值 where 条件		-- 修改对应记录指定字段的值

五、DQL常用语句

1. 基础查询(select)

	select 字段列表 from 表名				-- 查询指定表的指定字段
	select * from 表名						-- 查询指定表的所有字段
	select distinct 字段列表 from 表名		-- 查询指定表的指定字段并去重
	select 字段的运算 from 表名				-- 查询指定表的指定字段的计算结果
	select 字段 as 字段别名 from 表名		-- 查询并给指定字段取别名,as可以省略
补充
	ifnull(字段名,值)						-- 如果该字段对应的值为NULL,则当作指定值处理

2. 条件查询

	select 字段列表 from 表名 where 条件		-- 查询满足条件的字段值
关系运算符:
	>	<	<=	 >=		=	  <>(不等于)	 !=(MySQL方言不等于)
其它关键字:
	betten 起始值 and 终止值
	in(集合)								-- 该集合可以是一张一维表
	is null									-- SQL里不允许 = null

3. 排序查询

	order by 初级排序字段名 排序方式,次级排序字段名 排序方式...
排序方式
	升序:默认不写或ASC
	降序:DESC
聚合函数:将一列作为一个整体的纵向计算
	count(字段名)					-- 统计该字段下共有多少非空数据
	max(字段名)						-- 返回该字段下的最大值
	min(字段名)						-- 返回该字段下的最小值
	sum(字段名)						-- 计算该字段下所有值的和
	avg(字段名)						-- 计算该字段下所有值的平均值	

4. 分组查询

	group by 分组字段						-- 分组查询
	group by 分组字段 having 条件			-- 查询满足条件的组

5. 分页查询

	limit 当前页起始记录下标,每页条数				-- 起始下标从0开始,limit子句是MySQL的方言

六、DCL常用语句

1. 管理用户

(1)查询用户(不属于DCL)
	use MySQL;								-- 切换使用MySQL数据库
	select * from user;						-- 查询user表
(2)创建用户
	create user '用户名'@'主机名' identified by '密码';	
(3)修改用户
-- 1. 通过修改user表完成密码修改
	update user set password = password('新密码') where user = '用户名';
	
-- 2. DCL语句修改密码(MySQL 5)
	set password for '用户名'@'主机名' = password('新密码');
	
-- 3. DCL语句修改密码(MySQL 8)
	alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';
(4)删除用户
	drop user '用户名'@'主机名';

2. 权限管理

-- 1. 查询权限
	show grants for '用户名'@'主机名';
	
-- 2. 授予权限
	grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
	
-- 3. 收回权限
	revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值