日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sql的加减乘除运算_小白学sql(一)

發布時間:2024/4/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql的加减乘除运算_小白学sql(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在b站學習sql,在這里做筆記。感興趣的同學可以一起學習呀~

1. 基本介紹

sql_store是一個數據庫,而customers是數據庫中的一個表格。

1.1 如何選擇一個數據庫

最簡單的操作就是雙擊圖中的數據庫,另一種方式是輸入命令:

use sql_store;

注:顯示為粗體的數據庫為當前選定的數據庫;輸入命令調用數據庫需要用“;”結束命令。

1.2 如何選擇一個表格

在選定數據庫后,需要選擇特定的表格:

(1)選擇表格所有的列

selcet * from customers

(2)選擇表格特定的列

例如,選擇客戶的id以及姓氏的兩列:

select customer_id, first_name from customers

1.3 如何選定特定條件的行

在選定表格之后,選擇客戶id為1的行:

where customer_id = 1

1.4 如何排序

例如,選定表格后,按照姓氏排序

order by first_name

1.5 如何寫注釋

只需要"-- "

-- where customer_id = 1

1.6 語法順序

select * from customers where customer_id = 1 order by first_name

最好的邏輯順序是select-from-where-order by

注:上述四行命令可以寫成一行,只需要用空格隔開,但分成四行更清晰直觀


2. select語句

select語句是用于調用所選表格的特定的列,因為數據庫的數據可能成千上萬,如果我們調用無關的列,將會浪費運行的時間和空間。

2.1 命令行排序決定輸出的排序

例如:

select first_name, last_name, points from customers

返回結果如下

若將姓氏與名字調換順序,則

select last_name, first_name, points from customers

返回結果如下

2.2 對列進行算術運算

例如我們需要得到“用戶積分×10+100”的列

select last_name, first_name, points,points * 10 + 100 from customers

結果如下

注:選擇的四列也可寫成一行

(1)加減乘除基本運算

select last_name, first_name, points,points + 10,points - 10,points * 10,points / 10,points % 10 from customers

(2)運算順序

對列進行算術運算,優先進行乘除,再進行加減。但我們可以用括號改變運算順序

select points,(points + 10) * 100 from customers

2.3 為新的列命名

上述產生的新的列的列名沒有表達明確的意義,我們可以為新列重新命名

select last_name,first_name,points,(points + 10) * 100 as discount_factor from customers

“as”語法可以為新的列命名,結果如下

如果我們希望列名中包含空格,我們可以用如下的命令

select last_name,first_name,points,(points + 10) * 100 as 'discount factor' from customers

結果如下

2.4 顯示一列中不同值

例如客戶來自不同的州,我們想要知道哪些州有我們的客戶,即不查看重復值。

我們發現有重復的州

select state from customers

我們想要查看非重復的,只需要加入“distinct”語法

select distinct state from customers

2.5 小結

在select語句中, 我們可以:

(1)用 * 來選擇所有的列,

(2)輸入列名選擇特定的列,

(3)運用算術運算獲得新的列,

(4)用 as 給列重新命名,

(5)用distinct獲得無重復值的結果。

【小練習】

選擇products表格中的產品的名字,單位價格以及新的價格,新的價格需要自己創建,它是單位價格的1.1倍。

答案可以在評論區查看噢~


3. where語句

where語句是用于調用滿足特定條件的行,在這一節的例子中我們仍舊采用sql_store的數據庫中customers表格的數據。

以下是常用的符號

如果所需要篩選的條件是字符串,需要用引號括起來。

例如,我們需要調取生活在弗吉尼亞州的客戶的所有數據:

select * from customers where state = 'VA'

注:使用小寫的va也是可以的

如果所需要篩選的條件是日期,也是只需要用引號括起來。

例如,我們需要調取1990年及以后出生的客戶的所有數據:

select * from customers where birth_date > '1990-01-01'

3.1. and,or以及not語句

如果我們調用滿足多種條件的數據,我們需要使用邏輯運算符號and,or和not。

select * from customers where birth_date > '1990-01-01' or points > 1000 and state = 'VA'

請問最后一行代碼是篩選出生于1990年及以后或積分大于1000的客戶,且在滿足前面兩種情況的同時,必須滿足顧客生活在弗吉尼亞州;還是篩選出生于1990年及以后的顧客或積分大于1000且生活在弗吉尼亞州的顧客呢?

答案是后者,因為and運算符號具有更高的優先級。雖然如此,但加上括號可以使得命令更清晰明。

3.2 in語句

如果我們需要找生活中特定幾個州的顧客,運用上一節的知識,我們可以這樣寫:

select * from customers where state = 'VA' or state = 'GA' or state = 'FL'

但是我們不能寫成如下形式:

select * from customers where state = 'VA' or 'GA' or 'FL'

or語句只能并列多個條件,而‘GA’和‘FL’只是字符串,state = ‘VA’則是一個布爾值,因此這行命令是錯誤的。

如果or語句并列的條件是對于同一列的值進行判斷,則可以用in語句來簡化命令:

select * from customers where state in ('VA','FL','GA')

我們可以對in語句使用not邏輯運算:

select * from customers where state not in ('VA','FL','GA')

3.3 between語句

當我們需要調用積分在1000到3000的顧客的信息,我們可以使用and邏輯運算符號:

select * from customers where points >= 1000 and points <= 3000

當我們需要選取一定范圍內的數值時,我們可以用between來簡化命令:

select * from customers where points between 1000 and 3000

【小練習】

我們需要調用出生日期在1990年至2000年之間的顧客的信息。

3.4 like語句

當我們想要調用具有特定字符串的顧客的信息時,我們可以用like語句。

例如,我們需要調用姓氏以b開頭的客戶:

select * from customers where last_name like 'b%'

注:b可以用多個字符串代替,如abc;數字也可以使用,當然是對于電話號碼之類的

%-代表多個字符串

_-代表一個字符串

3.5 regexp語句

like的使用范圍有限,類似于python中的正則表達式,在mysql中也有類似的正則表達式。

like語句Regexp語句
'b%''^b'
'%b''b$'
'%b%''b'

正則表達式對于滿足多種條件的查詢非常方便。

例如:

select * from customers where last_name regexp 'field|mac|rose'

雖然這并不是正則表達的所有內容,但是以上語法足夠適用于日常生活。

【小練習】

  • 選擇用戶的名字含有ELKA或者AMBUR的
  • 選擇用戶的姓氏以EY或者ON結尾的
  • 選擇用戶的姓氏以MY開始或者包含SE的
  • 選擇用戶的姓氏包含BR或者BU的

3.6 is null語句

查詢某列值為空值的行

select * from customers -- 查詢電話信息為空的行 where phone is null -- 不為空值則使用 where phone is not null -- 注:這兩行命令只能執行其中一個,否則報錯

3.7 小結

注:日期和字符串一樣,引用時需要用括號括起來,但是在篩選日期區間時,與數字區間一樣使用between語句。


4. order by語句

4.1 查看排序的依據

目前顧客表格customers是根據customer_id排序的

怎么知道是按照customer_id排序的呢?

我們可以點擊左欄中小工具圖標后,出現以下內容

列名中有黃色標志的列為默認排序所依據的列,一般此類列具有可識別性,例如你的學號,在學校不會有人與你的學號重復,那么我們就可以用學號來代替每一個人并且不會一個學號對應兩個人的情況。

如果我們希望表格按名字字母排序:

select * from customers order by first_name -- 注:一定要選擇數據庫,類似于use sql_store

4.2 倒序

如果我們希望按名字字母倒序排序(若數字,則變成從大到小):

order by first_name desc

4.3 多重排序

若要進行多重排序,則按照順序依次寫在order by后面:

order by state desc, first_name desc

該命令指:先根據state的倒敘排序,在state相同的情況下再根據first_name的倒敘排序

4.4 所選擇的列與排序所依據的列的關系

即使我們所選擇的列中并不包含排序依據的列,但也是行得通的

-- 按照州的名稱排序后選擇city的信息 select city from customers order by state

我們也可以根據新建的列進行排序

-- 根據新建的列排序,再根據first_name select first_name, 10 as points from customers order by points, first_name

一種簡便的排序方式

select birth_date, first_name, last_name, 10 as points from customers order by 1, 2

該命令會根據所選的第一列和第二列依次進行排序,但這種排序的缺點是如果所選的列的先后順序改變,則排序規則也會改變

注:select *也可以使用這種簡便的方法噢。

4.5 根據運算結果排序

我們可以根據列表進行運算后的結果排序

對于order_items表格,如果我們需要對order_id為2的訂單根據總價格(列表中沒有)從低到高排序。

select * from order_items where order_id = 2 order by quantity * unit_price desc

4.6 小結


5. limit語句

之前我們學習的都是根據列的信息進行篩選,如果我們需要選擇特定行,例如我們選擇列表前三行的數據,可以執行這樣的命令:

select * from customers limit 3

如果我們需要第六行開始的三行數據,則

select * from customers limit 6, 3

學習了這些基本語法后,就是最基礎的sql入門啦~

語法結構必須按照以下順序:select, from, where, order by, limit

總結

以上是生活随笔為你收集整理的sql的加减乘除运算_小白学sql(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天堂av网址 | 国产h视频 | 欧美性生活 | 麻豆传媒mv | 99热国产 | 日韩视频一二三区 | 久久久麻豆 | 国产日韩欧美中文字幕 | 激情欧美一区二区免费视频 | 国产手机av | 美女啪啪无遮挡 | 久久精品无码Av中文字幕 | 日韩国产一区 | 欧美一级黄色片子 | 精品久久综合 | 中文字幕无码精品亚洲资源网久久 | 美女交配 | 黄色av网站网址 | 看av免费毛片手机播放 | 山村淫强伦寡妇 | www狠狠 | 日韩欧美国产成人精品免费 | 91精品久久久久久综合五月天 | 亚洲精品一区二区三区四区 | 国产91沙发系列 | 天天摸天天碰天天爽天天弄 | 色哒哒影院 | 亚洲精选一区 | 亲切的金子片段 | 人人干天天干 | 日本中文字幕一区二区 | 日韩免费一区二区三区 | 亚洲综合图色40p | 天天做天天射 | 午夜宫| 黑人操日本女优 | 嫩草免费视频 | 日韩一区2区 | www.激情网 | 精品欧美激情精品一区 | 色播视频在线观看 | 青青草原av | 中文免费av | 成年人黄色大全 | 强伦人妻一区二区三区视频18 | 亚洲精品wwww | 国产精品无码免费在线观看 | av簧片 | 免费网站观看www在线观 | 国产精品久久久久久久久久久免费看 | 免费毛片视频网站 | 国产福利片在线 | 欧美特黄一区二区三区 | 亚洲高清在线一区 | 一区二区三区视频播放 | 一区二区三区免费观看视频 | 精品91久久久久久 | jzzjzzjzz亚洲成熟少妇 | 欧美高清hd| 五月婷网站 | 97久久免费视频 | 午夜免费av| 日本黄色片在线播放 | 妺妺窝人体色WWW精品 | 色一情一区二区三区四区 | 奇米色影视 | 视色影院| 亚洲欧美色视频 | 美腿丝袜一区二区三区 | 婷婷亚洲五月色综合 | 老色批影视 | 亚洲三级成人 | 毛片a区 | 97在线免费视频观看 | 天天艹日日干 | 亚洲欧美国产一区二区 | 亚洲毛片视频 | 亚洲二区视频 | 9l视频自拍九色9l视频 | 精品久久久久久久久久久久 | 日韩精品视 | 国产网友自拍 | 国产成人免费视频网站 | 国产精品一区二区三区在线看 | 久久精品国产清自在天天线 | 久草最新网址 | 久久在线观看 | 毛片com| 国产一区h | 三级理论电影 | 美女校花脱精光 | 九九九视频在线观看 | 欧美激情二区三区 | 日本在线免费看 | 久久综合丁香 | 亚洲熟妇无码av在线播放 | v天堂中文在线 | 欧美俄罗斯乱妇 | 日本xxx高清 |