主鍵 外鍵 非空約束 唯一性約束 自增
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;