Mysql 數據庫的查詢操做

組合兩張或更多表

您能夠使用 JOIN 語句,根據它們之間的相關列組合兩個或多個表中的行。mysql

假設您有 "users" 表和 "products" 表:sql

users表
{ id: 1, name: 'John', fav: 154},
{ id: 2, name: 'Peter', fav: 154},
{ id: 3, name: 'Amy', fav: 155},
{ id: 4, name: 'Hannah', fav:},
{ id: 5, name: 'Michael', fav:}
products 表
{ id: 154, name: 'Chocolate Heaven' },
{ id: 155, name: 'Tasty Lemons' },
{ id: 156, name: 'Vanilla Dreams' }

能夠使用 users 的 fav 字段和 products 的 id 字段來組合這兩個表。
組合用戶和產品,查看用戶最喜歡的產品名稱:code

sql = "SELECT users.name AS user, products.name AS favorite FROM users INNER JOIN products ON users.fav = products.id"
結果
('John', 'Chocolate Heaven')
('Peter', 'Chocolate Heaven')
('Amy', 'Tasty Lemon')

註釋:您能夠使用 JOIN 而不是 INNER JOIN。您都會獲得相同的結果。排序

LEFT JOIN
sql = "SELECT users.name AS user, products.name AS favorite FROM users LEFT JOIN products ON users.fav = products.id"
結果
('John', 'Chocolate Heaven')
('Peter', 'Chocolate Heaven')
('Amy', 'Tasty Lemon')
('Hannah', None)
('Michael', None)
RIGHT JOIN
sql = "SELECT users.name AS user, products.name AS favorite FROM users RIGHT JOIN products ON users.fav = products.id"
結果
('John', 'Chocolate Heaven')
('Peter', 'Chocolate Heaven')
('Amy', 'Tasty Lemon')
(None, 'Vanilla Dreams')
mysql如何更新一個表中的某個字段值等於另外一個表的某個字段值
update a inner join b on a.id=b.id set a.x=b.x,a.y=b.y;
SQL SELECT DISTINCT 語句

在表中,可能會包含重複值。這並不成問題,不過,有時您也許但願僅僅列出不一樣(distinct)的值。
關鍵詞 DISTINCT 用於返回惟一不一樣的值。產品

語法:it

SELECT DISTINCT 列名稱 FROM 表名稱
WHERE 子句

SELECT 列名稱 FROM 表名稱 WHERE 列 運算符 值
下面的運算符可在 WHERE 子句中使用:table

操做符 描述ast

= 等於 header
<> 不等於
> 大於
< 小於
>= 大於等於
<= 小於等於

BETWEEN 在某個範圍內
LIKE 搜索某種模式
註釋:在某些版本的 SQL 中,操做符 <> 能夠寫爲 !=。date

AND 和 OR 運算符
  • AND 和 OR 可在 WHERE 子語句中把兩個或多個條件結合起來。
  • 若是第一個條件和第二個條件都成立,則 AND 運算符顯示一條記錄。
  • 若是第一個條件和第二個條件中只要有一個成立,則 OR 運算符顯示一條記錄。
SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'
SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'
SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William') AND LastName='Carter'
ORDER BY 語句
  • ORDER BY 語句用於根據指定的列對結果集進行排序。
  • ORDER BY 語句默認按照升序對記錄進行排序。
  • 若是您但願按照降序對記錄進行排序,能夠使用 DESC 關鍵字。
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
相關文章
相關標籤/搜索