DDL語言詳解

2021-09-06 08:59:38 字數 3466 閱讀 1395

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

資料庫模式定義語言並非程式語言,ddl資料庫模式定義語言是sql語言(結構化程式設計語言)的組成部分。sql語言包括四種主要程式語言類別的語句:資料定義語言(ddl),資料操作語言(dml),資料控制語言(dcl)和事務控制語言(tcl)。

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

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

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

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

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

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

create database

建立資料庫

create db_name

[create_specification [, create_specification] ...]

create_specification:

[default] character set charset_name

| [default] collate collation_name

create table

建立資料庫**

create [temporary] table tbl_name

[(create_definition,...)]

[table_options] [select_statement]

alter table

修改資料庫**

alter table tbl_name

alter_specification [, alter_specification] ...

alter_specification:

add [column] column_definition [first | after col_name ]

| add [column] (column_definition,...)

| add index (index_col_name,...)

| add [constraint [symbol]]

primary key (index_col_name,...)

| add [constraint [symbol]]

unique (index_col_name,...)

| add (index_col_name,...)

| add [constraint [symbol]]

foreign key (index_col_name,...)

[reference_definition]

| alter [column] col_name

| change [column] old_col_name column_definition

[first|after col_name]

| modify [column] column_definition [first | after col_name]

| drop [column] col_name

| drop primary key

| drop index index_name

| drop foreign key fk_symbol

| disable keys

| enable keys

| rename [to] new_tbl_name

| order by col_name

| convert to character set charset_name [collate collation_name]

| [default] character set charset_name [collate collation_name]

| discard tablespace

| import tablespace

| table_options

drop table

刪除資料庫**

drop [temporary] table

tbl_name [, tbl_name] ...

[restrict | cascade]

create view

建立查詢命令

create [or replace] [algorithm = ]

view view_name [(column_list)]

as select_statement

[with [cascaded | local] check option]

alter view

修改查詢命令

alter [algorithm = ]

view view_name [(column_list)]

as select_statement

[with [cascaded | local] check option]

drop view

刪除查詢命令

drop view

view_name [, view_name] ...

[restrict | cascade]

truncate table

刪除資料表內容

truncate table name [drop/reuse storage] 

drop storage:顯式指明釋放資料表和索引的空間 

reuse storage:顯式指明不釋放資料表和索引的空間

在一些特定情況下,如:金融、安全、稅務等等部門,有一些資料庫為了安全需要,需要禁止執行ddl語句。在oracle資料庫下,禁止ddl語句需要執行下面的sql語句:

執行完這條語句之後,oracle所有的ddl語句,均無法執行,包括sys使用者。

相關:

MySQL總結 三 DDL資料定義語言 詳解

精選30 雲產品,助力企業輕鬆上雲!語句說明 create database 資料庫名稱 建立資料庫 create database if not exists 資料庫名稱 判斷資料庫是否已經存在,不存在則建立資料庫 create database 資料庫名 character set 字符集 建立...

資料定義語言(DDL)

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

資料定義語言 DDL

1.1資料庫 建立資料庫 mysql 檢視資料庫 show databases 建立資料庫 create database siyn 連線資料庫 mysql use siyn oracle 刪除資料庫 mysql drop database siyn 1.2表 建立表 臨時表,複製表 mysql 檢...