DDL、DML、DQL、DCL、DTL MySQL常用语法大全
目录
一 、常用操作数据库和数据表结构的命令(DDL)
二、修改表的命令(DML)
三、对数据的操作(DML,DQL)
四、多表联合查询
五、DCL 数据控制语言
六、DTL 数据事务语言
七、最常用关系语法
八、时间查询
一 、常用操作数据库和数据表结构的命令(DDL)
1.show databases; 查看所有的数据库
2.create database test; 创建一个叫test的数据库
3.drop database test; 删除一个叫test的数据库
4.use test; 选中库 ,在建表之前必须要选择数据库
5.show tables; 在选中的数据库之中查看所有的表
6.create table 表名 (字段1 类型, 字段2 类型);
7.desc 表名; 查看所在的表的字段
8.drop table 表名; 删除表
9.show create database 库名; 查看创建库的详细信息
10.show create table 表名; 查看创建表的详细信息
11.insert into表名[(字段1,字段2,…)]valuse(‘值1’,‘值2’,…); 往表里添加插入数据
二、修改表的命令(DML)
1.修改字段类型 alter table 表名 modify 字段 字段类型;
2.添加新的字段 alter table 表名 add 字段 字段类型
3.添加字段并指定位置 alter table 表名 add 字段 字段类型 after 字段;
4.删除表字段 alter table 表名 drop 字段名;
5.修改指定的字段 alter table 表名 change 原字段名字 新的字段名字 字段类型
三、对数据的操作(DML,DQL)
1.创建表 create table 表名(列名1 列类型(长度是数字)属性,列名2 列类型()属性…
2.增加数据(insert)3种方式
2.1 insert into 表名 values(值1,值2,…)(很少用)
2.2 insert into 表名(字段1,字段2…) values(值1,值2,…);(较常用)
2.3 insert into 表名(字段1,字段2…) values(值1,值2,…),(值1,值2,…),(值1,值2,…);
3.删除数据(delete) delete from 表名 where 条件 注意:where 条件必须加,否则数据会被全部删除
4.更新数据(update) update 表名 set字段1 = 值1, 字段2 = 值2 where 条件
5.查询数据(select)
5.1 查询表中的所有数据 select * from 表名
5.2 指定数据查询 select 字段 from 表名
根据条件查询出来的数据 select 字段 from 表名 where 条件 (最常用的)
where 条件后面跟的条件
关系:>,<,>=,<=,!=
逻辑:or或, and并且
区间:id between 4 and 6 ;闭区间,包含边界
6.排序
select 字段 from 表 order by 字段 排序关键词(desc | asc)
排序关键词 desc 降序 asc 升序(默认)
6.1 通过字段来排序
例如 :select * from star orser by money desc, age asc;
6.2 多字段排序
select 字段 from 表 order by 字段1 desc |asc,…字段n desc| asc;
7.常用的统计函数 sum,avg,count,max,min
只分组:select * from 表 group by 字段
例子: select count(sex) as re,sex from star group by sex having re > 3;
分组统计: select count(sex) from star group by sex;
8.lpat左填充 实现左填充指定长度
rpat右填 实现有填充指定长度
replace替换
lenght获取参数值的字节个数
concat拼接字符串
upper变大写 lower变小写
substr截取从指定索引处后面所有字符
sebstring 截取从指定索引处指定字符长度的字符
round四舍五入
ceil向上取整 返回>=该参数的最小整数 floor向下取整,返回<=该参数的最大整数
truncate 截断 mod取余
9.分组 select * from 表名 limit 偏移量,数量
说明:
9.1.不写偏移量的话就是默认的为0
9.2.实现分页的时候必须写偏移量
偏移量怎么计算?:
limit (n-1)*数量 ,数量
四、多表联合查询
1.内连接
隐式内连接 select username,name from user,goods where user,gid=gods,gid;
显示内连接
select username,from user inner join goods on user.gid=goods.gid;
select * from user left join goods on user.gid=goods.gid;
2.外链接
左连接 包含所有的左边表中的记录以及右边表中没有和他匹配的记录
右连接
select * from user where gid in(select gid from goods);
select * from user right jOin goods on user.gid=goods.gid;
子嵌套查询
数据联合查询
select * from user left join goods on user.gid=goods.gid union select * from user right join goods on user.gid=goods.gid;
两个表同时更新
update user u, goods g set u.gid=12,g.price=1 where u.id=2 and u.gid=g.gid;
五、DCL 数据控制语言
1.创建用户:create user’xiaoming’@‘localhost’ identified by ‘666666’;
2.授权用户:grant all on test.to’xiaoming’@‘localhost’;
3.刷新权限:flush privileges;
4.取消授权:revoke all on test. from ‘xiaoming’@‘localhost’;
5.删除用户: drop user’xiaoming’@‘localhost’;
六、DTL 数据事务语言
1.开启事务:set autocommit=0;
2.操作回滚:rollback;
3.提交事务:commit;
七、最常用关系语法
SELECT
case -------------如果
when sex=‘1’ then ‘男’ -------------sex=‘1’,则返回值’男’
when sex=‘2’ then ‘女’ -------------sex=‘2’,则返回值’女’
else ‘其他’ -------------其他的返回’其他’
end -------------结束
from user --------整体理解: 在user表中如果sex=‘1’,则返回值’男’如果sex=‘2’,则返回值’女’ 否则返回’其他’
SELECT EMPLOYEE_ID, FIRST_NAME, SALARY,
CASE
WHEN SALARY>=10000 THEN ‘A’
WHEN SALARY>=8000 AND SALARY<10000 THEN ‘B’
WHEN SALARY>=6000 AND SALARY<8000 THEN ‘C’
WHEN SALARY>=2000 AND SALARY<6000 THEN ‘D’
ELSE ‘E’
END AS ‘薪资级别’
FROM t_employees ORDER BY 薪资级别; # 顺便排个序
八、时间查询
SELECT 时间函数([参数列表]);
获取各种日期和时间
#. 1.当前系统时间 2022-07-27 15:11:03 SELECT NOW(); SELECT SYSDATE();# 2.获得当前日期 2022-07-27 SELECT CURDATE();# 3.获得当前时间 15:11:58 SELECT CURTIME();# 4.获得指定日期在一年中为第几周 30 SELECT WEEK(CURDATE())+1;# 5.获取指定日期中的年 2022 SELECT YEAR(CURDATE());# 6.获取指定日期中的月 7 SELECT MONTH(CURDATE());# 7.获取指定日期中的日 27 SELECT DAY(CURDATE());# 8.获取指定日期中的时 15 SELECT HOUR(SYSDATE());# 9.获取指定日期中的分 13 SELECT MINUTE(SYSDATE());# 10.获取指定日期中的秒 56 SELECT SECOND(SYSDATE());# 11.获取date1和date2之间相隔的天数 365 SELECT DATEDIFF(SYSDATE(), '2021-7-27');# 12.获取指定天数后的日期 2022-08-02 15:15:10 SELECT ADDDATE(SYSDATE(), 6);# 13.当月最后一天 SELECT LAST_DAY(SYSDATE()) AS '本月最后1天日期'; # 2022-07-31# 14.格式化日期格式 SELECT DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p'),# Jul 27 2022 03:06 PMDATE_FORMAT(NOW(),'%m-%d-%Y'), # 07-27-2022DATE_FORMAT(NOW(),'%d %b %y'); # 27 Jul 22
Date
显示格式 | YYYY-MM-DD |
显示范围 | 1601-01-01 到 9999-01-01 |
应用场景 | 当业务需求中只需要精确到天时,可以用这个时间格式 |
后台取值 | @JSONField(format=”yyyy-MM-dd”) |
Time
显示格式 | HH:mm:ss |
显示范围 | 00:00:00 到 23:59:59 |
应用场景 | 当业务需求中只需要每天的时间,可以用这个时间格式 |
后台取值 | @JSONField(format=”HH:mm”)(这里是只精确到分,数据库存的也就是只精确到分,比如 09:36:00,如果需要精确到秒。需要使用@JSONField(format=”HH:mm:ss”)) |
TimeStamp
显示格式 | YYYY-MM-DD HH:mm:ss |
显示范围 | 1601-01-01 00:00:00 到 9999-12-31 23:59:59 |
应用场景 | 当业务需求中需要精确到秒或者毫秒时,或者该系统用于不同时区,可以用这个时间格式 |
后台取值 | @JSONField(format=”yyyy-MM-dd HH:mm:ss:SSS”)(这里只会精确到秒) |
DDL、DML、DQL、DCL、DTL MySQL常用语法大全相关推荐
- Python|SQL详解之DDL|DML|DQL|DCL|索引|视图、函数和过程|JSON类型|窗口函数|接入MySQL|清屏|正则表达式|executemany|语言基础50课:学习(14)
文章目录 系列目录 原项目地址 第41课:SQL详解之DDL 建库建表 删除表和修改表 第42课:SQL详解之DML insert操作 delete 操作 update 操作 完整的数据 第43课:S ...
- MySQL 数据库 - 通用语法 DDL DML DQL DCL
目录 数据模型 通用语法及分类 DDL(数据定义语言) 数据库操作 表操作-查询 表操作-创建 表操作-修改 表操作-删除 表操作-数据类型 DML(数据操作语言) DML介绍 DML添加数据 DML ...
- MySQL 的DDL DML DQL DCL细节解析 知道这些就够了
SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data Definition Language) 对象: 数据库和表 ...
- 如何管理和使用哪些命令操作MySQL数据库?(基本操作,SQL语言,DDL,DML,DQL,DCL,Windows字符和图形界面MySQL安装)
文章目录 前言 一:数据库基本操作命令 1.1:MySQL常用管理操作是哪些? 1.2:查看数据库列表信息的命令是? 1.3:查看数据库中的数据表信息命令是? 1.4:显示数据表的结构(字段)命令是? ...
- dml语句包括哪些_聊聊MySQL基本操作DDL,DML,DQL,DCL
本篇文章来回顾一下MySQL的基本操作之DDL,DML,DQL,DCL,每种操作都有各自不同的语法,常用的操作汇总如下. 一.DDL-数据定义语言 作用:数据定义语言主要用来定义数据库中的各类对象,包 ...
- Mysql的DDL DML DQL DCL
m代表长度(1-65) d代表保留少数位(0-30) 整数型 tinyint(m)1字节 取值范围(-128-+127) int(m)4字节 取值范围(大概20几亿) 浮点型 double(m,d)8 ...
- MySQL(DDL DML DQL DCL)
文章目录 服务器 数据库 MySQL: 数据库软件 SQL: 结构化查询语句 DDL: 操作数据库和表 操作数据库 操作表 列数据类型 操作表的语法 DML: 操作表中的数据 where子句运算符 增 ...
- MySql基础汇总-DDL DML DQL DCL,存储过程,事务,触发器,函数等
use testdb;-- /**********************************************一:数据库操作语言****************************** ...
- 浅析 ddl,dml,dql,dcl 概念定义
DDL(Data Definition Language)语句: 数据定义语言,主要是进行定义/改变表的结构.数据类型.表之间的链接等操作.常用的语句关键字有 CREATE.DROP.ALTER 等. ...
- SQL分类:DDL/DML/DQL/DCL以及作用
sql分类 1 DDL(Data Definition Language:数据库定义语言,操作数据库,表(创建,删除,修改)) 2 DML(Data Manipulation Language:数据库 ...
最新文章
- 淘宝李晓拴:淘宝网PHP电子商务应用
- 指针都没搞懂,还能算得上 C++ 老司机?
- 因一个计算机故障而“停工”!观测宇宙 30 多年的哈勃太空望远镜还能坚持多久?...
- 2021-春季学习-智能车技术创新与实践-Lesson2
- linux中软件包管理
- vux 地图插件_基于vue的移动端组件vux的安装及使用
- stomp 连接错误: Whoops! Lost connection to http://localhost:8080/spring13/stomp 的解决方法
- gdb+zbacktrace找到cpu过高php代码
- 程序员的代码行数越少越好?
- 华为面试题--字符串重排
- oracle cude报错,【案例】Oracle报错PLS-00597 PLS-00635原因和解决办法笔记
- 微信获取openid的时候报40163错的原因
- Vue_路由_query参数_params参数_命名路由_props配置_编程式路由导航_缓存路由组件_新的生命周期钩子_全局、独享、组件内路由守卫_路由的两种工作模式
- Android基础整合项目之节日群发助手(二)
- win10自动修复-无限循环【通用完美】超简单解决办法
- RabbitMQ的简单应用
- word插入excel文档显示图标的方法
- 情侣睡觉为什么在床头总会放一包纸巾?今天终于知道了
- java有关的论述_中国大学MOOC: 以下有关JAVA线程的论述,正确的是()。
- EasyUI/TopJUI可编辑表格的列根据返回数据判断是使用 combobox 还是 numberbox
热门文章
- Jenkins Bitbucket Java 部署
- 计算机思维培训心得,计算机教师培训心得体会
- 泰拉瑞亚试图加载不正确的_泰拉瑞亚Switch中文版将在12月19日发售|宝可梦 剑/盾大量细节公布 自动存档可关经验平均分配等...
- 韦东山第3期嵌入式Linux项目-视频监控-1-v4l2视频框架分析
- HDU - 1234 开门人和关门人
- altium room 布局_Altium Designer的PCB中ROOM的功用、放置、修改
- Android Camera2 Opengles2.0 实时滤镜(冷暖色/放大镜/模糊/美颜)
- 华为手机真机测试问题 The application could not be installed: INSTALL_FALLED_INTERNAL_ERROR
- html如何给图片加链接
- 秘密打印机涉密计算机之间,涉密打印机与涉密计算机之间应该怎么连接