去重复:
SELECT DISTINCT 列名称 FROM 表名称Where:
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter' SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'查询结果排序:
SELECT Company, OrderNumber FROM Orders ORDER BY Company如果加DESC,则逆序排序
插入数据:
INSERT INTO 表名称 VALUES (值1, 值2,....) INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)更新数据:
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 删除表中的行: DELETE FROM 表名称 WHERE 列名称 = 值删除所有行
可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的:
DELETE FROM table_name规定要返回的记录的数目:
mysql:
SELECT * FROM Persons LIMIT 5oracle:
SELECT * FROM Persons WHERE ROWNUM <= 5模糊查询:
SELECT * FROM Persons WHERE City LIKE 'N%' SELECT * FROM Persons WHERE City NOT LIKE '%lon%'IN 操作符允许我们在 WHERE 子句中规定多个值:
SELECT * FROM Persons WHERE LastName IN ('Adams','Carter')BETWEEN ... AND 会选取介于两个值之间的数据范围:
SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter'使用别名:
别名使查询程序更易阅读和书写。
SELECT po.OrderID, p.LastName, p.FirstName FROM Persons AS p, Product_Orders AS poWHERE p.LastName='Adams' AND p.FirstName='John'内连接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左联接left join:
LEFT JOIN 关键字会从左表 (Persons) 那里返回所有的行,即使在右表 (Orders) 中没有匹配的行。
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons LEFT JOIN Orders ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName右连接right join:
RIGHT JOIN 关键字会从右表 (Orders) 那里返回所有的行,即使在左表 (Persons) 中没有匹配的行。
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons RIGHT JOIN Orders 全连接full join: 返回所有的行。 SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons FULL JOIN Orders ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName合并结果集:
SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2
创建索引:
您可以在表中创建索引,以便更加快速高效地查询数据。
注释:更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。
CREATE INDEX PersonIndex ON Person (LastName)删除索引:
mysql:
ALTER TABLE table_name DROP INDEX index_nameoracle:
DROP INDEX index_name删除表:
DROP TABLE 表名称删除数据库:
DROP DATABASE 数据库名称添加列:
ALTER TABLE table_name ADD column_name datatype删除列:
ALTER TABLE table_name DROP COLUMN column_name改变表中列的数据类型:
ALTER TABLE table_name ALTER COLUMN column_name datatype对结果集进行分组:
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY CustomerSQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用:
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer HAVING SUM(OrderPrice)<2000