MySQL資料庫基本操作 三)

2021-08-26 12:23:16 字數 4375 閱讀 7268

一、表結構修改(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 表名稱 例項 假設乙個公司為乙個庫,在庫中建立乙...