mysql sql select_mysql SQL Select 语句 简单应用
一、SQL 簡介
1. 什么是 SQL?
SQL 指結構化查詢語言
SQL 使我們有能力訪問數(shù)據(jù)庫
SQL 是一種 ANSI 的標準計算機語言
2. SQL 能做什么?
SQL 面向數(shù)據(jù)庫執(zhí)行查詢
SQL 可從數(shù)據(jù)庫取回數(shù)據(jù)
SQL 可在數(shù)據(jù)庫中插入新的記錄
SQL 可更新數(shù)據(jù)庫中的數(shù)據(jù)
SQL 可從數(shù)據(jù)庫刪除記錄
SQL 可創(chuàng)建新數(shù)據(jù)庫
SQL 可在數(shù)據(jù)庫中創(chuàng)建新表
SQL 可在數(shù)據(jù)庫中創(chuàng)建存儲過程
SQL 可在數(shù)據(jù)庫中創(chuàng)建視圖
SQL 可以設置表、存儲過程和視圖的權限
3. 注意事項
SQL 對大小寫不敏感!
每條 SQL 命令的末端使用分號[;]結束
4. 查詢、更新和定義指令
SQL 查詢和更新指令-----------------
SELECT - 從數(shù)據(jù)庫表中獲取數(shù)據(jù) UPDATE - 更新數(shù)據(jù)庫表中的數(shù)據(jù) DELETE - 從數(shù)據(jù)庫表中刪除數(shù)據(jù) INSERT INTO - 向數(shù)據(jù)庫表中插入數(shù)據(jù) SQL 的數(shù)據(jù)定義指令----------------- CREATE DATABASE - 創(chuàng)建新數(shù)據(jù)庫 ALTER DATABASE - 修改數(shù)據(jù)庫 CREATE TABLE - 創(chuàng)建新表 ALTER TABLE - 變更(改變)數(shù)據(jù)庫表 DROP TABLE - 刪除表 CREATE INDEX - 創(chuàng)建索引(搜索鍵) DROP INDEX - 刪除索引
二、SQL Select 語句
SELECT 語句用于從表中選取數(shù)據(jù)。
結果被存儲在一個結果表中(稱為結果集)。
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 子句
如需有條件地從表中選取數(shù)據(jù),可將 WHERE 子句添加到 SELECT 語句。
語法:
SELECT 列名稱 FROM 表名稱 WHERE 列 運算符 值
下面的運算符可在 WHERE 子句中使用:
操作符
描述
=
等于
<>
不等于
>
大于
<
小于
>=
大于等于
<=
小于等于
BETWEEN
在某個范圍內(nèi)
LIKE
搜索某種模式
如下:
SELECT 語句添加 WHERE 子句:
SELECT * FROM posts WHERE title='test title'
注意,單引號的使用。
SQL 使用單引號來環(huán)繞文本值(大部分數(shù)據(jù)庫系統(tǒng)也接受雙引號)。如果是數(shù)值,請不要使用引號。
文本值:
這是正確的:
SELECT * FROM posts WHERE title='test title'
這是錯誤的:
SELECT * FROM posts WHERE title=test title
數(shù)值:
這是正確的:
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 語句默認按照升序?qū)τ涗涍M行排序(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 子句是用于規(guī)定要返回的記錄的數(shù)目
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 子句中規(guī)定多個值。
實例:
SELECT * FROM posts WHERE name IN ('admin','john')
9. BETWEEN … AND … 操作符
操作符 BETWEEN … AND 會選取介于兩個值之間的數(shù)據(jù)范圍。這些值可以是數(shù)值、文本或者日期。
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 用于根據(jù)兩個或多個表中的列之間的關系,從這些表中查詢數(shù)據(jù)。
下面列出了您可以使用的 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 函數(shù)
函數(shù)語法:
SELECT function(列) FROM 表
SQL 擁有很多可用于計數(shù)和計算的內(nèi)建函數(shù)。
函數(shù)
描述
AVG(column)
返回某列的平均值
COUNT(column)
返回某列的行數(shù)(不包括NULL值)
FIRST(column)
返回在指定的列中第一個記錄的值
LAST(column)
返回在指定的域中最后一個記錄的值
MAX(column)
返回某列的最高值
MIN(column)
返回某列的最低值
SUM(column)
返回某列的總和
ROUND(column,decimals)
把數(shù)值字段舍入為指定的小數(shù)位數(shù)
NOW()
返回當前的日期和時間
FORMAT(Now(),’YYYY-MM-DD’)
用于對字段的顯示進行格式化
13. GROUP BY 語句
合計函數(shù) (比如 SUM) 常常需要添加 GROUP BY 語句。
GROUP BY 語句用于結合合計函數(shù),根據(jù)一個或多個列對結果集進行分組。
我們擁有下面這個 “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
現(xiàn)在,我們希望查找每個客戶的總金額(總訂單)。
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer
結果集類似這樣:
Customer
SUM(OrderPrice)
Bush
2000
Carter
1700
Adams
2000
讓我們看一下如果省略 GROUP BY 會出現(xiàn)什么情況:
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 语句 简单应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1000元炒股一个月能赚多少 新手保
- 下一篇: mysql 图形插件_对我来说数据库图形