前言
此系列的记录并未含有例子介绍,仅为个人学习阶段记录的知识点,并不适合直接学习,更为适合作为复习所用
SQL语句部分
通用语句
-
SQL语句可以单行或多行书写,以分号结尾
-
SQL语句可以使用空格/缩进来增强语句的可读性
-
MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
-
单行注释:--注释内容或#注释内容(MySQL特 多行注释:/*注释内容*/
DDL
数据定义语言,用来定义数据库对象(数据库,表,字段)
-
查询
-
查询表
-
查询当前数据库所有的表
-
shwo tables;
-
-
查询指定表的建表语句
-
show create table 表名;
-
-
查询表结构
-
desc 表名;
-
-
-
查询库
-
select database();查询当前数据库
-
show databases;查询所有数据库
-
-
-
创建
-
库
-
create database [if not exists] 数据库名[default charset 字符集][collate 排列顺序];
-
-
表
-
create table 表名{ 字段1 字段1类型 [comment’‘] }[comment 表注释];
-
-
-
删除
-
drop database [if exists]数据库名;
-
drop table[if exists]表名;
-
删除指定表,并重新创建该表
-
truncate table 表名;
-
-
-
使用
-
use 数据库名;
-
-
修改
-
修改数据类型
-
alter table 表名 modify 字段名 新数据类型(长度);
-
-
修改字段名和字段类型
-
alter table 表名 change 旧字段名 新字段名 类型(长度) [commit 注释][约束];
-
-
添加字段
-
alter table 表名 add 字段名 类型(长度)[commmit];
-
-
删除字段
-
alter table 表名 drop 字段名;
-
-
修改表名
-
alter table 表名 remove to 新表名;
-
-
DML
数据操作语言,用来堆数据库中的数据进行增删改
-
添加数据(字符串和日期型数据应该包含在引号中
-
给指定字段添加数据
-
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);
-
-
-
修改数据(条件可有可无,无时修改整张表的所有数据)
-
update 表名 字段名1=值1,字段名2=值2,,,[where 条件];
-
-
删除数据(不能删除某一个字段的值
-
delete from 表名 [where 条件];
-
-
修改表名
-
alter table 表名 remove to 新表名;
-
DQL
数据查询语言,用来查询数据库中表的记录
-
语法
-
select 字段列表(5) from表名列表(1) where 条件列表(2) group by 分组字段列表(3) having 分组后条件列表(4) order by 排序字段列表(6) limit 分页参数(7)
-
where和having区别
-
执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
-
判断条件不同:where不能对聚合函数进行判断,而having可以。
-
-
执行顺序:where>聚合函数>having
-
order by(多字段排序,第一个相同才根据第二个排
-
asc:升序(默认值)
-
desc:降序
-
-
-
查询
-
基本查询
-
条件查询(where)
-
条件
-
比较运算符
-
> < <= >= = <>或!= between...and...(含最大最小) in(....) like _ % IS NULL
-
-
逻辑运算符
-
and或&& or或|| not或!
-
-
-
-
聚合函数(count(统计数量),max,min,avg,sum)
-
select 聚合函数(字段列表) from 表名;
-
-
分组查询(group by)
-
分页查询(limit)
-
-
DCL
数据控制语言,用来创建数据库用户、控制数据库的访问权限
-
管理用户(主机名可以用%通配)
-
查询用户
-
select *from user;
-
-
创建用户
-
create user '用户名'@'主机名' identified by '密码';
-
-
修改用户密码
-
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';
-
-
删除用户
-
drop user '用户名'@'主机名';
-
-
-
权限控制
-
常用权限
-
all,all privileges(所有权限)
-
select(查询数据)
-
insert(插入数据)
-
update(修改数据)
-
delete(删除数据)
-
alter(修改表)
-
drop(删除数据库/表/视图)
-
create(创建数据库/表)
-
-
查询权限
-
show grants for '用户名'@'主机名';
-
-
授予权限
-
grant 权限列表 on 数据库名,表名 to '用户名'@'主机名';
-
-
撤销权限
-
revoke 权限列表 on 数据库名,表名 to '用户名'@'主机名';
-
-