SQL分类及通用语法

1 SQL分类

SQL是结构化查询语言(Structured Query Language)的缩写。它是一种用于管理和操作关系型数据库系统的标准化语言。SQL分类如下:

分类说明
DDL数据定义语言,用来定义数据库对象(数据库,表,字段)
DML数据操作语言,用来对数据库表中的数据进行增删改
DQL数据查询语言,用来查询数据库中表的记录
DCL数据控制语言,用来创建数据库用户,控制数据库的访问权限

1.1DDL数据库定义语言

查询所有数据库:

show databases;

查询当前数据库

select database();

创建数据库

create database  [if not exist]  数据库名 [default charset 字符集][collate 排序规则];

删除数据库

drop database [if exists] 数据库名;

使用数据库

use 数据库名;

查询当前数据库所有表

show tables;

查询表结构

desc 表名;

查询指定表的建表语句

show create table 表名;

创建表

create table 表名(
   字段1 数据类型 约束,
   字段2 数据类型 约束,
   字段3 数据类型 约束
)

添加字段

alter table 表名 add 字段名 类型(长度) [comment 注释][约束];

修改数据类型

alter table 表名 modify 字段名 新数据类型(长度);

修改字段名和字段类型

alter table 表名 change 旧字段名 新字段名 类型(长度)[comment 注释][约束];

删除字段

alter table 表名 drop 字段名;

修改表名

alter table 表名 rename to 新表名;

删除表

drop table [if exists] 表名;

删除表

truncate table 表名;

1.2DML数据库操作语言

添加
给全部字段添加数据

INSERT INTO 表名 VALUES (值1,值2,......)

给指定字段添加数据

INSERT INTO 表名(字段名1,字段名2,......) VALUES (值1,值2,......)

批量添加数据

INSERT INTO 表名 VALUES (值1,值2,......),(值1,值2,......),(值1,值2,......)

注:
(1)插入数据时,指定的字段顺序需要与值的顺序是一一对应的 。
(2)字符串和日期类型数据应该包含在引号中。
(3)插入的数据大小,应该在字段的规定范围内。

删除

DELETE FROM 表名 [WHERE 条件]


(1) DELETE语句不能删除某一个字段的值(可以使用UPDATE)。
(2) DELETE语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据 。

修改

UPDATE 表名 SET 字段名1=值1,字段名2=值2,......[WHERE 条件]

注:
(1) 修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据

1.3DQL数据库查询语言

条件查询

SELECT 字段列表 
FROM 表名列表 
WHERE 条件列表
GROUP BY 分组字段列表 
HAVING 分组后条件列表
ORDER BY 排序字段列表 
LIMIT 分页参数

//查询

SELECT * FROM t_user WHERE name = "小李"

//多字段查询

SELECT name, age FROM t_user

//去重查询

SELECT DISTINCT name FROM t_user

//某个字段为null

SELECT * FROM t_user WHERE idcard IS NULL

//某个字段不为null

SELECT * FROM t_user WHERE idcard IS NOT NULL

//区间查询

SELECT * FROM t_user WHERE age >= 20 && age <= 30
SELECT * FROM t_user WHERE age >= 20 AND age <= 30
SELECT * FROM t_user WHERE age BETWEEN 20 AND 30

//多条件查询

SELECT * FROM t_user WHERE age = 12 OR age = 21 OR age = 23
SELECT * FROM t_user WHERE price IN (12,21,23)

常见聚合函数:count 统计数量 max 最大值 min 最小值 avg 平均值 sum 求和

分组查询:

SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件]

WHERE 与 HAVING 的区别 
(1.) 执行时机不同:WHERE是分组之前过滤,不满足WHERE条件不参与分组;而HAVING是分组之后对结果进行过滤 .
(2.) 判断条件不同:WHERE不能对聚合函数进行判断,而HAVING可以 。

注:
(1) 执行顺序:WHERE > 聚合函数 > HAVING 。
(2) 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义 。

1.4DCL数据库控制语言

数据库中的DCL全称是Data Control Language,是数据控制语言,用来管理数据库用户,控制数据库的访问权限。

1 查询用户

user mysql;
select * from user;

在MySQL中用户的信息 和具有权限的信息都存放在系统数据库Mysql中的user表

2 创建用户

create user '用户名' @ '主机名' identified by ’密码‘

如果希望能够在任意主机上访问数据库,在主机名位置输入通配符%即可

3 修改用户密码

alter user ’用户名‘@’主机名‘ identified with mysql_native_password by ’新密码‘;

4 删除用户

drop user ’用户名‘@’主机名‘;

5 查询权限

show grants for ’用户名‘@’主机名‘;

6 授予权限

grant 权限列表 on 数据库名 表名 to '用户名'@'主机名';

7 撤销权限

revoke 权限列表 on 数据库.表名 from '用户名'@'主机名'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值