SQL基礎之模式與表

2021-07-30 11:03:44 字數 1733 閱讀 4957

一、模式(schema)的概念

當我剛學到模式這個概念時,特別不理解。其實,schema就是把資料庫分成許多集合,每個集合包含了各種物件,如:表、檢視、儲存過程和索引等。不同的集合有不同的名字,預設情況下使用者名稱就是模式名。如果把乙個資料庫看成是乙個幢樓,大樓裡面的每個房間就是乙個模式,而房間裡面的各種物品就是表、索引等。這樣解釋,應該比較容易理解。在mysql中,模式的概念與database差不多。

二、定義基本表

這裡以建立學生選課基本表為例子

建立學生表student

create table student

-> ( sno char(9) primary key,/*列級完整性約束,主鍵約束*/

-> sname char(20) unique,/*列級完整性約束,唯一約束*/

-> sage smallint

-> );

建立課程基本表course

create table course

-> (cno char(4) primary key, /*列級完整性約束,主鍵約束*/

-> cname char(40) not null, /*列級完整性約束,非空約束*/

-> cpno char(4),/*先行課*/

-> foreign key(cpno) references course(cno)/*表級完整性約束,外碼,被參照表示course,參照列是cno*/

-> );

建立學生選課表sc

create table sc

-> (

-> sno char(9),

-> cno char(4),

-> primary key(sno,cno),/*主碼有兩個屬性構成,必須作為標記完整性定義*/

-> foreign key(sno) references student(sno),/*表級完整性約束,sno是外碼,被參照表為student*/

-> foreign key(cno) references course(cno) /*表級完整性約束,cno是外碼,被參照表為course*/

-> );

這裡要重點注意的是primary key和unique都強制實施唯一性,但是primary key不允許null的唯一。還要注意何時要用表級約束,何時用列級約束。

三、修改基本表

alert table 《表名》  

[add [column] 《新列名》 《資料型別》 [完整性約束] ] /*新增列*/

[add 《表級完整性約束》] /*新增表級完整性約束*/

[drop [column] 《列名》 [cascade|restrict] ] /*刪除表中的列*/

[drop constraint《完整性約束名》 [restrict|cascade] ] /*刪除指定的約束*/

[alter column 《列名》 《資料型別》];/*修改原有列的定義,包括修改列名和資料型別*/

注意:[ ]中的都是可選的,cascade代表級聯,若刪除的列選了這個選項,則刪除所有引用該列的其他物件,如檢視,而如果選擇了restrict且刪除列,若該列被其他物件引用,則拒絕刪除。

四、刪除基本表

drop table《表名》 [restrict|cascade]

sql基礎之表關聯

左連線 left join 下面有三張表a,b a表 b表 總結 左連線就是先把left join 左邊的表 a 的所有記錄先顯示出來,然後再根據on後面的條件匹配另一張表 b 但是如果說匹配到多條資料,然後就會把表a的資料複製一遍和後面表的資料一起顯示出來。其次如果a表的資料多,b表沒有就用nul...

(2 7)Mysql之SQL基礎 表的操作與檢視

2.7 mysql之sql基礎 表的操作與檢視 搜尋關鍵字 mysql表操作,comment注釋操作,mysql臨時表 1.1 create table table name column type engine innodb default charset utf8 collate utf8 ge...

SQL基礎 連線表

sql最強大的特性之一是能夠在資料檢索查詢中動態地聯接表。連線是使用sql select可以執行的最重要的操作之一,對連線和連線語法的良好理解是學習sql極為重要的一部分。在您可以有效地使用連線之前,您必須了解關係表和關聯式資料庫設計的基礎知識。下面的內容絕不是對這個主題的完整介紹,但應該足以讓您開...