- SQL是结构化查询语言
- SQL对大小写不敏感
- SQL后面的分号看数据库要求才加不加
- SQL分为两部分 DML(数据操作语言)和DDL(数据定义语言)
1、SELECT
从名为 “Persons” 的数据库表获取名为 “LastName” 和 “FirstName” 的列
SELECT LastName,FirstName FROM Persons
SELECT * FROM Persons (全部列)
2、DISTINCT
关键词 DISTINCT 用于返回唯一不同的值。
SELECT DISTINCT 列名称 FROM 表名称
3、WHERE
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
(运算符中的特殊 <> 为不等于 、BETWEEN为在某个范围内、LIKE搜索某种模式)
4、AND && OR
SELECT * FROM Persons WHERE FirstName=‘Thomas’ AND LastName=‘Carter’。 (AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
)
5、ORDER BY
SELECT Company, OrderNumber FROM Orders ORDER BY Company
对Company, OrderNumber并根据Company排序
ORDER BY 语句用于对结果集进行排序
逆序 DESC
顺序 ASC
6、INSERT INTO
INSERT INTO table_name (列1, 列2,…) VALUES (值1, 值2,….) 指定所要插入数据的列
INSERT INTO Persons VALUES (‘Gates’, ‘Bill’, ‘Xuanwumen 10’, ‘Beijing’)
INSERT INTO Persons (LastName, Address) VALUES (‘Wilson’, ‘Champs-Elysees’)
7、UPDATE
UPDATE Person SET FirstName = ‘Fred’ WHERE LastName = ‘Wilson’
更新某一行中的一个列
8、DELETE
DELETE FROM 表名称 WHERE 列名称 = 值
DELETE FROM table_name(可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的)
9、LIKE
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
SELECT * FROM Persons
WHERE City LIKE ’N%’
从 “Persons” 表中选取居住在以 “N” 开始的城市里的人
SELECT * FROM Persons
WHERE City NOT LIKE ‘%lon%’
10、IN
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,…)
11、BETWEEN
between是范围,而in是在值之内
SELECT * FROM Persons
WHERE LastName
BETWEEN ‘Adams’ AND ‘Carter’
12、AS(别名)
SELECT column_name(s)
FROM table_name
AS alias_name
SELECT column_name AS alias_name
FROM table_name
13、JOIN
SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。引用两个表
我们可以通过引用两个表的方式,从两个表中获取数据:
谁订购了产品,并且他们订购了什么产品?
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName
JOIN: 如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
SQL INNER JOIN 关键字
在表中存在至少一个匹配时,INNER JOIN 关键字返回行。
全部
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
现在,我们希望列出所有的人,以及他们的定购 - 如果有的话。
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
我们希望列出所有的定单,以及定购它们的人 - 如果有的话。
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
我们希望列出所有的人,以及他们的定单,以及所有的定单,以及定购它们的人。
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
14、UNION
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
15、SELECT INTO
SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。
所有的列插入新表:
SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_tablename
16、CREATE DATABASE my_db
17、CREATE TABLE
CREATE TABLE Persons
(
Id_P int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
18、PRIMARY KEY
约束唯一标识数据库表中的每条记录。
19、FOREIGN KEY
一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。
CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
)
20、SELECT COUNT(*) AS NumberOfOrders FROM Orders
21、SELECT SUM(column_name) FROM table_name
注两道题目:
1000条数据,每个数据有个字段价格,求价格总和 sql
SELECT SUM(PRICE) AS SUMPRICE FROM TABLE
1000条数据,每个数据有个字段价格和种类,求每个种类的总价格和
SELECT SUM(PRICE) AS SUMPRICE FROM TABLE GROUP BY CATEGORY