<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
選擇語句整體什麼樣
USE sql_store; SELECT * / 1, 2 -- 縱向篩選列,甚至可以是常數 FROM customers -- 選擇表 WHERE customer_id < 4 -- 橫向篩選行 ORDER BY first_name -- 排序 -- 單行註釋 /* 多行註釋 */
SELECT 是列/欄位選擇語句,可選擇列,列間數學表示式,特定值或文字,可用AS關鍵字設定列別名(AS可省略),注意 DISTINCT
關鍵字的使用。
SELECT last_name, first_name, points, points * 10 + 100 AS 'discount_factor' FROM customers; -- DISTINCT為去除重複 SELECT DISTINCT state FROM customers;
WHERE 是行篩選條件,實際是一行一行/一條條記錄依次驗證是否符合條件,進行篩選
-- <> 代表不等於 USE sql_store; SELECT * FROM customers WHERE points > 3000 /WHERE state != 'va' -- 'VA'/'va'一樣 -- 比較運運算元 > < = >= <= !=/<> ,注意等於是一個等號而不是兩個等號 -- 也可對日期或文字進行比較運算,注意SQL裡日期的標準寫法及其需要用引號包裹這一點 WHERE birth_date > '1990-01-01'
用邏輯運運算元AND、OR、NOT對(數學和)比較運算進行組合實現多重條件篩選
執行優先順序:數學→比較→邏輯
-- 滿足AND前後兩個條件,才能展示 -- OR只要有一個滿足,就進行展示 SELECT * FROM Customers -- WHERE birth_date > '1990-01-01' AND points > 1000; -- WHERE birth_date > '1990-01-01' AND points > 1000; WHERE birth_date > '1990-01-01' OR points > 1000 AND state = 'VA' -- -- AND優先順序比OR高,但最好加括號,更清晰 --NOT的用法 WHERE NOT (birth_date > '1990-01-01' OR points > 1000) -- 去括號等效轉化為 WHERE birth_date <= '1990-01-01' AND points <= 1000
用IN運運算元將某一屬性與多個值(一系列值)進行比較
實質是多重相等比較運算條件的簡化
SELECT * FROM Custom -- WHERE state = 'VA' OR state = 'GA' OR state = 'FL' -- 下面這種不能 -- WHERE state = 'VA' OR 'GA' OR 'FL' WHERE state IN('VA','GA','FL') -- 也可加not WHERE state NOT IN ('va', 'fl', 'ga') -- 這裡可用NOT的原因:可以這麼看,IN語句 IN ('va', 'fl', 'ga') 是在進行一種是否符合條件的判斷,可看作是一種特殊的比較運算,得到的是一個邏輯值,故可用NOT進行取反
用於表達範圍型條件
USE sql_store; select * from customers where points >= 1000 and points <= 3000 -- 等效簡化 WHERE points BETWEEN 1000 AND 3000 -- 注意兩端都是包含的 不能寫作BETWEEN (1000, 3000)!別和IN的寫法搞混
模糊查詢,查詢具有某種模式的字串的記錄/
-- 過時用法(但有時還是比較好用,之後發現好像用的還是比較多的),下節課的正規表示式更靈活更強大 -- 注意和正規表示式一樣都是用引號包裹表示字串 USE sql_store; SELECT * FROM customers WHERE last_name like 'brush%' / 'b____y' -- % 任何個數(包括0個)的字元(用的更多) -- _ 單個字元 -- 練習 -- 地址包含 'TRAIL' 或 'AVENUE' SELECT * FROM customers WHERE address like '%Trail%' OR address like '%AVENUE%'
正規表示式,在搜尋字串方面更為強大,可搜尋更復雜的模板
符號 | 意義 |
---|---|
^ | 開頭 |
$ | 結尾 |
[abc] | 含abc |
[a-c] | 含a-c |
| | 或 |
/* 分別選擇滿足如下條件的顧客: 1. first names 是 ELKA 或 AMBUR 2. last names 以 EY 或 ON 結束 3. last names 以 MY 開頭 或包含 SE 4. last names 包含 BR 或 BU */ select * from customers where first_name regexp 'elka|ambur' /where last_name regexp 'ey$|on$' /where last_name regexp '^my|se' /where last_name regexp 'b[ru]'/'br|bu'
找出空值,找出有些屬性缺失的記錄
USE sql_store; select * from customers where phone is null/is not null -- 注意是 IS NULL 和 IS NOT NULL 這裡 NOT 不是前置於布林值,而是更符合英語語法地放在了be動詞後
排序語句,和 SELECT ……
很像:
-- 最好別用 ORDER BY 1, 2(表示以 SELECT …… 選中列中的第1、2列為排序依據) 這種隱性依據,因為SELECT選擇的列一變就容易出錯,還是顯性地寫出列名作為排序依據比較好
USE sql_store; select name, unit_price * 1.1 + 10 as new_price from products order by new_price desc, product_id -- 這兩個分別是 別名列 和 未選擇列,都用到了 MySQL 特性
限制返回結果的記錄數量,“前N個” 或 “跳過M個後的前N個”
USE sql_store; select * from customers limit 3 / 300 / 6, 3 -- 6, 3 表示跳過前6個,取第7~9個,6是偏移量, -- 如:網頁分頁 每3條記錄顯示一頁 第3頁應該顯示的記錄就是 limit 6, 3
到此這篇關於Sql在單一表中檢索資料的方法詳解的文章就介紹到這了,更多相關Sql檢索資料內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45