1. 程式人生 > >數據庫學習筆記 4 強大的SQL

數據庫學習筆記 4 強大的SQL

執行 解決 女神 arch 一起 group by tinc arc div

其實這篇文章應該至少一個星期前就應該更新了,但是最近小猿我和喜歡了好多年的女神牽手成功,所以這些天有點飄。

---創建表結構
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