MySQL之DML和DQL
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相关推荐
- 【MySQL】DML,DQL
文章目录 3.MySQL数据管理 3.1.外键(了解) 3.2.DML语言(熟悉) insert update修改 delete 删除 4. DQL查询数据(熟悉) 4.1 DQL数据查询语言(dat ...
- MySql的初识感悟,以及sql语句中的DDL和DML和DQL的基本语法
花了将近一周的时间学习了数据库的基本用法,今天总结一下. 一.一些感悟 数据库的定义:数据库是"按照数据结构来组织.存储和管理数据的仓库".是一个长期存储在计算机内的.有组织的.可 ...
- MySQL的DDL、DML和DQL的基本语法
定义: SQL语句,即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一 种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系统 ...
- mysql基础1 -------- DDL、DML、DQL、DCL
目录 前言 SQL概述 SQL的分类 DDL 数据库操作 表操作 查询创建表 数据类型 表操作 案例 修改表结构操作 删除表操作 DML 添加数据 修改数据 删除数据 DQL 基本语法 基本查询 条件 ...
- 在mysql数据库中DDL_Mysql 数据库操作之DDL、DML、DQL语句操作
Mysql 数据库操作之DDL.DML.DQL语句操作 设置数据库用户名密码 l Show databases 查看数据库列表信息 l 查看数据库中的数据表信息 ,格式: use 数据库名: sh ...
- mysql基础之DML、DQL语句
课程笔记Day25 DDL语句 DML语句 DQL语句 第一章 DDL语句 第01节 操作数据库 1.创建数据库 简单的创建语法 -- 语法格式: CREATE DATABASE 数据库的名称;-- ...
- Mysql基本语法DML和DQL语句的总结(笔记)
Mysql基本语法DML和DQL语句的总结(笔记) 文章目录 Mysql基本语法DML和DQL语句的总结(笔记) 1.DML语句之插入 2.DML语句之修改表记录 语法1:带条件修改 语法2:带条件修 ...
- 死磕数据库系列(二十):MySQL 数据库 DDL、DML、DQL、DCL 语言理论与实践(sql 8.0 版)...
点关注公众号,回复"1024"获取2TB学习资源! 今天,民工哥带大家一起来学习一下 MySQL 数据库的 DDL.DML.DQL.DCL 这几种语言的理论知识与实践.如有帮助,请 ...
- Mysql 第二章 数据库 DML和DQL
一.MySQL的存储引擎 1 .存储引擎的类型:有MyISAM.InnoDB .Memory.CSV等9种 2. MyISAM与InnoDB类型主要区别 适用场合 使用MyISAM: 不需事务,空 ...
最新文章
- 微信小程序自定义组件之Picker组件
- 【转载】IP网络位,主机位,广播地址及掩码
- 每天一个linux命令(58):telnet命令
- oracle 11g-R2安装
- 细胞自动机 通用计算机,细胞自动机
- 如何理解Mysql的索引及他们的原理--------二叉查找树和平衡二叉树和B树和B+树
- [你必须知道的.NET]第二十四回:认识元数据和IL(上)
- html如何在本页路径上拼接参数,Html图片路径拼接参数实现打印导出
- L1-067 洛希极限 (10 分)-PAT 团体程序设计天梯赛 GPLT
- ktor HTTP API 练习
- ActiveMQ demo
- python菜鸟教程基础入门
- java过滤器Filter实现敏感词汇过滤
- 载波同步matlab程序,Gardner算法实现基带信号位同步的原理和MATLAB程序讲解
- “码头工人”的Docker进阶之路:从轻装上路到网络、存储和安全
- mysql下载完安装包怎么办_MySQL下载压缩包安装详细过程
- 大华摄像头实现web端实时播放以及录像回放
- 安全运营(SOC)概述
- MySQL 不四舍五入取整、取小数、四舍五入取整、取小数、向下、向上取整
- 小明一家过桥,过桥时是黑夜_过桥:如何过渡到软件开发的职业
热门文章
- wifi 定位 java_android 的wifi定位
- 【Code Pratice】—— 等差素数列、错误票据、神奇算式
- 代码随想录算法训练营第二天| 977. 有序数组的平方、209. 长度最小子数组、59.螺旋矩阵II、数组总结
- 织梦安装或迁移后无法更新栏目HTML,报错无法完成请求
- 合肥工业大学计算机与信息学院张勇,合肥工业大学计算机与信息学院导师教师师资介绍简介-△王昱洁...
- PPT打印留白空隙太大,解决方法!
- PixPlant 3中文版
- 事业单位计算机技术岗位中级职称,事业单位中级职称能聘任为中级岗位吗
- (RPA学习)——换个思路做流程员工打卡问题处理
- 安全合规/ISO--6--ISO 27001/27017/27018内审项清单