MYSQL学习之路——约束和分页

通过本章学习,您将可以:

  • 描述约束
  • 创建和维护约束
  • 数据库分页

什么是约束?

  • 为了保证数据的一致性和完整性,SQL规范以约束的方式对表数据进行额外的条件限制
  • 约束是表级的强制规定
  • 可以在创建表时规定约束(通过CREATE TABLE语句),或者在表创建之后也可以(通过 ALTER TABLE语句)

有以下六种约束:

  • NOT NULL 非空约束,规定某个字段不能为空
  • UNIQUE 唯一约束,规定某个字段在整个表中是唯一的
  • PRIMARY KEY 主键(非空且唯一)
  • FOREIGN KEY 外键
  • CHECK 检查约束
  • DEFAULT 默认值

注意:MySQL不支持check约束,但可以使用check约束,而没有任何效果,具体细节可以参阅W3Cschool手册

下面用一个实例来说明不同的约束:

CREATE TABLE tab_stu (
id INT PRIMARY KEY,            /*主键(非空且唯一)*/
NAME VARCHAR ( 10 ) NOT NULL,    /*NOT NULL非空约束*/
sex CHAR DEFAULT '男',        /*DEFAULT默认值约束*/
seat INT UNIQUE,            /*UNIQUE唯一约束*/
teacher_id INT,
FOREIGN KEY ( teacher_id ) REFERENCES tab_teacher ( id )
                                            /*FOREIGN外键,REFERENCES引用*/
);

/*使用外键需要先建立外表格进行引用*/
CREATE TABLE tab_teacher ( id INT PRIMARY KEY, NAME VARCHAR ( 10 ) NOT NULL );

也可以对初始值再进行约束,方法如下:

ALTER TABLE tab_stu MODIFY COLUMN id int PRIMARY KEY;
ALTER TABLE tab_stu MODIFY COLUMN name VARCHAR(10) NOT NULL;
ALTER TABLE tab_stu MODIFY COLUMN sex char DEFAULT '女';
ALTER TABLE tab_stu MODIFY COLUMN seat INT UNIQUE;
ALTER TABLE tab_stu ADD FOREIGN KEY(teacher_id ) REFERENCES tab_teacher(id);

面试常考题:主键(PRIMARY KEY)和唯一键(UNIQUE)的区别和联系?

主键不可以为NULL,唯一键可以是NULL

AUTO_INCREMENT:主键自动递增

id INT PRIMARY KEY AUTO_INCREMENT;

MySQL中使用limit实现分页

#前10条记录:

SELECT * FROM table LIMIT 0,10;

#第11至20条记录:

SELECT * FROM table LIMIT 10,10;

#第21至30条记录:

SELECT * FROM table LIMIT 20,10;

#公式:

(当前页数-1)*每页条数,每页条数

SELECT * FROM table LIMIT(pageNo - 1)*PageSize,PageSize;

注意:limit子句必须放在整个查询语句的最后!

你可能感兴趣的:(数据库)