數據庫學習筆記 4 強大的SQL
其實這篇文章應該至少一個星期前就應該更新了,但是最近小猿我和喜歡了好多年的女神牽手成功,所以這些天有點飄。
---創建表結構 create table tablename ( id int, name varchat(20) not NULL, address varchat(100) , primary key (id), FOREIGN KEY (id) REFERENCES retable ); ---刪除數據 delete from tablename; ---刪除關系(刪除表) drop table tablename; ---添加列 alter table tablename add name varchat(20); ---刪除列 alter table tablename drop name; ---插入數據 insert into tablename values(...); ---查詢語句(多關系查詢) select * from tablename where ...; ---對查詢查詢內容進行去重 select distinct name from tablename;
聚集函數
最經常用過的聚集函數也就
- avg 平均值
- sum 求和
- min 最小值
- max 最大值
- count 記錄數
分組聚集 Group by
對於Group by只要記住如果Group by子句中沒有出現的屬性,在select子句中只能以聚集函數的形式體現。
join using
這次學習還遇到一個坑,不理解什麽是join using。查了一遍才知道,當兩個表關聯字段采用相同明明規範時可以用join using 簡化join on
select * from A join B on a.name=b.name
可以替換成 select * from A join B using(name)
top
由於我是一本《sqlserver寶典2012》和《數據庫系統概念》一起看的,所以有時候能遇到一些小差異
《數據庫系統概念》裏的練題裏有一個是找出工資最高的所有人(工資最高有很多人)
我的第一個想法就是用前幾天看的top配合with ties就可以簡單的解決這個問題了,執行了一下發現mysql並不支持這樣的語法與之對應的是limit,Oracle中與之對應的應該是利用rownum。
外連接
外連接分為左、右、全三種連接方式。
左外連接以左表為主表,右表中沒有的指補null,右外連接相反。
全外連接左右都會判斷。
SQL VIEW
總是聽周圍的大神們講這個功能或者那個功能應該用SQL視圖或許能簡單一點,這回終於一睹SQL view的芳容。
視圖包含行和列,就像一個真實的表。視圖中的字段就是來自一個或多個數據庫中的真實的表中的字段。我們可以向視圖添加 SQL 函數、WHERE 以及 JOIN 語句,我們也可以提交數據,就像這些來自於某個單一的表。
知道了SQL view是怎麽回事,我開始糾結於應用程序怎麽調用的問題。其實很簡單視圖就是存放在數據庫上的虛擬表,只不過只有在使用的時候數據才會被查詢出來。
SQL中的時間
SQL中表示時間的類型基本有三種
- date 表示年月日
- time 表示時分秒
- timestamp 是date和time的結合
數據庫學習筆記 4 強大的SQL