日期類型
Datetime:時間日期 格式:YYYY-mm-dd HH:ii:ss 範圍1000到9999
Date:日期 datetime的date部分
Time:時間段 某個區間之間
Timestamp:時間戳 但格式與datetime完全一樣。從1970年開始的
Year:年份
varchar 和 nvarchar 和char
nvarchar(n): 包含n個字符的可變長度Unicode字符數據。n的值必須介於1與4,000之間。字節的存儲大小是所輸入字符個數的兩倍。所輸入的數據字符長度可以爲零。
varchar(n):長度爲n個字節的可變長度且非Unicode的字符數據。n必須是一個介於1和8,000之間的數值。存儲大小爲輸入數據的字節的實際長度,而不是n個字節。所輸入的數據字符長度可以爲零。
Varchar 的類型不以空格填滿,比如varchar(100),但它的值只是"qian",則它的值就是"qian" 而char 不一樣,比如char(100),它的值是"qian",而實際上它在數據庫中是"qian "(qian後共有96個空格,就是把它填滿爲100個字節)。
由於char是以固定長度的,所以它的速度會比varchar快得多!但程序處理起來要麻煩一點,要用trim之類的函數把兩邊的空格去掉!
varchar一般適用於英文和數字,Nvarchar適用中文和其他字符,其中N表示Unicode常量
行子查詢
返回結果可以是多行多列
需求:要求查詢整個學生中年齡最大**且**最高的學生
1.確定數據源 select * from student where age=? and height=?
2.確定最大的年齡和最高身高 select max(age) ,max(height) from student;
行子查詢:要構造行元素 行元素由多個字段組成 (如下的 (age,height))
select * from student where (age,height)=(select max(age) ,max(height) from student)
表子查詢
返回結果可以是多行多列
需求:要求查詢每個班 最高的一個學生
1.確定數據源 select * from student order by height desc
2.從每個班選出第一個學生 select * from student group by id
表子查詢:from 子查詢 :得到的結果作爲from數據源
select * from (select * from student order by height desc) as students group by id
事務
Start transaction;
觸發器 trigger
Delimiter 自定義符號:後續代碼中只有碰到這個自定義符號語句才結束
Create trigger 觸發器名稱 觸發時間 觸發類型 for each row
Begin
--觸發器內容 每一行內容都必須使用語句結束符;
End
--語句結束符
自定義符號
--將臨時修改修正過來
Delimiter ;