Mysql數據庫定義語言DDL(DataDefinition Language)

數據庫定義語句

1.創建數據庫:create database數據庫名 【charset 字符編碼】 【collate 排序規則】;

示例:create database db1 charset utf8;//創建數據庫db1設置編碼方式爲utf8

(1)字符編碼:設定當前數據庫中存儲的字符內容以什麼編碼來存儲,每個字符編碼都有一個默認的排序規則

(2)排序規則:設定其中的字符內容的“大小關係”(先後順序),通常不寫

2.修改數據庫(字符編碼):alterdatabase 數據庫名 charset 新的編碼名 collate 新的排序規則名

3.刪除數據庫:drop database【if exists】 數據庫名;

if exists:安全運行的考慮,如果數據庫不存在,也不會報錯

4.其他:

  進入(使用)某個數據庫:use數據庫名;

顯示所有數據庫:showdatabases;//顯示數據庫

顯示某數據庫的創建語句:showcreate database 數據庫名;

表定義語句

1.創建表

(1)基本語法形式:createtable 【if not exists】表名(字段列表 【,索引或約束列表】)【表選項列表】;

(2)字段設定形式;字段名(自定義) 類型(數據類型) 【字段屬性1 字段屬性2 ……】

     說明:字段屬性可以有多個,相互之間用空格隔開,主要由如下幾個:

       auto_increment:只用於整數類型,自動增長列。通常用於表的第一個字段,當作主鍵。

       primary key:主鍵,可唯一確定一行數據,唯一性,不能爲空

       unique key:設定該字段不能重複

       not null:不能爲空

       default XX:給定默認值,如果insert沒有給定值時使用該默認值

       comment ‘字段說明文字’:

(3)索引:系統內部自動維護的隱藏的“數據表”(其中的數據已自動排好序),可以加快數據的查找速度

有如下幾個:

   普通索引:key(字段名)

   唯一索引:unique key(字段名)唯一性

   主鍵索引:primary key(字段名)唯一性且不爲空

   全文索引:fulltext(字段名)

   外建索引:foreign key(字段名)referencrs其他表(對應其他表中的字段名)

(4)約束:要求數據需滿足什麼條件的一種“規定”

主要有如下幾個:

主鍵約束:primary key(字段名)唯一性且不爲空

唯一約束:unique key(字段名)唯一性

外鍵約束:foreign key(字段名)referencrs其他表(對應其他表中的字段名)

非空約束:not null(即字段屬性設置)

默認約束:default XX(即字段屬性設置)

檢查約束:check(某種判斷語句),比如;

    Create table tab1(
           age tinyint,
           check (age>0 and age<100)
)


(5)表選項:創建表時,對該表的整體設定,有如下幾個:

charset=要使用的字符編碼(與數據庫不一致時使用)

engine=要使用的存儲引擎(表類型)

auto_increment=設定當前表的自增長字段的初始值,默認是1

comment=‘該表的一些說明文字’

說明:engine(存儲引擎)在代碼層面,就是一個名詞:InnoDB、MyIsam、BDB、archive、Memory

   存儲引擎指將數據存儲到硬盤的機制。主要從2個層面來設計存儲機制:儘可能快的速度;儘可能多的功能。

示例:

creat tablexuanxiang(
    id int auto_increment primary key,
    sex enum('男','女'),
    fav set('籃球','足球','排球')
)
charset=gbk,
engine=MyIsam,
auto_increment=10,
comment='說明文字'
;


2.修改表—修改表的結構(不推薦、創建表時確定表結構)

可對字段進行增添、刪除、修改

對索引進行增添、刪除

表選項,一般都是修改

常見幾個:

添加字段:alter table 表名 add 【column】新字段名 字段類型 【字段屬性列表】

修改字段: alter table 表名change 【column】舊字段名 新字段名 字段類型 【字段屬性列表】

刪除字段:alter table 表名drop 【column】字段名

添加普通索引:alter table 表名 add key 【索引名】(字段名1,字段名2,…)

添加唯一索引(約束):alter table 表名 add unique key 【索引名】(字段名1,字段名2,…)

添加主鍵索引(約束):alter table 表名 add primary key 【索引名】(字段名1,字段名2,…)

修改表名:alter table 舊錶名rename 【to】新表名

3.刪除表:drop table【if exists】表名

4.其他表相關語句

顯示數據庫中的所有表:showtables;

顯示錶的結構:desc 表名 或 describe 表名;

顯示錶的創建語句show createtable 表名;

重命名錶:rename table 舊錶名 to 新表名;

從已有表複製表結構:createtable 【if not exists】新表明 like 原表名;

視圖定義語句

1.視圖:就是一個select語句(通常比較複雜),給其一個名字(視圖名),可以使用該視圖名使用(執行)該select語句

2.創建語法:create view 視圖名 as select語句;

示例:

create view v1as
select id,f1,name,age,email,p_id,f3from 表1 where id>7 and id<100 or f1<1000 and age>10;


3.使用視圖:基本上,當做一個表用了

4.刪除視圖:drop view 【ifexists】 視圖名;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章