Class7 初學資料庫之MySQL常見約束

2021-10-06 18:20:41 字數 4077 閱讀 9357

特點:

一張表裡面主鍵是唯一的;

主鍵可以用來唯一的標識一行資料,主鍵不能為空。

聯合主鍵:表中字段不能作為唯一標識每一行資料時,選取表中兩個或者多個字段作為聯合主鍵

特點:如果去掉聯合主鍵某個字段,剩下的字段任然可以構成聯合主鍵,那麼說明之前的聯合主鍵是錯誤的

在修改表時新增主鍵

alter table

表名add primary key(

欄位名);

刪除主鍵:

alter table

表名drop primary key;

建立表的時候設定主鍵:

方式一:

create table 表名(

-> id int(11) primary key,

-> name varchar(12)

-> );

方式二:

create table 表名(

-> id int(11),

-> name varchar(12),

-> primary key(id))

建立聯合主鍵:

create table表名(

-> name char(16),

-> gender char(10),

-> birthday date,

-> city varchar(16),

-> primary key(name,city)

-> );

特點:

和主鍵結合使用,

自增字段的資料型別是整數型別

自增的資料開始值是1,沒增加一行資料,自增1

新增自增

create table 表名(

id int(11) primary key auto_increment,

name varchar(25),

location varchar(50) );

設定自增預設值

create table表名(

id int(11) primary key auto_increment,

name varchar(25),

location varchar(50)

)auto_increment=100;

刪除自增

alter table

表名modify id int(11);

在修改表時設定自增

alter table

表名change column id id int(11) auto_increment;

修改表時指定初始值

alter table

表名auto_increment=100;

constraint別名foreign key (

本表要外來鍵的欄位名)references要外來鍵到的表名(欄位名)

表間關係:

一對一一對多多對多

mysql5.6中文支援問題

default charset=gb2312;

檢視建立表是sql

show create table 表名;

外來鍵特點:

外來鍵關聯時主表要先去從表建立

外來鍵字段的值必然在主表中是可以一一對應的

外來鍵可以為空,但是不為空的外來鍵必然可以在主表中跟它對於

外來鍵關聯的必然是主表的主鍵

建立外來鍵約束

create table 表名(

id int(10) primary key auto_increment,

sid int(10),

name varchar(50),

subject varchar(50),

score varchar(50) ,

constraint 別名

foreign key (

本表要外來鍵的欄位名

) references studentinfo

要外來鍵到的表名

(欄位名)

);修改表時新增外來鍵約束

alter table

表名add constraint

別名foreign key (

本表要外來鍵的欄位名

) references

要外來鍵到的表名

(欄位名);

刪除外來鍵約束

alter table

表名drop foreign key

外鍵名

特點:

主鍵在乙個表裡面只能有乙個

但是唯一性約束可以有多個

設定了唯一性約束的字段表中有且只能有乙個空值

建立表的時候設定唯一性約束

create table表名(

id int(11) primary key,

name varchar(25) unique,

location varchar(50) );

修改表的時候新增唯一性約束

alter table

表名add  unique(name);

起別名:

alter table

表名add constraint

別名unique(

字段);

刪除唯一性約束

alter table

表名drop index

欄位名;

特點:

在插入資料時,如果不寫入就使用預設值,如果寫入就使用新值

新建表時建立預設值

create table 表名(

id int(11) primary key,

name varchar(25),

location varchar(50) default 'shanghai' );

修改表時建立預設值

alter table

表名change location location varchar(25) default 'beijing';

刪除預設值

alter table lx change location location varchar(50) default null;

特點:

一張表中可以設定多個欄位非空,主鍵預設非空

新建表時設定非空約束

create table表名(

id int(11) not null,

name varchar(35),

location varchar(50) );

修改表時設定非空約束

alter table

表名change name name varchar(34) not null;

刪除非空約束:

alter table

表名change column name name varchar(34) null;

mysql資料庫之python鏈結mysql

使用之前請在命令列pip install pymysql import pymysql 1.建立鏈結 conn pymysql.connect host 127.0.0.1 ip位址 port 3306,埠號 database database name 資料庫名稱 user mysql usern...

初學資料庫

開學一周了,剛好把資料庫的例子全部敲完,初步知道了什麼是資料庫。首先說說在敲例子的過程中遇到的問題。例一 資料可連線測試不成功!後來發現是因為使用的不是vb建立的資料庫,是從電腦裡的隨便乙個地方複製過來的。於是問題得以解決。但是不明白這些資料庫出去內容不同外到底還有什麼區別,為什麼不能連線上。資料庫...

初學 資料庫

從這週開始學習資料庫,不管學什麼,資料庫都是基礎,所以我們一定要認真對待,打好基礎。今天學習了第一章,總結知識點如下 1.使用資料庫的優點 降低儲存資料的冗長度,更高的資料一致性,儲存的資料可以共享,可以建立資料庫所遵循的標準,便於維護資料完整性,能夠實現資料的安全性。2.在資料庫發展歷史上,出現了...