主键 外键 非空约束 唯一性约束 自增
unique和primary key的区别
- 一个表中可以有多个字段声明为u’nique,但只能有primary key声明;
- 声明为primary key的列不允许有空值,但是声明为unique的字段允许空值得的存在。
1数据库
创建数据库
CREATE DATABASE pracitse;
-- 删除数据库
DROP DATABASE pracitse;
2数据表
创建一张父表
创建数据表
USE pracitse;
CREATE TABLE pritsefather(
-- id设为主键并自增
id INT AUTO_INCREMENT,
-- 设置姓名的唯一性
NAME VARCHAR(20) UNIQUE,
-- 设置性别的约束(要么男性或女性)
-- check在mysql8.0版本以下都不适用,在mysql8.0及以上才有效。
sex VARCHAR(2) CHECK(sex='男'OR sex='女'),
address VARCHAR(20) NOT NULL,
-- 设置一个默认值
tel VARCHAR(4) DEFAULT '1111',
-- 给一张表中设置两个主键
CONSTRAINT PRIMARY KEY (id,NAME)
);
-- 删除数据表pritsefather;
DROP TABLE pritsefather;
-- 给父表添加数据
INSERT INTO pritsefather(NAME,sex,address) VALUES('xiaozhang','男','');
INSERT INTO pritsefather(NAME,sex,address) VALUES('xiaowang','男','月河镇');
-- 删除表中的一条数据
DELETE FROM pritsefather WHERE id=3;
-- 修改表中的数据
UPDATE pritsefather SET sex='女' WHERE id=2;
-- 查询数据表
SELECT * FROM pritsefather;
-- 删除数据父表
DROP TABLE pritsefather;
创建一张子表
-- 创建另外一张子表
CREATE TABLE pritseson(
-- pid设为主键并自增
pid INT PRIMARY KEY AUTO_INCREMENT,
id INT,
tel VARCHAR(11) NOT NULL,
-- 外键
FOREIGN KEY(id) REFERENCES pritsefather(id)
);
-- 给字表中添加数据
INSERT INTO pritseson(id,tel) VALUES(1,15891097012),
(2,13978425142);
-- 删除数据表
DROP TABLE pritseson;
-- 修改数据表中的数据
UPDATE pritseson SET tel = '13478564522339' WHERE id = 1;
程序报错
因为修改的数据长度超过11位。
如下修改则正确。
-- 修改数据表中的数据
UPDATE pritseson SET tel = '13478564529' WHERE id = 1;
-- 查询数据表
SELECT * FROM pritseson;
来源:CSDN
作者:蒙蒙小公举
链接:https://blog.csdn.net/qq_44102678/article/details/104030559