先來說一下資料庫的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...