SQL資料定義語言(DDL)

2021-06-06 16:36:06 字數 4051 閱讀 4155

資料庫模式定義語言ddl(datadefinition language),是用於描述資料庫中要儲存的現實世界實體的語言。乙個資料庫模式包含該資料庫中所有實體的描述定義。這些定義包括結構定義、操作方法定義等。

ddl描述的模式,必須由計算機軟體進行編譯,轉換為便於計算機儲存、查詢和操縱的格式,完成這個轉換工作的程式稱為模式編譯器。

模式編譯器處理模式定義主要產生兩種型別的資料:資料字典以及資料型別和結構定義。

資料字典和資料庫內部結構資訊是建立該模式所對應的資料庫的依據,根據這些資訊建立每個資料庫對應的邏輯結構;對資料庫資料的訪問、查詢也根據模式資訊決定資料訪問的方式和型別,以及資料之間的關係和對資料的完整性約束。

資料字典是模式的內部資訊表示,資料字典的儲存方式對不同的dbms各不相同。

資料型別和結構的定義,是指當應用程式與資料庫連線操作時,應用程式需要了解產生和提取的資料型別和結構。是為各種宿主語言提供的使用者工作區的資料型別和結構定義,使使用者工作區和資料庫的邏輯結構相一致,減少資料的轉換過程,這種資料型別和結構的定義通常用乙個標頭檔案來實現。

資料庫模式的定義通常有兩種方式: 互動方式定義模式和通過資料描述語言 ddl 描述文字定義模式。

資料庫模式定義語言ddl(datadefinition language),是用於描述資料庫中要儲存的現實世界實體的語言。

ddl主要用於建立和刪除資料庫,表和索引。

一,基本的資料庫操作:

1,建立(create)、修改(alter)、刪除(drop)

2,資料庫包括:

系統資料庫

master:記錄系統級的資訊。

model:為使用者建立資料庫提供模板。

msdb:**排程警報作業、記錄操作。

tempdb:臨時表、臨時資料庫。

使用者資料庫

二,詳解:

1,表的建立:

建立乙個「學生選課」表sc,它由學號sno、課程號cno,修課成績grade課程名cname組成,其中(sno, cno)為主碼。

create table

sc( snochar(7),

cnochar(4),

gradeint,

cnamechar(10), not null unique

primarykey (sno,cno)

foreignkey (sno) references student(sno).

foreignkey (cno) references course (cno)

);

基本表的建立-說明

1、建表的同時可以定義與該錶有關的完整性約束,這些約束條件被存入系統的資料字典中,當使用者操作表時,dbms會自動檢查該操作是否有違背完整約束條件.

2、建立約束的考慮:如果完整性約束條件涉及到該錶的多個屬性列,則必須定義在表級上;否則既可以定義在列級上也可以定義在表級上。

3、表名、列名是不區分大小寫的。

4、對乙個使用者而言,表名必須唯一;乙個表中,列名必須唯一。

5、表名、列名必須以字母開頭,長度不超過30個字元。

常用完整性約束

1、主碼約束:    primary key

2、唯一性約束:unique

3、非空值約束:notnull

4、參照完整性約束:foreignkey

常用資料型別:(不同dbms資料型別不完全相同)

t-sql資料型別:(sql 程式語言的增強版,它是用來讓應用程式與sql server 溝通的主要語言。t-sql提供標準 sql的ddl 和 dml 功能,加上延伸的函式、系統預存程式以及程式設計結構(例如 if 和 while)讓程式設計更有彈性。)

2,刪除基本表:

drop table table_name
3,修改基本表——新增列:

alter table table_name

add new_column_name datatype

[constraints]

例:向student表增加「入學時間」(scome),資料型別為日期型。

alter table student

add scome date

4,修改基本表——改變列的資料型別:

alter table table_name

alter column column_name new_datatype

例:將年齡的資料型別改為半字長整數。

alter table student

alter column sage smallint

5,修改基本表——刪除完整性約束

alter table table_name

drop constraint

例:刪除學生姓名必須取唯一值的約束。

alter table student

drop unique(sname)

6,建立索引:

create index index_name on table_name(column_name)
7,將某個欄位設為主鍵:

alter table table_name add primary key(column_name)
8,將某個欄位的主鍵定義取消:

alter table table_name drop primary key(column_name)
約束是為了資料的完整性而存在的,而資料的完整性是指資料的可靠性和準確性。根據資料完整性大致可以分為四種:1.實體完整性

就是說每個表代表乙個實體,每個表與他所代表的實體一致,特定表的唯一實體。

實現實體完整性的的方法:索引(index),唯一約束(unique),主鍵約束(primarykey),標識列屬性

2.域完整性

給每個列定義輸入的有效性

實現域完整性的的方法: 限制資料型別,格式,外來鍵約束(foreign key references),檢查約束(check(  between  and )),預設值定義(default ' '),非空(not null)約束。

3.引用完整性 

在輸入或刪除記錄時,表與表之間已定義的關係

實現域完整性的的方法: 通過外來鍵與主鍵的關係,外來鍵與唯一鍵之間的關係,外來鍵與檢查約束

4.使用者自定義完整性

所有的完整性都支援使用者自定義完整性

注意:1.在sql中有個自動增長的自動編號列identity

2. mysql不支援檢查約束

3.索引就像字典的目錄,把索引加在頻繁的以某個字元段查詢的的上面,在表上建立索引雖然會提高select語句的速度,但也會降低delete,update,insert語句執行的速度,如果乙個表中太多的索引會降低資料庫的整體效能

4.primary key = unique+not null(加primary key 要比加unique和not null效率膏,因為加primarykey時會自動加索引,加快了效率)

5.在sql server中正在實用的資料庫不能被刪除(除非切換資料庫才能被刪除),mysql中可以刪除正在實用的資料庫

SQL 資料定義語言 DDL

所有語句都是基於oracle的hr使用者 create 建立物件,drop 刪除物件,alter 修改物件,rename 修改資料庫物件名稱 語法格式 create table 表名 列名 列資料型別 建立示例 列與列中間用,隔開 create table dept deptno number 2 ...

sql 之 資料定義語言 DDL

sql語言,是結構化查詢語言 structured query language 的簡稱。sql語言是一種資料庫查詢和 程式語言,用於訪問資料以及查詢 更新和管理關係資料庫系統 同時也是資料庫指令碼檔案的副檔名。sql語言集 value 資料查詢 select 資料定義 create,drop,al...

資料定義語言(DDL)

建立資料庫表 create table uc userid varchar2 53 not null,userloginname varchar2 35 not null,userpassword varchar2 25 not null,userextend varchar2 1000 在orac...