SQL的语法与分类,语法示例+图片,贼吉尔详细!!!

SQL通用语法

  1. SQL语句可以单行或多行书写,以分号结尾

  2. SQL语句可以用空格/缩进来增强语句的可读性

  3. MySQL数据库的SQL语句不区分大小写、关键字(建议使用大写)

  4. 注释:

    ​ 单行注释: --注释内容 或 #注释内容(MySQL特有)

​ 多行注释: /* 注释内容*/

SQL分类

DDL

(Data Definition Language)

说明:数据定义语言,用于定义数据库对象(数据库、表、字段)

DDL-数据库操作

在这里插入图片描述

DDL-表操作

查询:

在这里插入图片描述

创建:

在这里插入图片描述

举例:

在这里插入图片描述

修改:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
删除:

在这里插入图片描述

在这里插入图片描述

DML

(Data Manipulation Language)

说明:数据操作语言,用于对数据库表中的数据进行增删改

DML-插入数据

添加数据INSERT
修改数据UPDATE
删除数据DELETE

在这里插入图片描述

注意:

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

在这里插入图片描述

DML-修改数据

在这里插入图片描述

注意: 如果没有 WHERE 条件,则会修改整张表的所有数据

举例:

在这里插入图片描述

DML-删除数据

在这里插入图片描述

注意:

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

举例:

在这里插入图片描述

DQL(重要)

(Data Query Language)

说明:数据查询语言,用于查询数据库中表的记录

基础查询

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

举例:

查字段和设置别名

在这里插入图片描述

去重

在这里插入图片描述

DQL-条件查询(WHERE)

  1. 语法:

在这里插入图片描述

  1. 条件:

在这里插入图片描述

在这里插入图片描述

  1. 举例:

​ 查询idcard非空的数据

在这里插入图片描述

​ 查询男性中年龄小于等于50岁的数据

在这里插入图片描述

​ 查询姓名为两个字的员工信息

在这里插入图片描述

DQL-聚合函数

  1. 介绍

​ 将一列数据作为一个整体,进行纵向计算

  1. 常见聚合函数
函数功能
count统计数量
max最大值
min最小值
avg平均值
sum求和
  1. 语法

在这里插入图片描述

注意:NULL值不参与统计

  1. 举例

在这里插入图片描述

DQL-分组查询

  1. 语法

在这里插入图片描述

  1. WHERE与HAVING的区别

执行时机不同:

​ where是分组之前进行过滤,不满足where条件的不参与分组;而having是分组之后对结果进行过滤。

判断条件不同:

​ where不能对聚合函数进行判断,having可以。

  1. 注意

​ 执行顺序: where > 聚合函数 > having

​ 分组之后,查询的子段一般为聚合函数和分组字段,查询其他字段无任何意义

  1. 举例

根据年龄分组,统计 男性员工 和 女性员工 的数量

在这里插入图片描述

根据性别分组,统计 男性员工 和 女性员工 的平均年龄

在这里插入图片描述

查询年龄小于20的员工,并根据工作地址分组,获取员工数量大于等于2的工作地址

在这里插入图片描述

DQL-排序查询

  1. 语法

在这里插入图片描述

  1. 排序方式

​ ASC:升序(默认)

​ DESC:降序

注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序

  1. 举例

    根据年龄对公司的员工进行升序排序

在这里插入图片描述

​ 根据入职时间,对员工进行升序排序,若年龄相同,则根据入职时间降序排序

在这里插入图片描述

DQL-分页查询

  1. 语法

在这里插入图片描述

注意:

  • 起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示记录数
  • 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL是LIMIT
  • 如果查询的是第一页数据,起始索引可以省略,直接简写为LIMIT 10
  1. 举例

查询第1页员工数据,每页显示10条记录

在这里插入图片描述

DQL-案例

#查询年龄在20-23的女性员工信息
SELECT * FROM emp WHERE gender = '女' && age IN(20,21,22,23);
# 查询性别为男,并且年龄在20-40岁的姓名为三个字的员工
SELECT * FROM emp WHERE gender = '男' AND age BETWEEN 20 AND 40 AND name LIKE '___';
#统计员工表中,年龄小于60岁的,男性员工和女性员工人数
SELECT gender,COUNT(*) FROM emp  WHERE age  < 60 GROUP BY gender;
# 查询所有年龄小于等于35岁员工的姓名和年龄,并对查询结果按年龄升序排序,相同则按入职时间降序排序
SELECT name,age FROM emp WHERE age <= 35 ORDER BY age ASC,entrydate DESC;
# 查询性别为男,且年龄在20-40之间的前五个员工信息,对查询结果按年龄升序排序,相同则按入职时间升序排序
SELECT * FROM emp WHERE gender = '男' AND age BETWEEN 20 AND 40  ORDER BY age ASC,entrydate ASC LIMIT 5;

DQL-编写与执行顺序

语法编写顺序:

在这里插入图片描述

语法执行顺序:

在这里插入图片描述

DCL

(Data Control Language)

说明:数据控制语言,控制数据访问权的指令,例如控制特定用户账户对数据表、查看表、存储程序、用户自定义函数等数据库对象的控制权。

DCL-管理用户

在这里插入图片描述

DCL-权限控制

常用权限:

权限说明
ALL,ALL PRIVILEGES所有权限
SELECT查询数据
INSERT插入数据
UPDATE修改数据
DELETE删除数据
ALTER修改表
DROP删除数据库/表/视图
CREATE创建数据库/表

其他权限,可参考官方文档
常用操作:

在这里插入图片描述

注意:

  1. 多个权限之间,用逗号分隔
  2. 授权时,数据库名和表名可以用 * 进行通配,代表所有

举例

给每个员工排工号,统一为5位数,不足5位的前面补0

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值