MySQL 資料庫常見指令三

2021-10-05 13:12:05 字數 4314 閱讀 4314

約束條件

表關係學習到的知識如下

create table stu(stu_id int primary key auto_increment,

name varchar(20),

age tinyint,

ins_id int not null);

alter table tb_name rename to new_tb_name;

把原表名為tb_name的修改為new_tb_name;

alter table new_tb_name change name sut_name datetime;

將表名為new_tb_name中字段為name的名字修改為stu_name,並且字段值的型別修改為datetime型別,

注:修改字段,必須帶上修改後的字段型別

alter table new_tb_name modify stu_name varchar(20);

將表名為new_tb_name中字段為sut_name的字段型別修改為varchar(20)

注:如果將字元型別的字段修改為型別為數值型,那麼修改前需確認字元中是否是全部是數字,如果不是,會出現不匹配報錯```

alter table new_tb_name add *** varchar(10);

在表new_tb_name中新增乙個新字段***,且字段型別為varchar,長度為10的字段。

alter table new_tb_name drop ***;

將表new_tb_name中字段為***的字段刪除

是一種限制,通過對錶中的資料做出限制,來確保資料的完整性,唯一性

default

建立時約束

create table tb_name (id int default 0);
建立tb_name時制定欄位id型別為int,預設值為0

加字段時制定

alter table tb_name add name varchar(20) default "name";
增加欄位name時制定預設值為name

not null

建立時制定

create table tb_name (id int not null,name varchar(20));
建立表tb_name時欄位型別為int,插入資料時不能為空值,所以一般非空和預設約束配合使用。

同樣可以在修改或者增加欄位時指定。

unique key

建立時制定

create table tb_name(id int unique key);
建立表tb_name 時欄位id唯一,插入值時id不能重複,否則會報錯。

同樣可以在修改或者增加欄位時指定。

primary key

乙個表只能有乙個主鍵

建立時指定

create table tb_name(id int primary key);
建立表tb_name時欄位id為主鍵,主鍵是非空加唯一

刪除主鍵約束

alter table tb_name drop  primary key;
刪除表tb_name的主鍵約束

auto_increment

一般和主鍵配合使用乙個表只能有乙個

建立時指定

create table tb_name(id int primary key auto_increment,name varchar(20));
建立表tb_name時,欄位id型別int,且為主鍵,沒插入乙個資料,id會自動加1.

所以插入資料時,如果資料為空,必須制定主鍵值,或者加上default

insert into tb_name values(default,"jiuchen");

insert into tb_name values(null,"jiuchen");

foreign key … references

外來鍵約束是連線兩個表,所以外來鍵約束必須有兩個表以上才行

建立時指定

表1:

create table tb_name1(tb1_id int primary key auto_increment,name varchar(20));
表2:加上外來鍵約束

create table tb_name2(tb2_id int primary key,phone int,foreign key(tb2_id) references tb_name1(tb1_id));
上述表tb_name1和tb_name2其中都是以id為主鍵。且表2中的tb2_id為外來鍵,與表tb_name1中tb1_id相關聯。注:

修改外來鍵約束

先查表的外鍵名

show create table course;

然後刪除

alter table course drop foreign key course_ibfk_1;

新增外來鍵約束

alter table course add foreign key(col_id) reference college(col_id);
用主鍵加主鍵來實現一對一

表1:

create table stu_out(stu_id int primary key ,

name varchar(20),

age tinyint,

*** varchar(20));

表2:

create table stu_in(stu_id int primary key ,

grade varchar(20),

phone int,

address varchar(50)

foreign key(stu_id) references stu_out(stu_id));

以上的兩個表stu_out和stu_in通過主鍵id形成了一對一的關係。

主鍵加主鍵,外來鍵關聯

表3:

create table deparment(dep_id int primary key auto_increment,

dep_name varchar(20));

表1:一對一關係中的表1加乙個dep_id為非主鍵

create table stu_out(stu_id int primary key ,

name varchar(20),

age tinyint,

*** varchar(20)

dep_id int not null

foreign key(dep_id) references deparment(dep_id));

表1的主鍵stu_id已經與表2的主鍵關聯起來了,但是表1中的dep_id又與表3中的主鍵

dep_id關聯起來,這種情況就是一對多。

即乙個主鍵可以用來對應多個主鍵

需要通過中間表來實現

通過中間表來聯合主鍵,分別關聯兩個表(通過外來鍵關聯)

表4:

create table cours(cou_id int primary key auto_increment,

cou_name varchar(20) not null);

中間表:

create table select(stu_id int ,

cou_id int,

primary key(stu_id,cou_id),

foreign key(stu_id) references stu_out(stu_id),

foreign key(cou_id) references cours(cou_id));

其中 primary key(stu_id,cou_id),為聯合主鍵,下面的兩個foreign key分別關聯兩個表:表1 stu_out和表4 cours的主鍵。

即中間表的聯合主鍵分別對應兩個表的多個主鍵,即中間表的

stu_id 可以對應多個表1的stu_id;

cou_id可以對應多個表4的cou_id;

這樣就形成了多對多的關係

MySQL資料庫(三)MySQL基礎常見命令

1.檢視當前所有資料庫 show databases 2.開啟指定的庫 use 庫名 3.檢視當前庫中所有的表 show tables 4.檢視其它庫中所有的表 show tables from 庫名 5.檢視某個表的結構 desc 表名 6.建立乙個表 create table 表名 列名 資料型...

Mysql 指令建立資料庫

一 連線mysql 格式 mysql h主機位址 u使用者名稱 p使用者密碼 1 連線到本機上的mysql。首先開啟dos視窗,然後進入目錄mysql bin,再鍵入命令mysql u root p,回車後提示你輸密碼.注意使用者名稱前可以有空格也可以沒有空格,但是密碼前必須沒有空格,否則讓你重新輸...

MySQL資料庫常見操作

1.為所有使用者授權 grant all privileges on to 使用者名稱 identified by 密碼 2.資料庫基礎操作 1 登陸mysql資料庫 mysql u root p,回車後再輸入密碼即可 2 檢視所有資料庫 show databases 3 刪除某個資料庫 drop ...