【SQL】SQL学习备注

【SQL】SQL学习备注

--创建数据库
CREATE DATABASE my_db

--创建表
CREATE TABLE Persons ( Id_P int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255) )

--删除表
DROP TABLE `persons`

--查询
--取出该列中的数据并去除重复
SELECT DISTINCT Company FROM Orders

--不包含
SELECT * FROM Persons WHERE City NOT LIKE '%lon%'

--我们也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式)
SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William') AND LastName='Carter'

--插入
INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')
INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')

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

--删除
DELETE FROM Person WHERE LastName = 'Wilson'
DELETE FROM table_name
DELETE * FROM table_name

--TOP 子句
SELECT TOP number|percent column_name(s)
FROM table_name
--例子
SELECT TOP 2 * FROM Persons
SELECT TOP 50 PERCENT * FROM Persons

--MySQL语法
SELECT column_name(s) FROM table_name LIMIT number

--Oracle
SELECT * FROM Persons WHERE ROWNUM <= 5

在 SQL 中,可使用以下通配符
通配符                                   描述
%                                 替代一个或多个字符
_                                   仅替代一个字符
[charlist]                       字符列中的任何单一字符
[^charlist]或者[!charlist]     不在字符列中的任何单一字符

--例子1:
--现在,我们希望从上面的 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人:
SELECT * FROM Persons WHERE City LIKE '[ALN]%'
--现在,我们希望从上面的 "Persons" 表中选取居住的城市不以 "A" 或 "L" 或 "N" 开头的人:
SELECT * FROM Persons WHERE City LIKE '[!ALN]%'

--IN
--IN 操作符允许我们在 WHERE 子句中规定多个值:
SELECT * FROM Persons WHERE LastName IN ('Adams','Carter')

--BETWEEN
--如需以字母顺序显示介于 "Adams"(包括)和 "Carter"(不包括)之间的人,请使用下面的 SQL:
SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter'

--如需使用上面的例子显示范围之外的人,请使用 NOT 操作符:
SELECT * FROM Persons WHERE LastName NOT BETWEEN 'Adams' AND 'Carter'

--注意:不同的数据库对 BETWEEN...AND 操作符的处理方式是有差异的。某些数据库会列出介于 "Adams" 和 --"Carter" 之间的人,但不包括 "Adams" 和 "Carter" ;某些数据库会列出介于 "Adams" 和 "Carter" 之间--并包括 "Adams" 和 "Carter" 的人;而另一些数据库会列出介于 "Adams" 和 "Carter" 之间的人,包括 --"Adams" ,但不包括 "Carter" 。
--所以,请检查你的数据库是如何处理 BETWEEN....AND 操作符的!

--Alias
--表的 SQL Alias 语法
SELECT column_name(s) FROM table_name AS alias_name

--列的 SQL Alias 语法
SELECT column_name AS alias_name FROM table_name

--Join
--INNER JOIN: 如果表中有至少一个匹配,则返回行
--LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
--RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
--FULL JOIN: 只要其中一个表中存在匹配,就返回行

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.Id_P = Orders.Id_P ORDER BY Persons.LastName





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值