1:DDL-数据库定义语句,用来定义数据库对象(数据库,表,字段)
·查询:
//查询所有数据库
SHOW DATABASES;
//查看处于哪个当前数据库
SELECT DATABASE();
//查询所有表
SHOW TABLES;
//查询表结构
desc 表名;
·创建:
//创建数据库(其中【IF NOT EXISTS】表示如果存在即不创建)
CREEATE DABASES [IF NOT EXISTS] 数据库名称;
//创建表
CREATE TABLE 表名(
字段1 字段类型 【COMMENT字段注释】,
字段2 字段类型 【COMMENT字段注释】,
......
)[COMMMENT 表注释];
·删除:
//删除数据库
DROP DATABASE 数据库名称;
//删除表字段
ALTER table 表名 drop 字段名;
//删除表
DROP TABLE 表名;
//删除制定表,并重新创建该表;
TRUNCATE TABLE 表名;
·使用:
USE 数据库;
·添加:
ALERT 表名 ADD 字段名 类型;
·修改:
//修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型了;
//修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型;
//修改表名
ALTER TABLE 表名 rename to 新表名;
2:DML语句-数据库操作语句,用来对数据库表中的数据增删改
添加数据:(insert)
//给制定字段添加数据
INSERT INTO 表名(字段名1,字段名2....) VALUES(值1,值2...);
//给全部字段添加数据
INSERT INTO 表名(值1,值2,值3...)
//批量添加数据
INSERT INTO 表名(字段名1,字段名2...) VALUES(值1,值2...),(值1,值2...),(值1,值2...);
INSERT INTO 表名 VALUES (值1,值2...),(值1,值2...),(值1,值2...);
修改数据:(update)
//修改数据,不带where语句会更新整张表
UPDATE 表名 SET 字段名1 = 值1,字段名2 = 值2,.... where 条件
删除数据:(delete)
DELETE FROM 表名 where 条件;
3:DQL语句:数据库查询语句,查询数据库表中的语录
基本查询:
//查询多个字段
SELECT 字段1,字段2 FROM 表名;
SLEECT * 表名;
//设置别名
SELECT 字段1[as 别名].... from 表名;
//去除重复记录
SELECT DISTINCT 字段列表 FROM 表名:
条件查询:
//条件列表用逻辑运算符
SELECT 字段列表 FROM 表名 WHERE 条件列表;
条件参考:
分组查询:
聚合函数:
SELECT 聚合函数(字段列表) FROM 表名;
having表示分组后过滤,where表示分组前过滤。
执行顺序:where>聚合函数>having
SELECT 字段列表 FROM 表名 [where] GROUP BY 分组字段名 [HAVING 分组后的过滤条件]
排序查询:
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2;
分页查询:
//索引从0开始
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;
DQL的执行顺序:
4:DCL语句:数据库控制语言,创建数据库用户、控制数据库访问权限
这部分主要是数据管理人员使用
查询用户:
USE mysql;
SELECT * FROM user;
创建用户:
CREATE USER ‘用户名‘@’主机名’ IDENTIFIED BY ‘密码’
修改用户密码:
ALERT USER ‘用户名’@‘主机名’ IDENTIFIED WITH mysql_native_password BY '新密码';
删除用户:
DROP UDER'用户名'@‘主机名’;
权限控制:
//查询权限
SHOW CRANTS FOR '用户名'@‘主机名’;
//授予权限
GRANT 权限列表 ON 数据库名.表名 TO ‘用户名’@‘主机名’;
//撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM ‘用户名’@‘主机名’;
索引语法:
//创建索引
CREATE [UNIQUE | FULLTEXT] INDEX 索引名 ON 表名(字段名);
//查看索引
SHOW INDEX FRON 表名;
//删除索引
DROP INDEX 索引名 ON 表名;