分页查询
-- 标准语法 SELECT 列名 FROM 表名 [WHERE 条件] GROUP BY 分组列名 [HAVING 分组后条件过滤] [ORDER BY 排序列名 排序方式] LIMIT 开始索引,查询条数; -- 公式:开始索引 = (当前页码-1) * 每页显示的条数 -- 每页显示2条数据 SELECT * FROM product LIMIT 0,2; -- 第一页 开始索引=(1-1) * 2 SELECT * FROM product LIMIT 2,2; -- 第二页 开始索引=(2-1) * 2 SELECT * FROM product LIMIT 4,2; -- 第三页 开始索引=(3-1) * 2 SELECT * FROM product LIMIT 6,2; -- 第四页 开始索引=(4-1) * 2分页查询图解
约束 约束的概念和分类约束的概念
对表中的数据进行限定,保证数据的正确性、有效性、完整性!
约束的分类
约束 说明PRIMARY KEY 主键约束
PRIMARY KEY AUTO_INCREMENT 主键、自动增长
UNIQUE 唯一约束
NOT NULL 非空约束
FOREIGN KEY 外键约束
FOREIGN KEY ON UPDATE CASCADE 外键级联更新
FOREIGN KEY ON DELETE CASCADE 外键级联删除
主键约束
主键约束特点
主键约束包含:非空和唯一两个功能
一张表只能有一个列作为主键
主键一般用于表中数据的唯一标识
建表时添加主键约束
-- 标准语法 CREATE TABLE 表名( 列名 数据类型 PRIMARY KEY, 列名 数据类型, ...); -- 创建student表 CREATE TABLE student( id INT PRIMARY KEY -- 给id添加主键约束); -- 添加数据 INSERT INTO student VALUES (1),(2); -- 主键默认唯一,添加重复数据,会报错 INSERT INTO student VALUES (2); -- 主键默认非空,不能添加null的数据 INSERT INTO student VALUES (NULL); -- 查询student表 SELECT * FROM student; -- 查询student表详细 DESC student;删除主键
-- 标准语法 ALTER TABLE 表名 DROP PRIMARY KEY; -- 删除主键 ALTER TABLE student DROP PRIMARY KEY;建表后单独添加主键
-- 标准语法 ALTER TABLE 表名 MODIFY 列名 数据类型 PRIMARY KEY; -- 添加主键 ALTER TABLE student MODIFY id INT PRIMARY KEY; 主键自动增长约束建表时添加主键自增约束
-- 标准语法 CREATE TABLE 表名( 列名 数据类型 PRIMARY KEY AUTO_INCREMENT, 列名 数据类型, ...); -- 创建student2表 CREATE TABLE student2( id INT PRIMARY KEY AUTO_INCREMENT -- 给id添加主键自增约束); -- 添加数据 INSERT INTO student2 VALUES (1),(2); -- 添加null值,会自动增长 INSERT INTO student2 VALUES (NULL),(NULL); -- 查询student2表 SELECT * FROM student2; -- student2表详细 DESC student2;删除自动增长
-- 标准语法 ALTER TABLE 表名 MODIFY 列名 数据类型; -- 删除自动增长 ALTER TABLE student2 MODIFY id INT;建表后单独添加自动增长
-- 标准语法 ALTER TABLE 表名 MODIFY 列名 数据类型 AUTO_INCREMENT; -- 添加自动增长 ALTER TABLE student2 MODIFY id INT AUTO_INCREMENT; 唯一约束建表时添加唯一约束
-- 标准语法 CREATE TABLE 表名( 列名 数据类型 UNIQUE, 列名 数据类型, ...); -- 创建student3表 CREATE TABLE student3( id INT PRIMARY KEY AUTO_INCREMENT, tel VARCHAR(20) UNIQUE -- 给tel列添加唯一约束); -- 添加数据 INSERT INTO student3 VALUES (NULL,\'18888888888\'),(NULL,\'18666666666\'); -- 添加重复数据,会报错 INSERT INTO student3 VALUES (NULL,\'18666666666\'); -- 查询student3数据表 SELECT * FROM student3;-- student3表详细DESC student3;删除唯一约束
-- 标准语法 ALTER TABLE 表名 DROP INDEX 列名; -- 删除唯一约束 ALTER TABLE student3 DROP INDEX tel;建表后单独添加唯一约束
-- 标准语法 ALTER TABLE 表名 MODIFY 列名 数据类型 UNIQUE; -- 添加唯一约束 ALTER TABLE student3 MODIFY tel VARCHAR(20) UNIQUE; 非空约束建表时添加非空约束
-- 标准语法 CREATE TABLE 表名( 列名 数据类型 NOT NULL, 列名 数据类型, ...); -- 创建student4表 CREATE TABLE student4( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20) NOT NULL -- 给name添加非空约束); -- 添加数据 INSERT INTO student4 VALUES (NULL,\'张三\'),(NULL,\'李四\'); -- 添加null值,会报错 INSERT INTO student4 VALUES (NULL,NULL);删除非空约束
-- 标准语法 ALTER TABLE 表名 MODIFY 列名 数据类型; -- 删除非空约束 ALTER TABLE student4 MODIFY NAME VARCHAR(20);