MySQL學習筆記1(建表和約束)

1.查看編碼方式語句:SHOW VARIABLES LIKE 'charater_set_client';


2.修改MySQL目錄下的my.ini文件也可修改字符集編碼default-character-


set=gbk(修改後需重啓MySQL服務)


3.bin目錄下的MySQLInstanceConfig.exe,重新配置




4.建表(大小寫區分與系統有關)
CREATE DATABASE 數據庫名;
DROP DATABASE 數據庫名;
DROPP TABLE 表名;
SHOW TABLES;
SHOW DATABASES;
USE 數據庫名;
CREATE TABLE 表名;
CREATE TABLE tb_emp(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(18),
sex VARCHAR(2) CHECK(sex = '男' OR sex = '女'),
age INT CHECK(age > 18 AND age < 60),
address VARCHAR(200),
email VARCHAR(100)
dept_id INT
);


#修改列類型 , 不是任何情況下都可以修改的,當字段只包含空值時可以,


其他情況下可能不成功
ALTER TABLE tb_emp MODIFY name VARCHAR(18);
#增加列
ALTER TABLE tb_emp ADD mobile VARCHAR(100);
#刪除列
ALTER TABLEtb_emp DROP COLUMN email;
ALTER TABLE tb_emp DROP mobile;#mysql特有
#修改列名
ALTER TABLE tb_emp CHANGE name emp_name VARCHAR(18);
#修改表名
ALTER TABLE tb_emp RENAME tb_employee;
ALTER TABLE tb_emp to tb_employee; 


5.約束(主鍵約束,外鍵約束,唯一約束,檢查約束,非空約束)
(1)建表時鍵約束
CREATE TABLE tb_emp(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(18) NOT NULL,
sex VARCHAR(2) CHECK(sex = '男' OR sex = '女'),
age INT CHECK(age > 18 AND age < 60),
address VARCHAR(200),
email VARCHAR(100) UNIQUE,
dept_id INT REFERENCES tb_dept(id)#外鍵約束沒起作用
);


(2)建表最後建立約束
CREATE TABLE tb_emp(
id INT AUTO_INCREMENT,
name VARCHAR(18) NOT NULL,
sex VARCHAR(2) CHECK(sex = '男' OR sex = '女'),
age INT CHECK(age > 18 AND age < 60),
address VARCHAR(200),
email VARCHAR(100) UNIQUE,
PRIMARY KEY (id),
#建立外鍵CONSTRAINT FOREIGN KEY 外鍵名(外鍵)REFERENCES 主表(字段)
CONSTRAINT FOREIGN KEY tb_emp_fk (dept_id) REFERENCES tb_dept(id) 
);
(3)建表後,建立約束,表級
CREATE TABLE tb_emp(
id INT,
name VARCHAR(18) NOT NULL,
sex VARCHAR(2) ,
age INT ,
address VARCHAR(200),
email VARCHAR(100)
dept_id INT
);


#添加主鍵
ALTER TABLE tb_emp
ADD PRIMARY KEY(id);


#更改自增長
ALTER TABLE tb_emp
MODIFY COLUMN id INT AUTO_INCREMENT;




#添加外鍵
ALTER TABLE tb_emp
ADD CONSTRAINT FOREIGN KEY tb_emp_fk (dept_id) REFERENCES tb_dept 


(id);


#添加唯一鍵
ALTER TABLE tb_emp 
ADD UNIQUE (email);


#添加檢查約束
ALTER TABLE tb_emp
ADD CONSTRAINT CHECK (age > 18 AND age < 60);


#刪除約束
#修改非空約束
ALTER TABLE tb_emp MODIFY NAME VARCHAR(18);


#刪除唯一約束
ALTER TABLE tb_emp DROP INDEX email;


#刪除主鍵約束,注意自動增長問題
ALTER TABLE tb_emp MODIFY id INT;
ALTER TABLE tb_emp DROP PRIMARY KEY (id);


#刪除外鍵約束 mysql下要用它定義的名字
ALTER TABLE tb_emp DROP FOREIGN KEY tb_emp_fk


#默認
CREATE TABLE tb_emp(
id INT AUTO_INCREMENT,
name VARCHAR(18) NOT NULL,
sex VARCHAR(2) DEFAULT '男' CHECK(sex = '男' OR sex = '女'),
age INT CHECK(age > 18 AND age < 60),
address VARCHAR(200),
email VARCHAR(100) UNIQUE,
PRIMARY KEY (id),

#建立外鍵CONSTRAINT FOREIGN KEY 外鍵名(外鍵)REFERENCES 主表(字段)

CONSTRAINT FOREIGN KEY tb_emp_fk (dept_id) REFERENCES tb_dept(id) 
);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章