資料庫定義語言DDL

2021-10-05 03:20:07 字數 3863 閱讀 3697

先來說一下資料庫的sql分類分別有哪些:

①ddl(資料庫定義語言):在資料庫中建立或刪除資料庫物件等操作如create,drop,alter

②dcl(資料庫控制語言):用來控制資料庫元件的訪問許可如grant,revoke

③dml(資料庫操作語言):用來插入,修改和刪除表中的資料,如insert,update,delete

④dql(資料庫查詢語言):用來對資料庫中的資料進行查詢,如select

今天主要描述的是ddl(資料庫定義語言)

1.在mysql中建立資料庫的基本sql語法如下:

create

database 資料庫名;

//建立資料庫

create

table 表名(

)//建立表

如果執行成功,會出現一段提示,這段提示可以分為三部分,含義如下:

1.「query ok」:表示sql語句執行成功

2.「1 row affected」:表示操作影響的行數

3.「0.00sec」:表示操作執行時間

2.檢視資料庫列表

show

databases

;//檢視所有的資料庫名字

3.選擇/刪除資料庫

資料是存放在資料庫表中的,在對資料庫進行操作之前,需要確定該錶所在的資料庫,然後選擇乙個資料庫。

use 資料庫名;

//選擇某個資料庫

drop

database 資料庫名;

//刪除某資料庫

4.建立表

create

table

ifnot

exists 表名(

欄位1 資料型別 字段屬性|約束|索引|注釋,

欄位1 資料型別 字段屬性|約束|索引|注釋,..

....

)create

table

ifnot

exists student(

studentno int(4

)not

null

comment

'學號'

primary

key,

studentname varchar

comment

'學生名字',.

....

)

在create table語句建立表時,多欄位之間使用逗號(,)分隔,最後乙個字段無須逗號。

mysql中常用的兩種注釋:

1.單行注釋:#…

2.多行注釋:/…/

​ 常用的屬性約束:

字段屬性,約束名

關鍵字說明

非空約束

not null

欄位不為空

預設約束

default

賦予預設值

唯一約束

unique key

設定該字段是唯一的

主鍵約束

primary key

設定該欄位為主鍵

外來鍵約束

froeign key

用於在兩表之間建立關係

自動增長

auto_increment

設為自動增長

語法如下:

create

table

ifnot

exists 表名(

字段 資料型別 primary

key,

//字段主鍵..

..)//多欄位聯合主鍵

create

table

ifnot

exists 表名(

id int(4

),name varchar(20

),..

..primary

key(id,name..)

)//編碼格式設定

create

table

ifnot

exists 表名(

#省略**

)charset

=字符集名;

5.檢視表

建立完表之後,如果需要檢視一下表是否存在,可以使用檢視表的sql命令:

show

tables

;//在使用這之前,必須先選擇資料庫

describe 表名;

//檢視表的結構

儲存引擎是mysql資料庫管理系統的乙個主要特徵,在開發專案時,為了提高mysql的使用率和靈活性,可以根據實際需要選擇儲存引擎。因為儲存引擎指定了如何儲存和索引資料,是否支援事務等,同時儲存引擎也決定了表在資料庫中的儲存方式。

1.常用的儲存引擎

​ innodb和myisam儲存引擎比較:

功能innodb

myisam

支援事務

支援不支援

支援全文索引

不支援支援

外來鍵約束

支援不支援

表空間大小

較大較小

資料行鎖定

支援不支援

1.innodb和myisam各自的使用場合:

myisam儲存引擎:該儲存引擎不支援事務,也不支援外來鍵,訪問速度比較慢,因此對不需要事務處理,以訪問為主的應用適合使用該引擎

innodb儲存引擎:該儲存引擎在事務處理上有優勢,支援具有提交,回滾和崩潰恢復能力的事務安裝

2.而mysql的預設儲存引擎時innodb,可以通過以下語句來檢視當前儲存引擎:

show variables like

'storage_engine%'

;

3.設定表的儲存型別:

create

table 表名(

#省略**

)engine

=儲存引擎;

在建立資料表之後,有時會因為某些原因需要修改表結構,如新增列等,mysql使用alter關鍵字來實現。

1.修改表名

alter

table

《舊表名》

rename

《新錶名》

;

2.新增字段

alter

table 表名 add 欄位名 資料型別 [屬性]

;//向demo2中新增密碼字段

alter

table demo2 add

'password'

varchar(20

)not

null

;

3.修改字段

alter

table 表名 change 原欄位名 新欄位名 資料型別 [屬性]

;

4.刪除字段

刪除欄位是將資料表中的某個欄位從表中移除,語法如下:

alter

table 表名 drop 欄位名;

5.新增主外來鍵

//新增主鍵約束

alter

table 表名 add

constraint 主鍵名 primary

key 表名(主鍵字段)

;//新增外來鍵約束

alter

table 表名 add

constraint 外鍵名 foreign

key(外來鍵字段) refereces 關聯表名(關聯字段)

;

在mysql中,innodb儲存型別的表支援外來鍵,myisam儲存型別的表不支援外來鍵,因此對於myisam儲存型別的表,也可以通過通過建立邏輯關聯的方式保證資料的完整性。

DDL 資料庫定義語言

建表 id name age drop talbe if esists student create table student id int primary keyauto increment,name varchar 20 not null,age int not null default 18...

資料庫定義語言DDL

sql是結構化查詢語句,sql是專門為資料庫而建立的操作命令集。是一種功能齊全的資料庫語言。在使用它時,只需要發出 做什麼 的命令,怎麼做 是不用使用者考慮的。ddl 資料定義語言 用來定義資料庫物件,建立庫 表 列等。dml 資料操作語言 用來運算元據庫表中的記錄 dql 資料查詢語言 用來查詢資...

DDL(資料庫定義語言)

ddl 資料庫定義語言 1.基本操作 檢視所有資料庫名稱 語法 show databases 切換資料庫 語法 use test 切換到test資料庫 顯示表 語法 show tables 查詢表 語法 select form goods 2.運算元據庫 2.1建立資料庫 create databs...