数据库DataBase
MySQL
SQL(Structurd Query Language)
SQL的分类:
- DDL:数据定义语言
- 操作数据库:
- 数据库数据类型
- 操作表
创建表
create table person(
-> id int,
-> age int,
-> name varchar(20),
-> birthday date,
-> insert_time timestamp
-> );
复制表
create table person1 like person;
- DML:增删改表中数据
- DQL:表中数据查询
- 排序查询
select * from table1 order by id asc||desc; - 聚合函数
- 分组查询
- 分页查询
- DCL:管理用户,授权
mysql数据库中的user表存储了用户的信息
- 管理用户
mysql中忘记了root用户的密码解决方法: - 授权–权限管理:
练习:
– DCL
– 查询用户信息
SELECT *FROM USER;
– 添加用户
CREATE USER yh IDENTIFIED BY ‘root’;
CREATE USER [email protected] IDENTIFIED BY ‘root’;
CREATE USER [email protected]’%’ IDENTIFIED BY ‘root’;
– 删除用户
DROP USER yh;-- 默认删除带通配符的用户
DROP USER [email protected]’%’;
DROP USER [email protected];
– 修改用户密码
SET PASSWORD FOR yh=PASSWORD(‘1234’);
– 过时
UPDATE USER SET PASSWORD=PASSWORD(‘123’) WHERE USER=‘yh’;
– 权限查询
SHOW GRANTS FOR [email protected];
SHOW GRANTS FOR yh;
– 授予权限
GRANT SELECT,DELETE ON yh.personTO [email protected];
– 授予所有权限
GRANT ALL ON . TO [email protected]’%’;
– 撤销权限
REVOKE DELETE ON yh.personFROM [email protected];
- 约束:
- 分类:
- 主键约束
联合主键 primary key(列名1,列名2,…)
非空且唯一 - 非空约束
- 唯一约束(唯一索引)
- 外键约束
constraint可以省略
级联操作
练习:
CREATE TABLE stu2(
id INT PRIMARY KEY AUTO_INCREMENT,-- 主键且自动增长
NAME VARCHAR(20) UNIQUE,-- 唯一约束
age INT NOT NULL,-- 非空约束
CONSTRAINT flk FOREIGN KEY (age) REFERENCES person(id) ON UPDATE CASCADE ON DELETE CASCADE-- 外键约束constraint 外键约束名可以省略,级联改删操作
);
- 多表关系
- 多表关系案例
- 范式
- 概念:
- 分类:
-
范式案例
原数据表:
第一范式
第二范式
第三范式 -
数据库的备份和还原
-
多表查询
补充:笛卡儿积:
- 内连接查询
①隐式内连接:使用where条件消除无用信息
select 字段列表 from 表名1 ,表名2 where 条件;
②显式内连接:select 字段列表 from 表名1 [inner] join 表名2 on 条件;
③注意:从那些表中查,条件是什么,查询哪些字段 - 外连接查询
①左外连接:
②右外连接: - 子查询:查询中嵌套查询,称嵌套差询为子查询
将子查询的结果当作where中的要求值
多表查询练习:
- 事务
- 事务基本介绍:
①概念;
②操作:
③例子:④MySQL数据库中事务默认自动提交
- 事务的四大特性:
- 事务的隔离级别(了解):
①概念:
②存在问题:
③隔离级别:
④注意:
⑤查询和设置隔离级别:
级别字符串就是上述隔离级别四种
⑥事务隔离级别的演示: