MySQL进阶:深入理解数据约束与优化查询
MySQL管理数据库
创建数据库
CREATE DATABASE IF NOT EXISTS 数据库名;
删除数据库
DROP DATABASE 数据库名;
表的管理
查看所有表
use 数据库名; 选中一个数据库
show tables;
创建表:student(整数id,字符串name,整数age)
CREATE TABLE sutdent (id int, name varchar(20), age int);
查看一个表结构
desc 表名;
查看创建表的sql语句
SHOW CREATE TABLE 表名;
修改表结构
向学生表中添加1列remark varchar(100)
ALTER TABLE student ADD remark varchar(100)
删除学生表列remark
ALTER TABLE student DROP remark;
修改表student名字为student1
REANME TABLE sutdent TO student1;
删除表
DROP TABLE 表名;
管理数据:数据增删改DML
插入数据
INSERT INTO 表名 (字段名1, 字段名2..) VALUES (值1, 值2...);
修改数据
UPDATE 表名 SET 字段名=新的值 WHERE 条件;
删除表中的所有数据
DELETE FROM 表名;
1.排序:
select * from 表名 order by 字段名 asc(升序默认的)/desc(降序),字段名 asc(升序默认的)/desc(降序),..
2.聚合函数:
count(*) 根据列统计行数
sum(字段名)求某一列和值
max(字段名)某一列最大值
min(字段名)某一列最小值
avg(字段名)某一列平均值
3.分组:按照哪列分组,那么那一列的字段值相同就被分为一组
select * from 表名 where 条件 group by 字段名 having 条件
4.分页查询
select * from 表名 limit 起始索引,每页显示的行数;
起始索引 从0开始,对应第一行
5.约束:
1)主键约束:字段名 类型 primary key auto_increment
特点:唯一 非空
2)唯一约束:字段名 类型 unique
3)非空约束:字段名 类型 not null
4)默认值约束:字段名 类型 default 默认值
5)外键约束:约束外键,在多表中具有外键。
【constraint 外键约束名】 foreign key(外键对应的字段名) references 主表(主键);
6)多表关系:
1)一对多:将一方的主键作为多方的外键
2)多对多:创建从表(中间表)维护两张主表的关系,在从表中至少要有两列来自于主表的主键作为外键
3)一对一:将任意一方的主键作为另一方的外键
第一部分(约束和表设计)
1、DQL查询语句-limit语句(掌握)
能够掌握limit语句的使用
作用:
LIMIT`是`限制`的意思,所以`LIMIT`的作用就是限制查询记录的条数。
LIMIT语句格式:
select * from 表名 limit offset, row_count;
mysql中limit的用法:返回前几条或者中间某几行数据
-- 1 表示分页查询的索引,对应数据表是第二行数据,4表示每页显示4条数据
select * from 表名 limit 1,4。
1表示索引,注意这里的索引从0开始。对应表中第一行数据
4表示查询记录数。
上述就表示从第2条记录开始查询,一共查询4条,即到第5条。
查询学生表中数据,跳过前面1条,显示4条
我们可以认为跳过前面1条,取4条数据
SELECT * FROM student3 LIMIT 1,4;
LIMIT语句的使用格式?
1、
SELECT 字段 FROM 表名 LIMIT 索引, 显示条数;
索引:从0开始,一直变化
显示条数:每页显示的行数,固定不变的
2、
SELECT 字段名(5) FROM 表名(1) WHERE 条件(2) GROUP BY 分组列名(3) HAVING 条件(4) ORDER BY 排序列名(6) LIMIT 跳过行数, 返回行数(7);
执行顺序:1234567
2、数据库约束的概述
讲解
数据库约束的作用
对表中的数据进行进一步的限制,保证数据的正确性、有效性和完整性。
约束种类
PRIMARY KEY
: 主键约束UNIQUE
: 唯一约束NOT NULL
: 非空约束DEFAULT
: 默认值 了解FOREIGN KEY
: 外键约束
3、主键约束(掌握)
通常不用业务字段作为主键,单独给每张表设计一个id的字段,把id作为主键。主键是给数据库和程序使用的,不是给最终的客户使用的。所以主键有没有含义没有关系,只要不重复,非空就行
创建主键
主键:PRIMARY KEY
主键的特点:
- 主键必须包含唯一的值
- 主键列不能包含NULL值
创建主键方式:
字段名 字段类型 PRIMARY KEY
在已有表中添加主键(了解)
ALTER TABLE 表名 ADD PRIMARY KEY(字段名);
4、主键自增
主键如果让我们自己添加很有可能重复,我们通常希望在每次插入新记录时,数据库自动生成主键字段的值
字段名 字段类型 PRIMARY KEY AUTO_INCREMENT
AUTO_INCREMENT` 表示自动增长(字段类型必须是整数类型)
5、唯一约束
唯一约束的作用
在这张表中这个字段的值不能重复
唯一约束的基本格式
字段名 字段类型 UNIQUE
6、非空约束
这个字段必须设置值,不能是NULL
非空约束的基本语法格式
字段名 字段类型 NOT NULL
主键约束和唯一约束并且非空的区别: id primary key 主键约束 可以实现主键自增,一般数据表只有id是主键约束 name unique not null 唯一并且非空 不能实现主键自增 数据表中很多字段都可以是唯一 非空
7、默认值
字段名 字段类型 DEFAULT 默认值