1. 程式人生 > 資料庫 >SQL筆記1:基礎教程

SQL筆記1:基礎教程

SQL語法

SQL 對大小寫不敏感。

SQL 語句後面的分號

 某些資料庫系統要求在每條 SQL 命令的末端使用分號。在我們的教程中不使用分號 

SQL DML 和 DDL

可以把 SQL 分為兩個部分:資料操作語言 (DML) 和 資料定義語言 (DDL)。

查詢和更新指令構成了 SQL 的 DML 部分:

  • SELECT - 從資料庫表中獲取資料
  • UPDATE - 更新資料庫表中的資料
  • DELETE - 從資料庫表中刪除資料
  • INSERT INTO - 向資料庫表中插入資料

SQL 的資料定義語言 (DDL) 部分使我們有能力建立或刪除表格。我們也可以定義索引(鍵),規定表之間的連結,以及施加表間的約束。

SQL 中最重要的 DDL 語句:

  • CREATE DATABASE - 建立新資料庫
  • ALTER DATABASE - 修改資料庫
  • CREATE TABLE - 建立新表
  • ALTER TABLE - 變更(改變)資料庫表
  • DROP TABLE - 刪除表
  • CREATE INDEX - 建立索引(搜尋鍵)
  • DROP INDEX - 刪除索引

SQL SELECT 語句

SELECT 列名稱 FROM 表名稱
SELECT * FROM 表名稱

Eg;

SELECT LastName,FirstName FROM Persons

 

注:星號(*)是選取所有列的快捷方式。

SQL SELECT DISTINCT 語句

關鍵詞 DISTINCT 用於返回唯一不同的值。

SELECT DISTINCT 列名稱 FROM 表名稱

SQL WHERE 子句

如需有條件地從表中選取資料,可將 WHERE 子句新增到 SELECT 語句。

SELECT 列名稱 FROM 表名稱 WHERE 列 運算子 值

下面的運算子可在 WHERE 子句中使用:

操作符

描述

=

等於

<>

不等於

>

大於

<

小於

>=

大於等於

<=

小於等於

BETWEEN

在某個範圍內

LIKE

搜尋某種模式

註釋:在某些版本的 SQL 中,操作符 <> 可以寫為 !=。

Eg:

SELECT * FROM Persons WHERE City='Beijing'

SQL AND & OR 運算子

AND 運算子例項

使用 AND 來顯示所有姓為 "Carter" 並且名為 "Thomas" 的人:

SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'

OR 運算子例項

使用 OR 來顯示所有姓為 "Carter" 或者名為 "Thomas" 的人:

SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'

SQL ORDER BY 子句

例項 1

以字母順序顯示公司名稱:

SELECT Company,OrderNumber FROM Orders ORDER BY Company

例項 4

以逆字母順序顯示公司名稱,並以數字順序顯示順序號:

SELECT Company,OrderNumber FROM Orders ORDER BY Company DESC,OrderNumber ASC

SQL INSERT INTO 語句

語法

INSERT INTO 表名稱 VALUES (值1,值2,....)

我們也可以指定所要插入資料的列:

INSERT INTO table_name (列1,列2,...) VALUES (值1,....)

"Persons" 表:

LastName

FirstName

Address

City

Carter

Thomas

Changan Street

Beijing

 

插入新的行

SQL 語句:

INSERT INTO Persons VALUES ('Gates','Bill','Xuanwumen 10','Beijing')

在指定的列中插入資料

SQL 語句:

INSERT INTO Persons (LastName,Address) VALUES ('Wilson','Champs-Elysees')

SQL UPDATE 語句

語法:

UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值

更新某一行中的一個列

我們為 lastname 是 "Wilson" 的人新增 firstname:

UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson' 

更新某一行中的若干列

我們會修改地址(address),並新增城市名稱(city):

UPDATE Person SET Address = 'Zhongshan 23',City = 'Nanjing'
WHERE LastName = 'Wilson'

SQL DELETE 語句

Person:

LastName

FirstName

Address

City

Gates

Bill

Xuanwumen 10

Beijing

Wilson

Fred

Zhongshan 23

Nanjing

 

語法

DELETE FROM 表名稱 WHERE 列名稱 = 值

刪除某行

"Fred Wilson" 會被刪除:

DELETE FROM Person WHERE LastName = 'Wilson'

刪除所有行

可以在不刪除表的情況下刪除所有的行。這意味著表的結構、屬性和索引都是完整的:

DELETE FROM table_name

或者:

DELETE * FROM table_name