sql基础学习

来源:互联网 发布:java 自定义泛型 编辑:程序博客网 时间:2024/06/04 23:20
Orders//表名Company,OrderNumber//字段
1.SELECT Company FROM Orders
(如果要从 "Company" 列中选取所有的值,我们需要使用 SELECT 语句:)
2.SELECT DISTINCT Company FROM Orders 
(如需从 Company" 列中仅选取唯一不同的值,我们需要使用 SELECT DISTINCT 语句,重复的值只取一个)
3,1.SELECT * FROM Persons WHERE City='Beijing'
3,2.SELECT * FROM Persons WHERE Year>1965
(如果只希望选取居住在城市 "Beijing" 中的人,我们需要向 SELECT 语句添加 WHERE 子句:大于1965的)
4.SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'
(使用 【OR】 来显示所有姓为 "Carter" 或者名为 "Thomas" 的人!使用 【AND】 来显示所有姓为 "Carter" 并且名为 "Thomas" 的人:)
5.SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William') AND LastName='Carter'
(我们也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式):)
6.SELECT Company, OrderNumber FROM Orders ORDER BY Company asc
(以字母顺序显示公司名称:)
7.SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber
(以字母顺序显示公司名称(Company),并以数字顺序显示顺序号(OrderNumber))
8.SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC
(以逆字母顺序显示公司名称:asc升,desc降)
9.SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
(以逆字母顺序显示公司名称,并以数字顺序显示顺序号:)
10.(不为空的必须填值)INSERT INTO 表名称 VALUES (值1, 值2,....)
INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')
我们也可以指定所要插入数据的列:
INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
11.UPDATE 表名称 SET 列名称 = 新值,列名称=新值 ,... WHERE 列名称 = 某值
UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson' 
(我们为 lastname 是 "Wilson" 的人添加 firstname:)
12.DELETE FROM 表名称 WHERE 列名称 = 值
DELETE FROM Person WHERE LastName = 'Wilson' 
(删除这一行,但是得提交事物)
13.select user_name from user_info where rownum<=2
(查询前两行的数据)
14.SELECT * FROM Persons WHERE City LIKE 'N%'
(模糊查询)
15.SELECT * FROM Persons WHERE City NOT LIKE '%lon%'
(不等于这个模糊数值的数据)
16.% 替代一个或多个字符 
  _ 仅替代一个字符 
  [charlist] 字符列中的任何单一字符 
  [^charlist]或者[!charlist] 不在字符列中的任何单一字符
 例子:SELECT * FROM Persons WHERE City LIKE 'Ne%'
(现在,我们希望从上面的 "Persons" 表中选取居住在以 "Ne" 开始的城市里的人:)
SELECT * FROM Persons WHERE City LIKE '%lond%'
(接下来,我们希望从 "Persons" 表中选取居住在包含 "lond" 的城市里的人:)
SELECT * FROM Persons WHERE LastName LIKE 'C_r_er'
(接下来,我们希望从 "Persons" 表中选取的这条记录的姓氏以 "C" 开头,然后是一个任意字符,然后是 "r",然后是任意字符,然后是 "er":)
SELECT * FROM Persons WHERE City LIKE '[ALN]%'
(现在,我们希望从上面的 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人:)
SELECT * FROM Persons WHERE City LIKE '[!ALN]%'
(现在,我们希望从上面的 "Persons" 表中选取居住的城市不以 "A" 或 "L" 或 "N" 开头的人:)
17.SELECT * FROM Persons WHERE LastName IN ('Adams','Carter')
(现在,我们希望从上表中选取姓氏为 Adams 和 Carter 的人:LastName [列名])
18.SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter'
(如需以字母顺序显示介于 "Adams"(包括)和 "Carter"(不包括)之间的人,请使用下面的 SQL:)
19.SELECT * FROM Persons WHERE LastName NOT BETWEEN 'Adams' AND 'Carter'
(如需使用上面的例子显示范围之外的人,请使用 NOT 操作符:以首字母开始的排序)
20.select n.user_name,n.user_password,n.user_state from user_info n where user_id=1
(别名)
21.SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.Id_P = Orders.Id_P ORDER BY Persons.LastName
(join连接两个数据库,我们也可以使用关键词 JOIN 来从两个表中获取数据。)
22.SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons INNER JOIN Orders ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName
(内连接(INNER JOIN)实例 现在,我们希望列出所有人的定购。)
23.SQL UNION 操作符
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
(SELECT E_Name FROM Employees_China UNION SELECT E_Name FRO Employees_USA)[列出所有在中国和美国的不同的雇员名:]
(SELECT E_Name FROM Employees_China UNION ALL SELECT E_Name FROM Employees_USA[列出在中国和美国的所有的雇员:])
24.SELECT INTO 语句
SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。
SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。
(SELECT * INTO Persons_backup FROM Persons)[下面的例子会制作 "Persons" 表的备份复件:]
(SELECT * INTO Persons IN 'Backup.mdb' FROM Persons )[IN 子句可用于向另一个数据库中拷贝表:]
(SELECT LastName,FirstName INTO Persons_backup FROM Persons )[如果我们希望拷贝某些域,可以在 SELECT 语句后列出这些域:]
SQL SELECT INTO 实例 - 带有 WHERE 子句
我们也可以添加 WHERE 子句。
下面的例子通过从 "Persons" 表中提取居住在 "Beijing" 的人的信息,创建了一个带有两个列的名为 "Persons_backup" 的表:
(SELECT LastName,Firstname INTO Persons_backup FROM Persons WHERE City='Beijing' )
SQL SELECT INTO 实例 - 被连接的表
从一个以上的表中选取数据也是可以做到的。
下面的例子会创建一个名为 "Persons_Order_Backup" 的新表,其中包含了从 Persons 和 Orders 两个表中取得的信息:
(SELECT Persons.LastName,Orders.OrderNo INTO Persons_Order_Backup FROM Persons INNER JOIN Orders ON Persons.Id_P=Orders.Id_P )
25.创建表
CREATE TABLE Persons
(
Id_P int not null,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
26.1.(CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), UNIQUE (Id_P) ))[下面的 SQL 在 "Persons" 表创建时在 "Id_P" 列创建 UNIQUE 约束:]
26.2.CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
)
[如果需要命名 UNIQUE 约束,以及为多个列定义 UNIQUE 约束,请使用下面的 SQL 语法:]
27.SELECT SUM(column_name) FROM table_name[SUM 函数返回数值列的总数(总额)]
(SELECT SUM(OrderPrice) AS OrderTotal FROM Orders)[OrderTotal 总数字段]
28.SELECT AVG(OrderPrice) AS OrderAverage FROM Orders[我们计算 "OrderPrice" 字段的平均值。]
29.SELECT Customer FROM Orders
WHERE OrderPrice>(SELECT AVG(OrderPrice) FROM Orders)
[我们希望找到 OrderPrice 值高于 OrderPrice 平均值的客户。]
30.SELECT FIRST(OrderPrice) AS FirstOrderPrice FROM Orders[我们希望查找 "OrderPrice" 列的第一个值。]
31.SELECT MAX(OrderPrice) AS LargestOrderPrice FROM Orders[最大值 min 最小值]
0 0