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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql sql select_mysql SQL Select 语句 简单应用

發(fā)布時間:2024/9/19 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql sql select_mysql SQL Select 语句 简单应用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。