SQL语言共分为四大类:

  • 数据查询语言DQL
  • 数据操纵语言DML
  • 数据定义语言DDL
  • 数据控制语言DCL

一、DML


修改表:

SELECT * FROM t_user;
UPDATE t_user
SET usr_account = '赵六',usr_password = '000'
WHERE usr_id = '4';

删除表:

DELETE FROM t_user
WHERE usr_id = '6'; -- 删除一行。
INSERT INTO t_user(usr_account,usr_password) VALUES('xx','999'); -- id从7开始
TRUNCATE t_user; -- 摧毁整张表(数据全部不见,ID从头开始)
DELETE t_user; -- 删除整张表(数据全部不见,ID不会从头开始)

二、DQL


查询表:

SELECT usr_account,usr_id*5,UUID(),3.141592654
FROM t_user; -- 查询语句,可以是列名,表达式,函数或者常量SELECT UUID() FROM DUAL; -- 伪表查询

给表取个别名,再查询这张表。查询不会修改原表,查询结果的本质是内存中的表。

SELECT * FROM (SELECT * FROM t_user) AS u; -- AS可省略
-- 逻辑与或非 优先级:(高——》低)NOT->AND->OR
SELECT * FROM t_user WHERE usr_id**=**2; -- 一个等于
SELECT * FROM t_user WHERE usr_id!=2;
SELECT * FROM t_user WHERE usr_id<>2;-- 表示不等于
SELECT * FROM t_user WHERE usr_id>2;
SELECT * FROM t_user WHERE usr_id>=2;
SELECT * FROM t_user WHERE usr_id<2;
SELECT * FROM t_user WHERE usr_id<=2;
SELECT * FROM t_user WHERE usr_id<=2 AND usr_accound='zs';-- 尽可能让容易判断的写在前面
SELECT * FROM t_user WHERE usr_id<=2 OR usr_accound='zs';
SELECT * FROM t_user WHERE NOT usr_id<=2;

三、查询


排序查询

SELECT * FROM t_user ORDER BY usr_account; -- 默认升序
SELECT * FROM t_user ORDER BY usr_account ASC;
SELECT * FROM t_user ORDER BY usr_account DESC; -- 倒序
SELECT * FROM t_user ORDER BY usr_password,usr_id DESC;-- 先按前者升序,若相同,按后者倒序SELECT usr_id i,usr_account a,usr_password p FROM t_user u;
SELECT COUNT(*) cnt FROM t_user; -- 聚合函数 别名
SELECT CONCAT(usr_id,usr_id),CONCAT(usr_account,usr_password) FROM t_user u; -- 拼接函数SELECT * FROM t_user  WHERE usr_password IS NULL; -- 查找密码为空的,用IS NULL

模糊查询:关键字like

SELECT * FROM emp
WHERE `name` LIKE '孙%'; -- %匹配所有字符(只要有孙字开头的)
SELECT * FROM emp
WHERE `name` LIKE '孙__'; -- _匹配一个字符(一个下划线代表一个字符)
SELECT * FROM emp
WHERE `name` LIKE '%八%'; -- % %匹配某个字符(包含某个字符的)

筛除查询:关键字distinct

SELECT DISTINCT job FROM emp;

统计函数

SELECT SUM(sal),MAX(sal),MIN(sal),AVG(sal),COUNT(*) FROM emp;

判空函数

SELECT sal,comm,sal+IFNULL(comm,0) FROM emp; -- 如果comm为空,用0代替,如果不为空,就是它本身
SELECT sal,comm,sal+IF(comm,comm,0) FROM emp; -- 如果comm为真,本身,如果comm为假,用0.

分页查询 关键字limit (mysql特有)

SELECT * FROM emp LIMIT m,n; -- m起始的下标(0起算),n要查询多少行
SELECT * FROM emp LIMIT 0,3; -- 第一页
SELECT * FROM emp LIMIT 3,3; -- 第二页
SELECT * FROM emp LIMIT 6,3; -- 第三页
SELECT * FROM emp LIMIT 5; -- 不写m默认0,n=5

查询之函数

一、字符串函数:
SELECT INSTR('abcdefghijklmn','abcd') FROM DUAL; -- 查找,下标从1起算,找不到就为0
SELECT SUBSTR('abcdefghijk',2) FROM DUAL;-- 从第2个开始找
SELECT SUBSTR('abcdefghijk',3,4) FROM DUAL;-- 从第3个开始找,找4个
SELECT SUBSTRING('abcdefghijk',3,4) FROM DUAL; -- 同上
SELECT CONCAT('abcefgh','123') FROM DUAL; -- 拼接
SELECT UPPER('abcDEFG') FROM DUAL; -- 全部大写
SELECT LOWER('abcDEFG') FROM DUAL; -- 全部小写
二、日期函数

获取年月日时分秒、年月日、时分秒、字符转日期、日期转字符

SELECT NOW(),CURDATE(),CURTIME(),
STR_TO_DATE('2020-10-26','%Y-%m-%d'),
DATE_FORMAT(NOW(),'%h-:%i:%s %d-%m-%Y')
FROM DUAL;
三、数学函数
SELECT CEIL(3.14), -- 天花板
FLOOR(3.99), -- 地板
ROUND(3.5), -- 四舍五入
RAND(), -- 随机小数
MOD(8,3), -- 取余
TRUNCATE(3.141592654,3) -- 截取几位小数
FROM DUAL;
四、其他函数
SELECT VERSION(), -- 软件版本号
DATABASE(), -- 仓库
USER() -- 用户
FROM DUAL;
五、其他

用于主键和密码:

UUID()生成唯一的36位唯一字符串,0-9a-f字符构成。如果去掉固定位置的中间杠,就是32位唯一字符串。

MD5(‘密码’)生成32位密文字符串 。

SELECT UUID(),MD5('123456') FROM DUAL;

单表查询

一、exists查询

exists:不关注查询内容。只关注有没有结果集,有就为真。

SELECT * FROM emp
WHERE EXISTS (SELECT * FROM emp WHERE sex='女');
二、分组查询

语法:SELECT 被分组的列,聚合函数 FROM 表名 WHERE 过滤条件 GROUP BY 列 HAVING 过滤条件。

-- 查询每个部门的员工总数
SELECT deptno,COUNT(*) FROM emp GROUP BY deptno;
-- 查询每个部门的女员工总数
SELECT deptno,COUNT(*) FROM emp WHERE sex='女' GROUP BY deptno;
-- 查询每个部门的平均薪水,只保留高于2000的
SELECT deptno,AVG(sal) FROM emp GROUP BY deptno HAVING AVG(sal)>2000;

where 对表过滤,having 对查询结果过滤。

多表联合查询

1.内联查询

SELECT ename,loc FROM emp e,dept d WHERE e.deptno=d.deptno;
-- 等价于
SELECT ename,loc FROM emp e INNER JOIN dept d ON e.deptno=d.deptno;

2.左联和右联

RIGHT JOIN ,右表为主表,右表的每一条记录都应该出现

-- RIGHT JOIN ,右表为主表,右表的每一条记录都应该出现
SELECT ename,loc FROM emp e RIGHT JOIN dept d ON e.deptno=d.deptno;

左联同理。

子查询

MySQL之DML和DQL相关推荐

  1. 【MySQL】DML,DQL

    文章目录 3.MySQL数据管理 3.1.外键(了解) 3.2.DML语言(熟悉) insert update修改 delete 删除 4. DQL查询数据(熟悉) 4.1 DQL数据查询语言(dat ...

  2. MySql的初识感悟,以及sql语句中的DDL和DML和DQL的基本语法

    花了将近一周的时间学习了数据库的基本用法,今天总结一下. 一.一些感悟 数据库的定义:数据库是"按照数据结构来组织.存储和管理数据的仓库".是一个长期存储在计算机内的.有组织的.可 ...

  3. MySQL的DDL、DML和DQL的基本语法

    定义:  SQL语句,即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一 种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系统 ...

  4. mysql基础1 -------- DDL、DML、DQL、DCL

    目录 前言 SQL概述 SQL的分类 DDL 数据库操作 表操作 查询创建表 数据类型 表操作 案例 修改表结构操作 删除表操作 DML 添加数据 修改数据 删除数据 DQL 基本语法 基本查询 条件 ...

  5. 在mysql数据库中DDL_Mysql 数据库操作之DDL、DML、DQL语句操作

    Mysql 数据库操作之DDL.DML.DQL语句操作 设置数据库用户名密码 l  Show databases 查看数据库列表信息 l  查看数据库中的数据表信息 ,格式: use 数据库名: sh ...

  6. mysql基础之DML、DQL语句

    课程笔记Day25 DDL语句 DML语句 DQL语句 第一章 DDL语句 第01节 操作数据库 1.创建数据库 简单的创建语法 -- 语法格式: CREATE DATABASE 数据库的名称;-- ...

  7. Mysql基本语法DML和DQL语句的总结(笔记)

    Mysql基本语法DML和DQL语句的总结(笔记) 文章目录 Mysql基本语法DML和DQL语句的总结(笔记) 1.DML语句之插入 2.DML语句之修改表记录 语法1:带条件修改 语法2:带条件修 ...

  8. 死磕数据库系列(二十):MySQL 数据库 DDL、DML、DQL、DCL 语言理论与实践(sql 8.0 版)...

    点关注公众号,回复"1024"获取2TB学习资源! 今天,民工哥带大家一起来学习一下 MySQL 数据库的 DDL.DML.DQL.DCL 这几种语言的理论知识与实践.如有帮助,请 ...

  9. Mysql 第二章 数据库 DML和DQL

    一.MySQL的存储引擎 1 .存储引擎的类型:有MyISAM.InnoDB .Memory.CSV等9种 2. MyISAM与InnoDB类型主要区别 适用场合 使用MyISAM:   不需事务,空 ...

最新文章

  1. 微信小程序自定义组件之Picker组件
  2. 【转载】IP网络位,主机位,广播地址及掩码
  3. 每天一个linux命令(58):telnet命令
  4. oracle 11g-R2安装
  5. 细胞自动机 通用计算机,细胞自动机
  6. 如何理解Mysql的索引及他们的原理--------二叉查找树和平衡二叉树和B树和B+树
  7. [你必须知道的.NET]第二十四回:认识元数据和IL(上)
  8. html如何在本页路径上拼接参数,Html图片路径拼接参数实现打印导出
  9. L1-067 洛希极限 (10 分)-PAT 团体程序设计天梯赛 GPLT
  10. ktor HTTP API 练习
  11. ActiveMQ demo
  12. python菜鸟教程基础入门
  13. java过滤器Filter实现敏感词汇过滤
  14. 载波同步matlab程序,Gardner算法实现基带信号位同步的原理和MATLAB程序讲解
  15. “码头工人”的Docker进阶之路:从轻装上路到网络、存储和安全
  16. mysql下载完安装包怎么办_MySQL下载压缩包安装详细过程
  17. 大华摄像头实现web端实时播放以及录像回放
  18. 安全运营(SOC)概述
  19. MySQL 不四舍五入取整、取小数、四舍五入取整、取小数、向下、向上取整
  20. 小明一家过桥,过桥时是黑夜_过桥:如何过渡到软件开发的职业

热门文章

  1. wifi 定位 java_android 的wifi定位
  2. 【Code Pratice】—— 等差素数列、错误票据、神奇算式
  3. 代码随想录算法训练营第二天| 977. 有序数组的平方、209. 长度最小子数组、59.螺旋矩阵II、数组总结
  4. 织梦安装或迁移后无法更新栏目HTML,报错无法完成请求
  5. 合肥工业大学计算机与信息学院张勇,合肥工业大学计算机与信息学院导师教师师资介绍简介-△王昱洁...
  6. PPT打印留白空隙太大,解决方法!
  7. PixPlant 3中文版
  8. 事业单位计算机技术岗位中级职称,事业单位中级职称能聘任为中级岗位吗
  9. (RPA学习)——换个思路做流程员工打卡问题处理
  10. 安全合规/ISO--6--ISO 27001/27017/27018内审项清单