Oracle/Sql高级篇
1.TOP 子句 TOP 子句用于规定要返回的记录的数目。 对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。 SELECT TOP number|percent column_name(s) FROM table_name 例如:SELECT TOP 2 * FROM Persons
2.LIKE 操作符 LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。 SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern 例:SELECT * FROM PersonsWHERE City NOT LIKE ‘%lon%’ SELECT * FROM PersonsWHERE City NOT LIKE ‘%lon’ SELECT * FROM PersonsWHERE City NOT LIKE ‘lon%’
3.SQL 通配符 在搜索
数据库中的数据时,SQL 通配符可以替代一个或多个字符。 SQL 通配符必须与 LIKE 运算符一起使用。 通配符
描述 %
替代一个或多个字符 _
仅替代一个字符 [charlist]
字符列中的任何单一字符 [^charlist] 或者 [!charlist] 不在字符列中的任何单一字符 例:SELECT * FROM PersonsWHERE FirstName LIKE ‘_eorge’ SELECT * FROM PersonsWHERE City LIKE ‘[ALN]%’
4.IN 操作符 IN 操作符允许我们在 WHERE 子句中规定多个值。 SELECT column_name(s)FROM table_nameWHERE column_name IN (value1,value2,…) 例:SELECT * FROM PersonsWHERE LastName IN (‘Adams’,’Carter’)
5.BETWEEN 操作符 操作符 BETWEEN … AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。 SQL BETWEEN 语法 SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2 例:SELECT * FROM PersonsWHERE LastName BETWEEN ‘Adams’ AND ‘Carter’ 6
.Alias 通过使用 SQL,可以为列名称和表名称指定别名(Alias)。 表的 SQL Alias 语法 SELECT column_name(s) FROM table_name AS alias_name 列的 SQL Alias 语法 SELECT column_name AS alias_name FROM table_name 例 :SELECT po.OrderID, p.LastName, p.FirstNameFROM Persons AS p, Product_Orders AS poWHERE p.LastName=’Adams’ AND p.FirstName=’John’
7.Join 和 Key 有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。 数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。 例子: SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM Persons, OrdersWHERE Persons.Id_P = Orders.Id_P 或者 SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM PersonsINNER JOIN OrdersON Persons.Id_P = Orders.Id_PORDER order BY Persons.LastName
8.SQL INNER JOIN 关键字
在表中存在至少一个匹配时,INNER JOIN 关键字返回行。 INNER JOIN 关键字语法 SELECT column_name(s) FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name 注释:INNER JOIN 与 JOIN 是相同的。
9.SQL LEFT JOIN 关键字
LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。 LEFT JOIN 关键字语法 SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name
10.SQL RIGHT JOIN 关键字
RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。 RIGHT JOIN 关键字语法 SELECT column_name(s) FROM table_name1 RIGHT JOIN table_name2 ON table_name1.column_name=table_name2.column_name 注释:在某些数据库中, RIGHT JOIN 称为 RIGHT OUTER JOIN。
11.SQL FULL JOIN 关键字
只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。 FULL JOIN 关键字语法 SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2.column_name 注释:在某些数据库中, FULL JOIN 称为 FULL OUTER JOIN。
12. SQL UNION 操作符
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意,
UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。 SQL UNION 语法 SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2
注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。 SQL UNION ALL 语法 SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2
另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。 13.
SELECT INTO 语句
SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。 SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。 SQL SELECT INTO 语法 您可以把所有的列插入新表: SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename 或者只把希望的列插入新表: SELECT column_name(s) INTO new_table_name [IN externaldatabase] FROM old_tablename
14.CREATE DATABASE 语句 CREATE DATABASE 用于创建数据库。 SQL CREATE DATABASE 语法
CREATE DATABASE database_name 15.CREATE TABLE 语句
CREATE TABLE 语句用于创建数据库中的表。 SQL CREATE TABLE 语法
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
….
) 16.SQL 约束 约束用于限制加入表的数据的类型。 可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。 我们将主要探讨以下几种约束:
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
DEFAULT 17.SQL NOT NULL 约束 NOT NULL 约束强制列不接受 NULL 值。 NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。 下面的 SQL 语句强制 “Id_P” 列和 “LastName” 列不接受 NULL 值: CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) )
18.SQL UNIQUE 约束 UNIQUE 约束唯一标识数据库表中的每条记录。
UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。 PRIMARY KEY 拥有自动定义的 UNIQUE 约束。
请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。 例: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))
19.SQL PRIMARY KEY 约束 PRIMARY KEY 约束唯一标识数据库表中的每条记录。
主键必须包含唯一的值。
主键列不能包含 NULL 值。
每个表都应该有一个主键,并且每个表只能有一个主键。 CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), PRIMARY KEY (Id_P) )