記錄自己總忘記的SQL語法

2021-06-20 21:50:41 字數 4043 閱讀 5933

insert into 語句用於向**中插入新的行。

insert into 表名稱 values (值1, 值2,....)
我們也可以指定所要插入資料的列:

insert into table_name (列1, 列2,...) values (值1, 值2,....)

lastname

firstname

address

city

carter

thomas

changan street

beijing

insert into persons values ('gates', 'bill', 'xuanwumen 10', 'beijing')
lastname

firstname

address

city

carter

thomas

changan street

beijing

gates

bill

xuanwumen 10

beijing

lastname

firstname

address

city

carter

thomas

changan street

beijing

gates

bill

xuanwumen 10

beijing

insert into persons (lastname, address) values ('wilson', 'champs-elysees')
lastname

firstname

address

city

carter

thomas

changan street

beijing

gates

bill

xuanwumen 10

beijing

wilson

champs-elysees

update 語句用於修改表中的資料。

update 表名稱 set 列名稱 = 新值 where 列名稱 = 某值

lastname

firstname

address

city

gates

bill

xuanwumen 10

beijing

wilson

champs-elysees

我們為 lastname 是 "wilson" 的人新增 firstname:

update person set firstname = 'fred' where lastname = 'wilson'
lastname

firstname

address

city

gates

bill

xuanwumen 10

beijing

wilson

fred

champs-elysees

我們會修改位址(address),並新增城市名稱(city):

update person set address = 'zhongshan 23', city = 'nanjing'

where lastname = 'wilson'

lastname

firstname

address

city

gates

bill

xuanwumen 10

beijing

wilson

fred

zhongshan 23

nanjing

delete 語句用於刪除表中的行。

delete from 表名稱 where 列名稱 = 值

lastname

firstname

address

city

gates

bill

xuanwumen 10

beijing

wilson

fred

zhongshan 23

nanjing

"fred wilson" 會被刪除:

delete from person where lastname = 'wilson'
lastname

firstname

address

city

gates

bill

xuanwumen 10

beijing

可以在不刪除表的情況下刪除所有的行。這意味著表的結構、屬性和索引都是完整的:

delete from table_name
或者:

delete * from table_name

group by 語句用於結合合計函式,根據乙個或多個列對結果集進行分組。

select column_name, aggregate_function(column_name)

from table_name

where column_name operator value

group by column_name

我們擁有下面這個 "orders" 表:

o_id

orderdate

orderprice

customer

12008/12/29

1000

bush

22008/11/23

1600

carter

32008/10/05

700bush

42008/09/28

300bush

52008/08/06

2000

adams

62008/07/21

100carter

現在,我們希望查詢每個客戶的總金額(總訂單)。

我們想要使用 group by 語句對客戶進行組合。

我們使用下列 sql 語句:

select customer,sum(orderprice) from orders

group by customer

結果集類似這樣:

customer

sum(orderprice)

bush

2000

carter

1700

adams

2000

很棒吧,對不對?

讓我們看一下如果省略 group by 會出現什麼情況:

select customer,sum(orderprice) from orders
結果集類似這樣:

customer

sum(orderprice)

bush

5700

carter

5700

bush

5700

bush

5700

adams

5700

carter

5700

上面的結果集不是我們需要的。

那麼為什麼不能使用上面這條 select 語句呢?解釋如下:上面的 select 語句指定了兩列(customer 和 sum(orderprice))。"sum(orderprice)" 返回乙個單獨的值("orderprice" 列的總計),而 "customer" 返回 6 個值(每個值對應 "orders" 表中的每一行)。因此,我們得不到正確的結果。不過,您已經看到了,group by 語句解決了這個問題。

我們也可以對乙個以上的列應用 group by 語句,就像這樣:

select customer,orderdate,sum(orderprice) from orders

group by customer,orderdate

SQL備忘記錄

一 with as的含義 with as短語,也叫做子查詢部分 subquery factoring 可以讓你做很多事情,定義乙個sql片斷,該sql片斷會被整個sql語句所用到。有的時候,是為了讓sql語句的可讀性更高些,也有可能是在union all的不同部分,作為提供資料的部分。特別對於uni...

sql備忘記錄

spark sql 當前日期 current date 顯示當前日期 年月日時分秒 year,month,day,hour,minute,second 例 year 2018 09 20 2018 第幾周,第幾天 weekofyear,dayofyear weekofyear x xx xx mys...

C 雜記 陣列的語法我總忘記 記之

宣告乙個陣列 double mylist 10 宣告多個陣列 double mylist 10 mylist2 10 宣告陣列時,中括號內的陣列必須為常量。mylist 0 6 當乙個陣列宣告後還沒有賦值,元素內容是任意的。double mylist 4 double mylist 中括號中的數字是...