SQL通用语法
1.SQL语句可以单行或多行书写,以分号结尾。
2.SQL语句可以使用空格/缩进来增强语句的可读性。
3.MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
4.注释:
单行注释:–注释内容或#注释内容(MySQL特有)
·多行注释:/注释内容/
查询
DDL-表操作-查询
添加字段
DDL-表操作-修改
DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改操作。
添加数据(INSERT)
修改数据(UPDATE)
删除数据(DELETE)
给指定字段添加数据
INSERT INTO表名(字段名1,字段名2,…)VALUES(值1,值2,…) ;
给全部字段添加数据
INSERT INTO表名VALUES(值1,值2,…);
批量添加数据
INSERT INTO表名(字段名1,字段名2,…)VALUES(值1,值2.….),(值1,值2,…),(值1,值2,…);
INSERT INTO表名VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…);
修改数据
UPDATE表名SET字段1=值1,字段2=值2[WHERE条件];
删除数据
DELETE FROM表名[ WHERE冬件];
1.查询多个字段
SELECT字段1,字段2,字段3… FROM表名;
SELECT * FROM 表名;
2.设置别名
SELECT字段1 [AS别名1],字段2[ AS 别名2]… FROM表名;
3.去除重复记录
SELECT DISTINCT字段列表FROM表名;
聚合函数
注意:null值不参与所有聚合函数运算。
执行顺序: where >聚合函数>having
排序方式
ASC:升序(默认值)DESC:降序
语法:
SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数;
例子:
-- 查询第一页数据,展示10条
SELECT * FROM employee LIMIT 0, 10;
-- 查询第二页
SELECT * FROM employee LIMIT 10, 10;
注意事项
管理用户
查询用户:
USER mysql;
SELECT * FROM user;
创建用户:
CREATE USER ‘用户名’@‘主机名’ IDENTIFIED BY ‘密码’;
修改用户密码:
ALTER USER ‘用户名’@‘主机名’ IDENTIFIED WITH mysql_native_password BY ‘新密码’;
删除用户:
DROP USER ‘用户名’@‘主机名’;
例子:
-- 创建用户test,只能在当前主机localhost访问
create user 'test'@'localhost' identified by '123456';
-- 创建用户test,能在任意主机访问
create user 'test'@'%' identified by '123456';
create user 'test' identified by '123456';
-- 修改密码
alter user 'test'@'localhost' identified with mysql_native_password by '1234';
-- 删除用户
drop user 'test'@'localhost';
注意事项
主机名可以使用 % 通配
权限控制
常用权限:
权限 说明
ALL, ALL PRIVILEGES 所有权限
SELECT 查询数据
INSERT 插入数据
UPDATE 修改数据
DELETE 删除数据
ALTER 修改表
DROP 删除数据库/表/视图
CREATE 创建数据库/表
更多权限请看权限一览表
查询权限:
SHOW GRANTS FOR ‘用户名’@‘主机名’;
授予权限:
GRANT 权限列表 ON 数据库名.表名 TO ‘用户名’@‘主机名’;
撤销权限:
REVOKE 权限列表 ON 数据库名.表名 FROM ‘用户名’@‘主机名’;
注意事项
多个权限用逗号分隔
授权时,数据库名和表名可以用 * 进行通配,代表所有
CONCAT(s1, s2, …, sn) | 字符串拼接,将s1, s2, …, sn拼接成一个字符串 |
LOWER(str) | 将字符串全部转为小写 |
UPPER(str) | 将字符串全部转为大写 |
LPAD(str, n, pad) | 左填充,用字符串pad对str的左边进行填充,达到n个字符串长度 |
-RPAD(str, n, pad) - | -右填充,用字符串pad对str的右边进行填充,达到n个字符串长度- |
TRIM(str) | 去掉字符串头部和尾部的空格 |
SUBSTRING(str, start, len) | 返回从字符串str从start位置起的len个长度的字符串 |
-- 拼接
SELECT CONCAT('Hello', 'World');
-- 小写
SELECT LOWER('Hello');
-- 大写
SELECT UPPER('Hello');
-- 左填充
SELECT LPAD('01', 5, '-');
-- 右填充
SELECT RPAD('01', 5, '-');
-- 去除空格
SELECT TRIM(' Hello World ');
-- 切片(起始索引为1)
SELECT SUBSTRING('Hello World', 1, 5);