其實這篇文章應該至少一個星期前就應該更新了,但是最近小猿我和喜歡了好多年的女神牽手成功,所以這些天有點飄。 聚集函數 最經常用過的聚集函數也就 avg 平均值 sum 求和 min 最小值 max 最大值 count 記錄數 分組聚集 Group by 對於Group by只要記住如果Group b ...
其實這篇文章應該至少一個星期前就應該更新了,但是最近小猿我和喜歡了好多年的女神牽手成功,所以這些天有點飄。
---創建表結構
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的結合