一、表結構修改(alter)(了解):
-- 修改表名:
alter table tb_name rename to new_name;
-- 修改欄位名:
alter table tb_name change name new_name data_type;
-- 修改字段型別:
alter table tb_name modify field_name data_type;
-- 新增字段:
alter table tb_name add [column] field_name data_type;
-- 刪除字段:
alter table tb_name drop [column] field_name;
二、約束條件:
(一)、概念:約束是一種限制,通過對錶中的資料做出限制,來確保表中資料的完整性,唯一性。
(二)、預設約束(default):
create table tb(
id int default 『a』 , -- a為數值
name varchar(20)
);
注意:
插入資料的時候,如果沒有明確為字段賦值,則自動賦予預設值;
在沒有設定預設值的情況下,預設值為null;
(三)、非空約束(not null) :
create table tb(
id int not null,
name varchar(20)
);
注意:
1、限制乙個欄位的值不能為空;
2、 insert的時候必須為該字段賦值;
3、空字元不等於null。
(四)、唯一約束(unique key) :
create table tb(
id int unique key,
name varchar(20)
);
注意:
1、限制乙個欄位的值不重複;
2、該字段的資料不能出現重複的;
3、確保欄位中值的唯一。
(五)、主鍵約束(primary key) :
create table tb(
id int primary key,
name varchar(20)
);
注意:
1、通常每張表都需要乙個主鍵來體現唯一性;
2、每張表裡面只能有乙個主鍵;
3、主鍵 = 非空 + 唯一。
(六)、自增長約束(auto_increment) :
create table tb(
id int auto_increment,
name varchar(20)
);
注意:
1、自動編號,和主鍵組合使用;
2、乙個表裡面只能有乙個自增長;
3、auto_increment 要求用在主鍵上。
(七)、外來鍵約束(foreign key):
1、特點:①、保持資料的一致性;
②、 我有的你一定有, 你沒有的, 我絕對沒有。
-- 表a
create table a(
id_a int primary key,
name varchar(20)
);-- 表b
create table b(
id_b int primary key,
name varchar(20),
foreign key (id_b) references a(id_a)
);
2、注意:
①. b表中的id_b欄位,只能新增 id_a中已有的資料;
②. a表中id_a 被參照的資料, 不能被修改和刪除。
三、表關係:
一對一、一對多、多對多
示例:選課系統(e-r圖)
(一)、一對一:用外來鍵的方式,把兩個表的主鍵關聯。
舉例:學生表中有學號、姓名、學院,但學生還有些比如**,家庭住址等比較私密的資訊,這些資訊不會放
在學生表當中,會新建乙個學生的詳細資訊表來存放。這時的學生表和學生的詳細資訊表兩者的關係就
是一對一的關係,因為乙個學生只有一條詳細資訊。
用主鍵加主鍵的方式來實現
這種關係。
-- 建立詳細學生表:
create table student_details(
id int primary key,
*** varchar(20) not null,
age int,
address varchar(20) comment '家庭住址',
parents varchar(20),
home_num varchar(20),
foreign key (id) references student(s_id)
);
(二)、一對多:
舉例:通常情況下,學校中乙個學院可以有很多的學生,而乙個學生只屬於某乙個學院。
學院與學生之間的關係就是一對多的關係,通過
外來鍵關聯
來實現這種關係。
-- 建立學院表
create table department(
d_id int primary key auto_increment, -- 學院id
d_name varchar(20) not null -- 學院名
);-- 建立學生表
create table student(
s_id int primary key auto_increment, -- 學生id
s_name varchar(20) not null, -- 學生名字
dept_id int not null, -- 所屬學院 id
foreign key(dept_id) references department(d_id) -- 外來鍵
);
insert into department values(1, "外國語學院"), (2, "計算機學院");
insert into student values(1, "小奮", 2),(2, "striver", 1);
(三)、多對多:
舉例:學生要報名選修課,乙個學生可以報名多門課程,乙個課程有很多的學生報名,那麼學生表和課程表兩者就形
成了多對多關係。
對於多對多關係,需要建立中間表實現。
-- 建立課程表:
create table cours(
cours_id int primary key auto_increment,
cours_name varchar(20) not null
);-- 選課表 (中間表)
create table select(
s_id int, -- 用來記錄學生id
cours_id int, -- 用來記錄 課程id
primary key(s_id,cours_id), -- 聯合主鍵
foreign key(s_id) references student(s_id), -- 關聯學生id
foreign key(cours_id) references cours(cours_id) -- 關聯 課程id
);
insert into course values (1, "python程式設計"), (2, "大學英語"), (3, "高等數學");
insert into select_cou values(1, 3); -- 表示學號為一的同學選擇了**鑑賞這門課程
mysql資料庫基本操作(一)
mysql資料庫基本操作(二)
mysql資料庫基本操作 MYSQL資料庫基本操作
1.連線mysql mysql u 使用者名稱 p 回車後要求輸入密碼,密碼不可見 2.退出mysql命令 exit 回車 3.修改密碼 mysqladmin u使用者名稱 p舊密碼 password 新密碼4.檢視mysql許可權和使用者select host,user fromuser 對資料庫...
MySQL資料庫 基本操作
地點 基地 一 簡述 材料院的一期專案使用的是小型資料庫access,出現了幾個問題,一是 資料亂序問題,按理來說,資料應該是按時間有序寫入資料庫的,但實際上並非如此。第二個問題是 客戶要求能將多次實驗資料 一次性選中匯出到excel,後來發現即便是借助微軟的巨集命令神力也倒不到想要的快速效果。所以...
MySQL資料庫基本操作
嵌入式 小j的天空 一 mysql資料庫建立 1.建立庫與表 建立庫語句 create database 庫名稱 查庫庫語句 show databases 選擇庫語句 use 庫名稱 建立表語句 create table 表名稱 檢視表語句 desc 表名稱 例項 假設乙個公司為乙個庫,在庫中建立乙...