侧边栏壁纸
  • 累计撰写 18 篇文章
  • 累计创建 12 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

MySQL语法总结

whfree
2022-03-03 / 0 评论 / 1 点赞 / 4 阅读 / 8909 字

MySQL语法总结

在前期学习SQL语法后,每过一段时间使用时都容易因为一些小的语法毛病导致出错,好记性不如烂笔头,虽在笔记本上记过一次,索性再在博客上再汇总一遍。

SQL语句执行顺序

(8)SELECT (9)DISTINCT  (11)<Top Num> <select list>
(1)FROM [left_table]
(3)<join_type> JOIN <right_table>
(2)        ON <join_condition>
(4)WHERE <where_condition>
(5)GROUP BY <group_by_list>
(6)WITH <CUBE | RollUP>
(7)HAVING <having_condition>
(10)ORDER BY <order_by_list> 

常用语法小结

insert

给表增加一行。

insert into tablename [(col1, col2, ...)] values(v1, ...);

insert select

select查询结果插入到表

insert into tablename [(col1, col2, ...)]
select col1, col2, ... from tablename2, ...
[where ...];

delete

删除一行或多行

delete from tablename [where ...];

update

更新一行或多行数据

update tablename set col1=value1, ... [where ...];

select

查询语句

select columnname, ...
from tablename, ...
[where ...]
[union ...]
[group by ...]
[having ...]
[order by ...];

create table

创建数据库表

create table tablename
(
    column1 int [null | not null] [constraints],
    column2 varchar(50) [null | not null] [constraints],
);

create index

创建索引

create index indexname on tablename (column1 [asc|desc]);

create procedure

创建存储过程

create procedure procedurename([in age int])
begin
...
end;

create user

创建数据库用户,@用于限制用户从特定的主机连接到数据库,%表示任何主机。

create user username [@hostname] [identified by 'password'];

create view

创建视图

create [or replace] view viewname as select ...;

alter table

更新已存在的表结构

alter table tablename
(
    add column1 int [null | not null] [constraints],
    change column2 old_col_name int [null|not null] [constraints],
    modify column3 data_type [null|not null] [constraints],
    drop column4
);

drop

删除数据库对象(表、视图、索引)

drop database|index|procedure|table|trigger|user|view itemname;

start transaction

开始事务处理

start transaction;

rollback

撤销一个事务处理

rollback [to savepointname];

commit

提交事务处理到数据库

commit;

savepoint

为使用rollback语句设立保留点

savepoint sql;

其他实用命令

查看表的统计信息

show table status tablename;

查看表的约束及表的创建SQL

show create table tablename;

查看表索引

show index from tablename;

查看表结构

desc|describe tablename;
show columns from tablename;
explain tablename;

查看数据库相关信息

show databases; -- 所有数据库
show status; -- 数据库状态信息
show errors; -- 错误信息
show warnings; -- 警告信息
show tables; -- 表信息

常用函数汇总

字符串函数

函数功能
CONCAT(s1,s2,……)字符串拼接
INSERT(str,x,y,instr)将指定开始标记到结束的字符串替换为指定字符串
LOWER(str)将字符串所有字符转为小写
UPPER(str)将字符串所有字符串转为大写
LEFT(str,x)返回字符串 str 最左边的 x 个字符
RIGHT(str,x)返回字符串 str 最右边的 x 个字符
LPAD(str,n,pad)在 str 最左边填充 n 个 pad
RPAD(str,n,pad)在 str 最右边填充 n 个 pad
LTRIM(str)去掉字符串 str 左侧的空格
RTRIM(str)去掉字符串 str 右侧的空格
REPEAT(str,x)返回 str 重复 x 次的结果
STRCMP(s1,s2)比较字符串 s1 和 s2
REPLACE(str,a,b)用字符串 b 替换字符串 str 中所有出现的字符串 a
TRIM(str)去掉字符串行尾和行头的空格
SUBSTRING(str,x,y)返回从字符串 str x 位置起 y 个字符长度的字串

数学函数

函数功能
ABS(x)返回 x 的绝对值
CEIL(x)返回大于 x 的最小整数值
FLOOR(x)返回小于 x 的最大整数值
MOD(x,y)返回 x/y 的模
RAND()返回 0~1 内的随机值
ROUND(x,y)返回参数 x 的四舍五入的有 y 位小数的值
TRUNCATE(x,y)返回数字 x 截断位 y 位小数的结果

日期与时间函数

函数功能
CURDATE()返回当前日期
CURTIME()返回当前时间
NOW()返回当前的日期和时间
UNIX_TIMESTAMP(date)返回日期 date 的 UNIX 时间戳
FROM_UNIXTIME返回 UNIX 时间戳的日期值
WEEK(date)返回日期 date 为一年中的第几周
YEAR(date)返回日期 date 的年份
HOUR(time)返回 time 的小时值
MINUTE(time)返回 time 的分钟值
MONTHNAME(date)返回 date 的月份名
DATE_FORMAT(date,fmt)返回按字符串 fmt 格式日期 date 值
DATE_ADD(date,interval expr type)返回一个日期或时间值加上一个时间间隔的时间值
DATEDIFF(expr,expr2)返回起始时间 expr 和结束时间 expr2 之间的天数

流程函数

函数功能
IF(value,t f)如果 value 是真,返回 t;否则返回 f
IFNULL(value1,value2)如果 value1 不为空,返回 value1,否则返回 value2
CASE WHEN [value1] THEN[result1]...ELSE[default]END如果 value1 是真,返回 result1,否则返回 result
CASE[expr] WHEN [value1]THEN[result1]...ELSE[default]END如果 expr 等于 value1,返回 result1,否则返回 default

其他

函数功能
DATEBASE()返回当前数据库名
VERSION()返回当前数据库版本
USER()返回当前登录用户名
INET_ATON(ip)返回 ip 地址的数字表示
INET_NTOA(num)返回数字代表的 ip 地址
PASSWORD(str)返回字符串 str 的加密版本
MD5()返回字符串 str 的 md5 值

引用

https://github.com/guanguans/notes/tree/master/MySQL

1

评论区