首页 > 数据库 >MySQL所有常用语法大全

MySQL所有常用语法大全

时间:2024-01-25 15:24:56浏览次数:29  
标签:user MySQL 语法 字段 gid select 表名 SELECT 大全

MySQL所有常用语法大全
一 、常用操作数据库的命令
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’,…)往表里添加插入数据

二、修改表的命令
1.修改字段类型 alter table 表名 modify 字段 字段类型;
2.添加新的字段 alter table 表名 add 字段 字段类型
3.添加字段并指定位置 alter table 表名 add 字段 字段类型 after 字段;
4.删除表字段 alter table 表名 drop 字段名;
5.修改指定的字段 alter table 表名 change 原字段名字 新的字段名字 字段类型

三、对数据的操作
1.创建表 create table 表名(列名1 列类型(长度是数字)属性,列名2 列类型()属性…
2.增加数据(insert)3种方式
1.1 insert into 表名 values(值1,值2,…)(很少用)
1.2 insert into 表名(字段1,字段2…) values(值1,值2,…);(较常用)
1.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.当前系统时间 2020-03-26 10:55:56 SELECT NOW(); SELECT SYSDATE();
    
    # 2.获得当前日期 2020-03-26 SELECT CURDATE();
    
    # 3.获得当前时间 10:55:56 SELECT CURTIME();
    
    # 4.获得指定日期在一年中为第几周 13 SELECT WEEK(CURDATE())+1;
    
    # 5.获取指定日期中的年 2020 SELECT YEAR(CURDATE());
    
    # 6.获取指定日期中的月 3 SELECT MONTH(CURDATE());
    
    # 7.获取指定日期中的日 26 SELECT DAY(CURDATE());
    
    # 8.获取指定日期中的时 10 SELECT HOUR(SYSDATE());
    
    # 9.获取指定日期中的分 55 SELECT MINUTE(SYSDATE());
    
    # 10.获取指定日期中的秒 56 SELECT SECOND(SYSDATE());
    
    # 11.获取date1和date2之间相隔的天数 366 SELECT DATEDIFF(SYSDATE(), '2019-03-26');
    
    # 12.获取指定天数后的日期 2020-04-01 10:55:56 SELECT ADDDATE(SYSDATE(), 6);
    
    # 13.当月最后一天 SELECT LAST_DAY(SYSDATE()) AS '本月最后1天日期'; # 2020-03-31
    
    # 14.格式化日期格式 SELECT   DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p'), # Mar 26 2020 10:02 PM DATE_FORMAT(NOW(),'%m-%d-%Y'), # 03-26-2020
    DATE_FORMAT(NOW(),'%d %b %y'), # 26 Mar 20 DATE_FORMAT(NOW(),'%d %b
    %Y %T:%f'); # 26 Mar 2020 22:02:23:000000

标签:user,MySQL,语法,字段,gid,select,表名,SELECT,大全
From: https://www.cnblogs.com/codeLearn/p/17987231

相关文章

  • MySQL100题知识点
    https://testerhome.com/articles/349721、select*查询带来的不确定性2、SELECTemp_name,salary*12+COALESCE(bonus,0)FROMemployee;COALESCE函数用于将空值转换为03、SELECTemp_name,salary*12+COALESCE(bonus,0)AS"全年收入"FROMemployee;AS为......
  • 转载:Linux 问题故障定位的技巧大全
    转载:https://mp.weixin.qq.com/s/vzG9y7Uh1xGstGbopGBvjw 1、背景有时候会遇到一些疑难杂症,并且监控插件并不能一眼立马发现问题的根源。这时候就需要登录服务器进一步深入分析问题的根源。那么分析问题需要有一定的技术经验积累,并且有些问题涉及到的领域非常广,才能定位到问......
  • # WinDbg学习三(字符串通配符语法)
    说明星号(*)代表零个或多个字符。问号(?)代表任意单个字符。包含字符列表的方括号([])代表列表中的任何单个字符。恰好匹配列表中的一个字符。在这些括号内,您可以使用连字符(-)指定范围。例如,Prog[er-t7]am匹配“Progeam”、“Program”、“Progsam”、“Pro......
  • 2024年1月Java项目开发指南4:IDEA里配置MYSQL
    提前声明:文章首发博客园(cnblogs.com/mllt)自动“搬家”(同步)到CSDN,如果博客园中文章发生修改是不会同步过去的,所以建议大家到我的博客园中查看前提条件:1.你已经设计好了数据库,并成功创建了数据库。2.你的springboot项目中已经配置好了MySQL的连接。填写好信息后点测试连......
  • MySQL中,当update修改数据与原数据相同时会再次执行吗?
    一、背景本文主要测试MySQL执行update语句时,针对与原数据(即未修改)相同的update语句会在MySQL内部重新执行吗?二、测试环境MySQL5.7.25Centos7.4三、binlog_format为ROW1、参数 2、测试步骤session1session2session13、总结在binlog_format=row和binlog_row_image......
  • MYSQL数据库同步脚本 --仅供参考
      备份同步数据 #!/bin/bash#定义变量user="root"pass="un1ware"host=""file=$(date+"%Y-%m-%d")#使用日期作为文件夹名称#获取主从状态信息master_status=$(mysql--user="$user"--password="$pass"-h"$host"......
  • MySQL如何快速禁用账户登入 & 如何复制/复用账户密码【转】
    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。作者:叶金荣文章来源:GreatSQL社区原创如何快速临时禁止某账户登入角色ROLES管理需要先激活关于授权的其他几点补充如何复制/复用账户密码1.快......
  • 第 3 章:将源文件转换为抽象语法树
    如前一章所学,编译器通常分为前端和后端两部分。在本章中,我们将实现一种编程语言的前端,即主要处理源语言的部分。我们将学习现实世界中编译器使用的技术,并将其应用于我们的编程语言。我们的旅程将从定义我们的编程语言的语法开始,结束于抽象语法树(AST),它将成为代码生成的基础。你可......
  • Mysql报:ERROR 145 (HY000) at line 1: Table './mysq1/proc' is marked as crashed an
    版权声明:原创作品,谢绝转载!否则将追究法律责任。—————作者:kirin先看报错mysq1:[Marning]Usingapasswordonthecommandlineinterfacecanbeinsecure.ERROR145(HY000)atline1:Table'./mysq1/proc'ismarkedascrashedandshouldberepaired1、截图如......
  • MySQL死锁
    简介在MySQL数据库中,死锁是指多个事务同时竞争同一资源,并且彼此互相等待对方释放资源而无法继续执行的情况,导致数据库操作无法完成,从而以最小的成本自动回滚事务的行为。排查方法1showengineinnodbstatus;执行以上命令会得到大量日志,在LATESTDETECTEDDEADLOCK与TRANSAC......