mysql sql select_mysql SQL Select 语句 简单应用
一、SQL 簡介
1. 什么是 SQL?
SQL 指結構化查詢語言
SQL 使我們有能力訪問數據庫
SQL 是一種 ANSI 的標準計算機語言
2. SQL 能做什么?
SQL 面向數據庫執行查詢
SQL 可從數據庫取回數據
SQL 可在數據庫中插入新的記錄
SQL 可更新數據庫中的數據
SQL 可從數據庫刪除記錄
SQL 可創建新數據庫
SQL 可在數據庫中創建新表
SQL 可在數據庫中創建存儲過程
SQL 可在數據庫中創建視圖
SQL 可以設置表、存儲過程和視圖的權限
3. 注意事項
SQL 對大小寫不敏感!
每條 SQL 命令的末端使用分號[;]結束
4. 查詢、更新和定義指令
SQL 查詢和更新指令-----------------
SELECT - 從數據庫表中獲取數據 UPDATE - 更新數據庫表中的數據 DELETE - 從數據庫表中刪除數據 INSERT INTO - 向數據庫表中插入數據 SQL 的數據定義指令----------------- CREATE DATABASE - 創建新數據庫 ALTER DATABASE - 修改數據庫 CREATE TABLE - 創建新表 ALTER TABLE - 變更(改變)數據庫表 DROP TABLE - 刪除表 CREATE INDEX - 創建索引(搜索鍵) DROP INDEX - 刪除索引
二、SQL Select 語句
SELECT 語句用于從表中選取數據。
結果被存儲在一個結果表中(稱為結果集)。
1. SELECT 簡單語法
SELECT 列名稱 FROM 表名稱
以及:
SELECT * FROM 表名稱
注:SQL 語句對大小寫不敏感。SELECT 等效于 select。
SQL SELECT 實例
SELECT id,name,title FROM posts
或
SELECT * FROM posts
注:星號(*)是選取所有列的快捷方式。
2. SELECT DISTINCT 語句
DISTINCT 用于返回唯一不同的值(按某一列去重)。
語法:
SELECT DISTINCT 列名稱 FROM 表名稱
如:
SELECT DISTINCT title FROM posts
3. WHERE 子句
如需有條件地從表中選取數據,可將 WHERE 子句添加到 SELECT 語句。
語法:
SELECT 列名稱 FROM 表名稱 WHERE 列 運算符 值
下面的運算符可在 WHERE 子句中使用:
操作符
描述
=
等于
<>
不等于
>
大于
<
小于
>=
大于等于
<=
小于等于
BETWEEN
在某個范圍內
LIKE
搜索某種模式
如下:
SELECT 語句添加 WHERE 子句:
SELECT * FROM posts WHERE title='test title'
注意,單引號的使用。
SQL 使用單引號來環繞文本值(大部分數據庫系統也接受雙引號)。如果是數值,請不要使用引號。
文本值:
這是正確的:
SELECT * FROM posts WHERE title='test title'
這是錯誤的:
SELECT * FROM posts WHERE title=test title
數值:
這是正確的:
SELECT * FROM posts WHERE Year>1965
這是錯誤的:
SELECT * FROM posts WHERE Year>'1965'
4. AND & OR 運算符
AND 和 OR 運算符用于基于一個以上的條件對記錄進行過濾。
AND 運算符實例 如下:
SELECT * FROM posts WHERE title='test title' AND name='admin'
OR 運算符實例
SELECT * FROM posts WHERE title='test title' OR name='admin'
結合 AND 和 OR 運算符
SELECT * FROM posts WHERE (title='test title' OR FirstName='admin') AND status='publish'
5. ORDER BY 子句
ORDER BY 語句用于對結果集進行排序
ORDER BY 語句默認按照升序對記錄進行排序(ASC)
如果希望按降序排序,可以使用 DESC 關鍵字
實例如下:
SELECT * FROM posts ORDER BY title
或
SELECT * FROM posts ORDER BY title DESC
多個排序條件如下:
SELECT title,name FROM posts ORDER BY title DESC, name ASC
注意:在以上的結果中第一列 title 有相等時。第二個排序條件才會起作用,并對相同的 title 再按 name 排序。
6. Limit 子句
Limit 子句是用于規定要返回的記錄的數目
SELECT * FROM posts LIMIT 10
或
SELECT * FROM posts LIMIT 1,10
7. LIKE 通配符
通配符
描述
%
替代一個或多個字符
_
僅替代一個字符
[charlist]
字符列中的任何單一字符
[^charlist]或者[!charlist]
不在字符列中的任何單一字符
1. LIKE 操作符(替代一個或多個字符)
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
實例如下:
SELECT * FROM posts WHERE title LIKE 'test%'
提示:”%” 可用于定義通配符(模式中缺少的字母)。
或:
SELECT * FROM posts WHERE title LIKE '%test%'
NOT 關鍵字 (不包含 某些關鍵字)
如下:
SELECT * FROM posts WHERE title NOT LIKE '%test%'
2. _ 通配符(僅替代一個字符)
SELECT * FROM posts WHERE title LIKE '___t'
3. [charlist] 通配符(字符列中的任何單一字符)
SELECT * FROM posts WHERE title LIKE '[ALN]%'
不以 “A” 或 “L” 或 “N” 開頭的 title
SELECT * FROM posts WHERE title LIKE '[!ALN]%'
8. IN 操作符
IN 操作符允許我們在 WHERE 子句中規定多個值。
實例:
SELECT * FROM posts WHERE name IN ('admin','john')
9. BETWEEN … AND … 操作符
操作符 BETWEEN … AND 會選取介于兩個值之間的數據范圍。這些值可以是數值、文本或者日期。
SELECT * FROM posts WHERE name BETWEEN 'Adams' AND 'Carter'
范圍之外的人,請使用 NOT 操作符
SELECT * FROM posts WHERE name NOT BETWEEN 'Adams' AND 'Carter'
10. AS (Alias 別名)
可以為列名稱和表名稱指定別名(Alias)。
SELECT name AS n, title AS t FROM posts
11. JOIN
SQL join 用于根據兩個或多個表中的列之間的關系,從這些表中查詢數據。
下面列出了您可以使用的 JOIN 類型,以及它們之間的差異。
JOIN: 如果表中有至少一個匹配,則返回行
LEFT JOIN: 即使右表中沒有匹配,也從左表返回所有的行
RIGHT JOIN: 即使左表中沒有匹配,也從右表返回所有的行
FULL JOIN: 只要其中一個表中存在匹配,就返回行
1. LEFT JOIN 關鍵字
LEFT JOIN 關鍵字會從左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中沒有匹配的行。
SELECT id, brand, sa.state_name AS state FROM shopping AS shop LEFT JOIN state_alias AS sa ON (sa.state_abbr = shop.state)
12. SQL 函數
函數語法:
SELECT function(列) FROM 表
SQL 擁有很多可用于計數和計算的內建函數。
函數
描述
AVG(column)
返回某列的平均值
COUNT(column)
返回某列的行數(不包括NULL值)
FIRST(column)
返回在指定的列中第一個記錄的值
LAST(column)
返回在指定的域中最后一個記錄的值
MAX(column)
返回某列的最高值
MIN(column)
返回某列的最低值
SUM(column)
返回某列的總和
ROUND(column,decimals)
把數值字段舍入為指定的小數位數
NOW()
返回當前的日期和時間
FORMAT(Now(),’YYYY-MM-DD’)
用于對字段的顯示進行格式化
13. GROUP BY 語句
合計函數 (比如 SUM) 常常需要添加 GROUP BY 語句。
GROUP BY 語句用于結合合計函數,根據一個或多個列對結果集進行分組。
我們擁有下面這個 “Orders” 表:
O_Id
OrderDate
OrderPrice
Customer
1
2008/12/29
1000
Bush
2
2008/11/23
1600
Carter
3
2008/10/05
700
Bush
4
2008/09/28
300
Bush
5
2008/08/06
2000
Adams
6
2008/07/21
100
Carter
現在,我們希望查找每個客戶的總金額(總訂單)。
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer
結果集類似這樣:
Customer
SUM(OrderPrice)
Bush
2000
Carter
1700
Adams
2000
讓我們看一下如果省略 GROUP BY 會出現什么情況:
Customer
SUM(OrderPrice)
Bush
5700
Carter
5700
Bush
5700
Bush
5700
Adams
5700
Carter
5700
其它實例:
select state,count(state) from shopping GROUP BY state
END!
總結
以上是生活随笔為你收集整理的mysql sql select_mysql SQL Select 语句 简单应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1000元炒股一个月能赚多少 新手保
- 下一篇: mysql 图形插件_对我来说数据库图形