sql语句

sql相关

简单的查:
SELECT 列名称 FROM 表名称
SELECT * FROM 表名称

去重复:

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 5

oracle:

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_name

oracle:

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 Customer

 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用:

SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
HAVING SUM(OrderPrice)<2000
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值