數據庫定義語句
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】 視圖名;