- CDUR:
Create Delete Update Retrieve
- DDL(Data Definition Language):
create, drop, alter
- 操作数据库
- 正在使用:
select database();
切换use 数据库名称;
- ` create database (if not exists) 数据库名称 (character set 字符集名);
drop database if exists 数据库名称;
alter database 数据库名称 character set 字符集名称
show databases;
/show create database 数据库名称;
- 正在使用:
- 操作表
CREATE TABLE 表名(列名 列类型,列名 列类型);
最后一列,不加逗号(,)drop table if exists 表名;
- U
alter table 表名 rename to 新的表名 ;
alter table 表名 character set 字符集名称;
与 rename 不能同时alter table 表名 add 列名 数据类型;
alter table 表名 change 列名 新列名 新数据类型;
alter table 表名 modify 列名 新数据类型;
alter table 表名 drop 列名;
- R
create table 表名 like 被复制的表名;
复制show tables;
show create table 表名;
desc 表名;
查询表结构
- 操作数据库
- DML(Data Manipulation Language):
insert, delete, update
增删改表中数据INSERT INTO 表名(列名1,列名2, ...) VALUES(值1, 值2,...)
,不定义列名,则默认给所有列添加值DELETE FROM 表名 [WHERE 条件]
`TRUNCATE TABLE 表名; ``UPDATE 表名 SET 列名1=值1, … 列名n=值n [WHERE 条件]
- DQL(Data Query Language):
select, where
select 字段 [DISTINCT]去重 [AS] from 表名 [where] 条件 [group by] 分组字段 [having] 分组之后的条件 [order by] (DESC)排序 [limit] 分页限定
- DCL(Data Control Language):
GRANT, REVOKE
- 约束:
not null unique primary key foreign key
auto_increment - 事务:
start transaction rollback commit savepoint
- ACID :原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)
- 事务隔离级别:read uncommitted:读未提交、read committed:读已提交、repeatable read:可重复读 (MySQL默认)、serializable:串行化
select @@transaction_isolation
查询隔离级别set global transaction isolation level
设置隔离级别- 备份和还原 :
-- 备份 mysqldump -u用户名 -p密码 数据库名称 > 保存的路径
mysqldump -uroot -proot db02 > C://t3.sql
执行文件 source 文件路径 (source c://t3.sql;)
还原,需使用新数据库
事务隔离- 脏读:一个事务,读取到另一个事务中没有提交的数据。
- 虚读(不可重复读):在同一个事务中,两次读取到的数据不一样,A事务读到了B事务提交之后的数据(更新操作)。
- 幻读:两个事务冲突,修改别人已经修改过的,而产生的报错(幻觉)
注意:
-
如果不加条件,则删除表中所有记录
-
如果要删除所有记录
-
不推荐使用。有多少条记录就会执行多少次删除操作
delete from 表名;
-
推荐使用,效率更高 先删除表,然后再创建一张一样的表。
TRUNCATE TABLE 表名;
-
where子句后跟条件
> 、< 、<= 、>= 、= 、<>
BETWEEN...AND
and 或 &&
or 或 ||
IN( 集合)
IS NULL 是 空
not 或 !
模糊查询
-
LIKE:模糊查询必须使用like关键字
-
占位符
-
_ : 单个任意字符
-
% 多个任意字符
-
聚合函数
-
聚合函数将一列数据作为一个整体,进行纵向的计算
-
COUNT()
统计指定列不为NULL的记录行数; -
MAX()
计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算; -
MIN()
计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算; -
SUM()
计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0; -
AVG()
计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;
IFNULL(english,0) 英语是null name就按照0分计算
-
级联操作(了解)
ALTER TABLE 表名 ADD
CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称)
ON UPDATE CASCADE
ON DELETE CASCADE;
多表查询
内连接:查询多张表的交集信息。
外连接:查询某个表的全部信息的同时在查询另一张表的交集信息。