MySQL表的增刪改查(2)

數據庫約束
約束類型:
NOT NULL - 指示某列不能存儲 NULL 值。
UNIQUE - 保證某列的每行必須有唯一的值。
DEFAULT - 規定沒有給列賦值時的默認值。
PRIMARY KEY - NOT NULL 和 UNIQUE 的結合。確保某列(或兩個列多個列的結合)有唯一標
識,有助於更容易更快速地找到表中的一個特定的記錄。
FOREIGN KEY - 保證一個表中的數據匹配另一個表中的值的參照完整性。
CHECK - 保證列中的值符合指定的條件。對於MySQL數據庫,對CHECK子句進行分析,但是忽略
CHECK子句。

--  NULL約束
-- 重新設置學生表結構
DROP TABLE IF EXISTS student;
CREATE TABLE student (
   	id INT NOT NULL,
   	sn INT,
   	name VARCHAR(20),
   	qq_mail VARCHAR(20)
);

-- UNIQUE 唯一約束
-- 重新設置學生表結構
DROP TABLE IF EXISTS student;
CREATE TABLE student (
   	id INT NOT NULL,
   	sn INT UNIQUE,
   	name VARCHAR(20),
   	qq_mail VARCHAR(20)
);

-- DEFAULT 默認值約束
-- 重新設置學生表結構
DROP TABLE IF EXISTS student;
CREATE TABLE student (
   	id INT NOT NULL,
   	sn INT UNIQUE,
   	name VARCHAR(20) DEFAULT 'unkown',
   	qq_mail VARCHAR(20)
);

-- PRIMARY KEY 主鍵約束
-- 重新設置學生表結構
DROP TABLE IF EXISTS student;
CREATE TABLE student (
   	id INT NOT NULL PRIMARY KEY,
   	sn INT UNIQUE,
   	name VARCHAR(20) DEFAULT 'unkown',
   	qq_mail VARCHAR(20)
);

-- FOREIGN KEY 外鍵約束
-- 創建班級表,有使用MySQL關鍵字作爲字段時,需要使用``來標識
DROP TABLE IF EXISTS classes;
CREATE TABLE classes (
 	id INT PRIMARY KEY auto_increment,
 	name VARCHAR(20),
 	`desc` VARCHAR(100)
);
-- 重新設置學生表結構
DROP TABLE IF EXISTS student;
CREATE TABLE student (
	id INT PRIMARY KEY auto_increment,
   	sn INT UNIQUE,
   	name VARCHAR(20) DEFAULT 'unkown',
   	qq_mail VARCHAR(20),
 	classes_id int,
 	FOREIGN KEY (classes_id) REFERENCES classes(id)
);

--  CHECK約束
drop table if exists test_user;
create table test_user (
   	id int,
   	name varchar(20),
   	sex varchar(1),
   	check (sex ='男' or sex='女')
);

表的設計

-- 創建課程表
DROP TABLE IF EXISTS course;
CREATE TABLE course (
   id INT PRIMARY KEY auto_increment,
   name VARCHAR(20)
);

-- 創建課程學生中間表:考試成績表
DROP TABLE IF EXISTS score;
CREATE TABLE score (
	id INT PRIMARY KEY auto_increment,
 	score DECIMAL(3, 1),
 	student_id int,
 	course_id int,
 	FOREIGN KEY (student_id) REFERENCES student(id),
 	FOREIGN KEY (course_id) REFERENCES course(id)
);

新增

-- 創建用戶表
DROP TABLE IF EXISTS test_user;
CREATE TABLE test_user (
	id INT primary key auto_increment,
   	name VARCHAR(20) comment '姓名',
   	age INT comment '年齡',
   	email VARCHAR(20) comment '郵箱',
 	sex varchar(1) comment '性別',
 	mobile varchar(20) comment '手機號'
);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章