MySQL创建表和主键约束
1.创建表
在操作数据表之前,应该使用"USE 数据库名"指定操作是在哪个数据库中进行
主键约束(唯一标识)
****非空***
****唯一***
****被引用****(学习外键时)
约束是添加在列上的,用来约束列的!
主键约束,用于唯一标识对应的记录。在MySQL中,为了快速查找表中的某条信息,可以通过设置主键来实现,就好比身份证可以用来标识人的身份一样。
每个数据表中最多只能有一个主键约束。
在Navicat中按键F6也可以进入命令行
2. 主键自增长
* 因为主键列的特性是:必须唯一、不能为空,所以我们通常会指定主键类为整型,然后设置其自动增长,这样可以保证在插入数据时主键列的唯一和非空特性。
* 创建表时指定主键自增长
CREATE TABLE stu(
sid INT PRIMARY KEY AUTO_INCREMENT,
sname VARCHAR(20),
age INT,
gender VARCHAR(10)
);
* 修改表时设置主键自增长:ALTER TABLE stu CHANGE sid INT AUTO_INCREMENT;
* 修改表时删除主键自增长:ALTER TABLE stu CHANGE sid INT;
* 测试主键自增长:
> INSERT INTO stu VALUES(NULL, 'zhangSan',23,'male');
> INSERT INTO stu(sname,age,gender) VALUES('zhangSan',23,'male');
CREATE TABLE stu ( id int primary key , name varchar(20) ); -- 添加自动增长 ALTER TABLE stu MODIFY id INT AUTO_INCREMENT; SELECT * FROM stu; INSERT INTO stu VALUES(1, 'AAA'); INSERT INTO stu VALUES(2, 'BBB'); INSERT INTO stu VALUES(NULL, 'CCC'); INSERT INTO stu VALUES(10, 'CCC'); INSERT INTO stu VALUES(NULL, 'CCC');
注意:自动增长的时候,只跟上一条记录有关系,会读取上一条记录的id,再在下一条记录加1。可以手动设置自增长的那个列的值
删除自动增长:ALTER TABLE stu MODIFY id INT;
3.用Navicat建表