日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

(数据库系统概论|王珊)第三章关系数据库标准语言SQL-第二、三节:数据定义

發布時間:2025/3/15 windows 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (数据库系统概论|王珊)第三章关系数据库标准语言SQL-第二、三节:数据定义 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 零:有關說明
    • (1)安裝數據庫與建表
    • (2)一些語法說明
  • 一:模式的定義和刪除(SCHEMA)
    • (1)定義模式
    • (2)刪除模式
  • 二:基本表的定義、刪除和修改(TABLE)
    • (1)定義基本表
    • (2)修改基本表
    • (3)刪除基本表
  • 三:索引的建立與刪除(INDEX)
    • (1)建立索引
    • (2)修改索引
    • (3)刪除索引

零:有關說明

(1)安裝數據庫與建表

  • 關于數據庫如何安裝,表如何建立這里不再介紹,請移步:(數據庫系統概論|王珊)第三章關系數據庫標準語言SQL-第零節:MYSQL環境安裝和表的建立以及一些注意事項
  • 所用表為(上面文章中也有完整代碼):

(2)一些語法說明

由于我們使用的MYSQL所以有些語法和可能和SQL標準有所差異,甚至無法實現,總結如下

①:關于語法中的括號

  • <>:尖括號用于分隔字符串
  • []:方括號表示規則中的可選元素,可以選擇也可以省略
  • {}:花括號表示聚集規則中的元素,必須明確指定

②:其它

  • 在SQLserver中我們可以用 CREATE DATABASE來創建數據庫,而用CREATE SCHEMA來創建架構。但是在MYSQL中兩者是同等作用的,可以認為沒有區別。所以下面介紹時沒有實際的演示例子
  • 在MYSQL中字符串用的不是單引號,而是``(鍵盤上數字1左邊的那個)
  • 在MYSQL中創建模式時是沒有后面的AUTHROIZATION <用戶名>的
  • MYSQL中大小寫均可行

回歸正題,SQL的數據定義主要包括以下內容

  • 模式定義
  • 表定義
  • 視圖定義
  • 索引定義

  • 注意修改視圖和修改模式時只能刪除重建

一:模式的定義和刪除(SCHEMA)

注意:在SQLserver中我們可以用 CREATE DATABASE來創建數據庫,而用CREATE SCHEMA來創建架構。但是在MYSQL中兩者是同等作用的,可以認為沒有區別。所以下面介紹時沒有實際的演示例子

(1)定義模式

語法:CREATE SCHEMA <模式名> AUTHORIZATION <用戶名>(注意上面語法說明)

  • 如果沒有指定 <模式名>, 那么<模式名>隱含為<用戶名>
  • 定義模式本質是定義了一個命名空間
  • 創建模式的同時也可以創建其它東西:CREATE SCHEMA <模式名> AUTHORIZATION <用戶名> [<表定義子句> | <視圖定義子句> | <授權定義子句>]

(2)刪除模式

語法:DROP SCHEMA <模式名><CASCADE|RESTRICT>(注意上面語法說明)

  • CASCADE:表示級聯,也即刪除模式時會刪除該模式中所有數據庫對象
  • RESTRICT:表示限制,也即在刪除時如果該模式下定義了其它對象,則拒絕

二:基本表的定義、刪除和修改(TABLE)

(1)定義基本表

語法

  • 建表的同時通常還可以定義與該表有關的完整性約束條件(參照前幾節內容)
  • 如果完整性約束條件涉及該表的多個屬性列,則必須定義在表級上,否則既可以在列級上也可以在表級上

演示
【例1】:建立學生表Student,其中Sno是主碼,且Sname不能重復

CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, //主碼Sname CHAR(20) UNIQUE, //唯一值Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20) );


【例2】:建立課程表Course,其中Cno是主碼,Cname不能取空值,Cpno代表先修課(意思是學習該課前必須先學習某個課程),它是外碼,需要參照本表,參照列為Cno

CREATE TABLE Course (Cno CHAR(4) PRIMARY KEY,//主碼Cname CHAR(20) NOT NULL,//非空Cpno CHAR(4),Credit SMALLINT,FOREIGN KEY (Cpno) REFERENCES Course(Cno)//表級完整性,Cpno是外碼,被參照表示Course,被參照列是Cno );


【例3】:建立學生選課表SC,其中Sno和Cno是外碼,分別參照Student表的Sno列和Course表的Cno列

  • Sno和Cno是SC的主碼,必須使用表級完整性定義
CREATE TABLE SC (Sno CHAR(9),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY(Sno,Cno),//必須使用表級完整性定義FOREIGN KEY(Sno) REFERENCES Student(Sno),FOREIGN KEY(Cno) REFERENCES Course(Cno) )

(2)修改基本表

語法

  • ADD:用于增加新列,新的列級完整性約束條件和新的表級完整性約束條件
  • DROP COLUMN:用于刪除表中的列
  • DROP CONSTRAINT:用于刪除指定的完整性約束條件
  • ALTER COLUMN:用于修改原有的列定義

演示

【例4】:向Student表中增加“入學時間”列,數據類型為“日期型”

ALTER TABLE Student ADD Sentrance DATE;


【例5】:將Student表“年齡”這一列的數據類型由改為 INT

ALTER TABLE Student ALTER COLUMN Sage CHAR;

【例6】:Course表中的Cname必須取唯一值

ALTER TABLE Course ADD UNIQUE(Cname);

【例7】:刪除Student表中的“入學時間”列

ALTER TABLE Student DROP COLUMN Sentrance CASCADE;


【例8】:刪除Course表中Cname的唯一約束

  • 此部分看完這個就明白了:(數據庫系統概論|王珊)第五章數據庫完整性-第四、六、七節:約束命名子句、斷言和觸發器
ALTER TABLE Course DROP INDEX Cname;

MYSQL在刪除約束時有一些不一樣,請點擊查看:鏈接

(3)刪除基本表

語法

  • 選擇RESTRICT:欲刪除的基本表不能被其他表的約束所引用(比如CHECK、FOREIGN KEY等)、不能有視圖、不能有觸發器(trigger),不能有存儲過程或函數等
  • 選擇CASCADE:沒有限制條件,所有相關依賴對象連同基本表一起刪除

演示

【例9】:刪除Student表,使用RESTRICT

  • 由于SC表參照的是Student,所以刪除不成功
DROP TABLE student RESTRICT;

三:索引的建立與刪除(INDEX)

當表的數據量較大時,查詢操作就會十分耗時。建立索引是加快查詢速度的有效手段

  • 數據庫索引類似于圖書后面的索引,能快速定位需要查詢的內容

用戶可以根據應用環境的需要在基本表上建立一個或多個索引,類型有

  • 順序文件上的索引
  • B+樹索引
  • 散列索引
  • 位圖索引

索引雖然能加快查詢速度,但也有缺點

  • 需要占用一定的存儲空間
  • 會提高查詢速度但是會降低更新速度

(1)建立索引

語法

  • <表名>:要建立索引的基本表的名字
  • 索引可以建立在該表的一列或多列上,各列之間使用逗號分隔
  • 每個<列名>后面還可以用<次序>指定索引值的排列次序,可選ASC-升序(默認)或DESC-降序
  • UNIQUE:表明此索引的每一個索引值只對應唯一的數據記錄
  • CLUSTER:表示需要建立聚簇索引(第七章會講到)

演示

【例10】:請按以下要求建立索引

  • Student表按學號升序建立唯一索引
  • Course表按課程號升序建立唯一索引
  • SC表按學號升序和課程號降序建立唯一索引
CREATE UNIQUE INDEX Stusno ON Student(Sno); CREATE UNIQUE INDEX Coucno ON Course(Cno); CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);

(2)修改索引

語法

演示

【例11】:將SC表的SCno索引改名為SCSno

ALTER INDEX SCno RENAME TO SCSno

(3)刪除索引

語法

演示
【例12】:刪除SC表的SCSno索引

DROP INDEX SCSno//如果失敗,也可這樣寫 DROP INDEX SCSno on SC; DROP INDEX SC.SCSno;

總結

以上是生活随笔為你收集整理的(数据库系统概论|王珊)第三章关系数据库标准语言SQL-第二、三节:数据定义的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 精品动漫一区二区三区的观看方式 | 一级免费毛片 | 日本不卡一区二区 | 黄色一级片免费 | 男女裸体影院高潮 | 国产精品久久一区 | 欧美日韩成人在线视频 | 久草综合在线视频 | 国产97自拍 | 九热这里只有精品 | 在线看片中文字幕 | 中文字幕精品一区二区精 | 67194少妇| 免费在线观看日韩 | 农村妇女愉情三级 | www.欧美.com | 日本乳汁视频 | 亚洲一区二区三区视频 | exo妈妈mv在线播放免费 | 色狠狠一区二区三区香蕉 | 丰满少妇一级 | 婷婷丁香久久 | 亚洲h片 | 蜜桃在线一区二区 | 美女扒开腿让男生桶 | 奇米777第四色 | 亚洲黄色网络 | 亚洲av中文无码乱人伦在线观看 | 最新av片 | 日本不卡一区二区三区视频 | 国产欧美一区二区三区视频在线观看 | 日韩av在线一区 | 亚洲最大在线观看 | av中字| 日韩一区二区免费播放 | 国产精品一品 | 亚洲宅男天堂 | 性久久久久久久 | 天天射日日 | 色一情一乱一乱一区91av | 国产精品2019 | 91一区在线 | 成色视频| 冲田杏梨在线 | 久久久999国产精品 天堂av中文在线 | 鲁丝片一区二区三区 | 在线国产视频一区 | 午夜av免费看| 自拍啪啪 | 放几个免费的毛片出来看 | 欧美精品色| 国产亲伦免费视频播放 | 成年人91视频| 欧美日韩中文字幕在线观看 | 亚洲精品女人久久久 | 国产精品久久久久久久免费看 | 美女视频黄频视频大全 | 日本 奴役 捆绑 受虐狂xxxx | 欧美天天射 | 亚洲aaaaa特级 | 流白浆视频 | 特黄aaaaaaaaa毛片免费视频 | av尤物在线 | 日韩有码中文字幕在线观看 | 97在线播放免费观看 | 自拍偷拍一区 | av中出在线| 国产黄色av | 91在线免费视频 | 欧美午夜一区二区三区 | 伊人青青草 | 在线免费观看av网址 | 亚洲中文一区二区三区 | 在线射 | 久久99婷婷 | h片在线看 | 国内精品人妻无码久久久影院蜜桃 | 黄色网址网站 | 精品久久亚洲 | 亚欧洲精品在线视频 | 一区二区成人精品 | 特级西西人体wwwww | 亚洲av成人无码久久精品老人 | 日本高潮网站 | 波多野结衣中文字幕一区二区 | 蜜臀999 | 亚洲色图 一区二区 | 超碰在线免费看 | 国产欧美一区二区三区沐欲 | 老牛av一区二区 | 可以直接看的毛片 | 天天躁日日躁狠狠躁喷水 | 精品一区二区三区四区五区六区 | 免费无码av片在线观看 | 日韩免费影院 | 欧美日韩视频无码一区二区三 | 欧美特级毛片 | 深夜福利国产精品 | 久草视频免费在线 |