学习总结:
-
-- DDL 数据定义语言
-- 作用:定义数据库中数据的存储结构 -- 主要命令create(创建数据库或表)、drop(删除数据库或表)、alter(修改表的数据结构)
-- 其他命令:查看所有数据库 show databases; -- 其他命令:使用当前数据库 use 数据库名 -- 1.创建数据库:create database 数据库名;
-- 2.创建表:create table 表名( 列名 数据类型类型 约束,[列名 数据类型类型 约束,] ...) -- 3.删除数据库:drop database 数据库名;
-- 4.删除表:drop table 表名;
-- 5.1修改表名:alter table 旧表名 rename 新表名;
-- 5.2删除表的一个字段:alter table 表名 drop column 字段名;
-- 5.3向表中添加一个字段:alter table 表名 add column 字段名 字段类型 约束;
-- 5.4修改表中的一个字段类型:alter table 表名 modify 字段名 字段类型 约束;
-- 5.5修改表中的一个字段,包括重命名字,重设数据类型,重设约束:alter table change column 旧表名 新表名 新数据类型 新约束;
-- 5.5重命名表中的一个字段:alter table change column 旧表名 新表名 新数据类型 新约束;
-
-- DML 数据操控语言
-- 作用:操控表中的数据 -- 主要命令:insert(插入数据)、update(更新数据)、delete(删除数据) -- 其他命令:show table(查询数据库的所有表信息)、desc 表名(查询表的数据结构)
-- 1.向表中插入数据:insert into 表名(字段名,字段名...) values(插入字段值,插入字段值...);
-- 2.修改表中数据:update 表名 set 表达式(比如name = '小白白') where 更新条件;
-- 3.删除表中数据:delete from 表名 where 删除条件;(没有删除条件默认记录全部删除)
-- DRL 数据查询语言 -- 作用:查询表中的数据 -- 主要命令:select 查询目标 from 表名 where 查询条件
-- 注意点:查询语句中的表可以起别名,起名格式是表名加空格加别名,或者是表名 as 别名;查询语句可以嵌套,一个查询语句的查询结果可以作为另一个查询语句的数据源
-- 1.查询表中的所有数据:select * from 表名
-- 2.查询表中某些字段的所有数据:select 字段名... from 表名;
-- 3.根据某些条件查询表中某些字段的数据:select 字段名... from 表名 where 筛选条件;
-- 4.根据表中某一字段的值进行分组,再显示所有组的第一行数据:select * from 表名 group by 字段名;
-- 5.根据表中某一字段的值进行分组,再显示所有组的记录数:select count(*) from 表名 group by 字段名;
-- 6.连接查询
-- 6.1连接查询的类别:内连接、外连接(左连接、右连接)、交叉连接(基本不用)
-- 6.2内连接:从一张表中取出每一条记录去与另一张表中的所有记录进行匹配,符合匹配条件的记录则保留下来,默认多表查询连接方式
-- 6.3左连接:一left join 关键字左边的表为主表,从左表中取出每一条记录与右表的全部记录进行匹配,能匹配到记录则保留,匹配不到就将右表的查询字段设置为空
-- 6.4左连接:一right join 关键字右边的表为主表,从右表中取出每一条记录与左表的全部记录进行匹配,能匹配到记录则保留,匹配不到就将左表的查询字段设置为空
-
-- 事务
-- 个人理解含义:事务是外部用户对数据库进行操作的最小执行单位 -- 事务的特性:原子性(操作不可分割,要么完成,要么失败)、持久性(操作成功即永久保存)、隔离性(事务之间彼此独立)、一致性(事务是使数据库从一个一致性状态变到另一个一致性状态)
-
-- 数据库范式:
-- 第一范式:每一个列都是不可分割
-- 第二范式:非主键字段都对主键字段产生依赖,无论是直接还是简介依赖
-- 第三范式:非主键字段都对主键字段产生的依赖只能是直接依赖(表中不包含其它表的非主键字段)
-- 数据库表的设计最起码需要满足第三范式