關係資料庫—SQL(學習筆記)

關係資料庫—SQL(學習筆記)

SQL的特點:

  • 綜合統一
  • 高度非過程化(存取路徑的選擇以及SQL的操作過程由系統自動完成)
  • 面向集合的操作方式,以同一種語法結構提供多種使用方法(可以在終端鍵盤上直接鍵入SQL命令對資料庫進行操作,也能夠嵌入到高級語言(C,C++,JAVA)程序中)

模式,外模式,和內模式:

關係模型支持三級模式結構:模式,外模式,和內模式;

模式:是指資料庫中全體數據的邏輯結構和特徵的描述,是所有用戶的公共數據視圖。它涉及的僅僅是對於某一類數據的結構和屬性的描述。模式的一個具體值稱為模式的一個實例,同一模式下可以有很多個實例。模式是相對穩定的,而實例是相對變動的。

外模式:也稱子模式,或用戶模式,是資料庫用戶能夠看見和使用的局部數據的邏輯結構和特徵的表述,是資料庫用戶的數據視圖。是與某一應用有關的數據的邏輯表示。

內模式:也稱存儲模式,一個資料庫只有一個內模式。他是數據物理結構和存儲方式的描述,是資料庫內部的組織方式。

模式與外模式的關係:一對多。

外模式與應用的關係:一對多。

其中外模式包括若干視圖和部分基本表,資料庫模式包括若干基本表,內模式包括若干存儲文件。

資料庫,模式,表的關係:

一個資料庫可以建立多個模式,一個模式下通常包括多個表,視圖和索引等資料庫對象;

SQL資料庫定義語句:

  1. 模式 :創建:create schema 刪除:drop schema
  2. 表: 創建:create table 刪除:drop table
  3. 視圖:創建:create view 刪除:drop view
  4. 索引:創建:create index 刪除:drop index

模式的定義與刪除:

1.定義模式:

Create schema 模式名 authorization 用戶名

定義模式實際上定義了一個命名空間,建立了一個資料庫的命名空間,一個框架。在創建模式時,同時也可以創建基本表,以及視圖,並且可以定義授權。

2.刪除模式:

drop schema 模式名 cascade或者drop schema 模式名 restrict

cascade:為級聯,表示刪除該模式時,刪除該模式中所有的資料庫對象。

Restrict:為限制,表示如果該模式中已經定義了下屬的資料庫對象,則拒絕執行該語句。

基本表:

1.定義基本表:

Create table 表名 (列名 數據類型 列級完整性約束條件,

列名 數據類型 列級完整性約束條件,

表級完整性約束條件);

如果完整性約束涉及該表的多個屬性列,則必須定義在表級上,否則既可以定義在表級也可以定義在列級。

例如:

Create table course(Cno char(4) primary key,/* primary key標示主碼*/Cname char(40) not NULL,/* 列級完整性約束條件,Cname 不能為空*/Cpno char(4)Ccredit smallint,foreign key(Cpno)refernces course(Cno) /* 表級完整性約束條件,Cpno是外碼,被參照表是:Cno;*/);

定義表的模式:

方法一:在表中明顯的定義模式名:

Create table 「S-T」.course(…);/*course所屬的模式是S-T*/

方法二:在創建模式的同時創建表;

方法三:設置所屬的模式。

當創建基本表時,若沒有指定模式,系統會根據搜索路徑來確定該對象所屬的模式(搜索結果中第一個存在的模式)。

顯示當前的搜索路徑:

Show search_path; /*默認值是$user,public ,首先搜索與用戶名相同的模式名,不過不存在這使用public*/

設置搜索路徑,如:

Set search_path to 「S-T」,public;

然後創建基本表:

Create table course(…);

2.修改基本表:

Alter table 表名

Add [column] 新列名 數據類型 完整性約束 /*增加新列*/

Add 表級完整性約束 /*增加表級完整性約束*/

Drop [column] 列名 cascade /**強制刪除*/

Drop [column] 列名 restrict

Alter column 列名 數據類型 /*修改原有列定義**/

3.刪除基本表:

Drop table 表名 restrict //有限制條件的刪除,不能被其他的對象引用。

或者Drop table 表名cascade //強制刪除


推薦閱讀:

讀後感:Volcano-An Extensible and Parallel Query Evaluation System
新手福音:巨杉資料庫教程專區上線啦!
事務的ACID特性
關於幼教行業,或許你有了新的認知 | 企名片&VC SaaS報告
MySQL資料庫誤刪恢復

TAG:SQL | 資料庫 | MicrosoftSQLServer |