TOP 子句用于规定要返回的记录的数目数据库
SELECT column_name(s) FROM table_name WHERE ROWNUM <= number服务器
LIKE 操做符用于在 WHERE 子句中搜索列中的指定模式函数
SELECT column_name(s) FROM table_name WHERE column_name LIKE patternspa
提示:"%" 可用于定义通配符(模式中缺乏的字母)。对象
在搜索数据库中的数据时,SQL 通配符能够替代一个或多个字符。索引
SQL 通配符必须与 LIKE 运算符一块儿使用。事务
% 替代一个或多个字符rem
_ 仅替代一个字符it
[charlist] 字符列中的任何单一字符io
[^charlist]
或者
[!charlist] 不在字符列中的任何单一字符
IN 操做符容许咱们在 WHERE 子句中规定多个值。
SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...)
操做符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值能够是数值、文本或者日期。
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2
经过使用 SQL,能够为列名称和表名称指定别名(Alias)。
别名使查询程序更易阅读和书写。
SELECT column_name(s) FROM table_name AS alias_name(表)
SELECT column_name AS alias_name FROM table_name(列)
例:SELECT po.OrderID, p.LastName, p.FirstName
FROM Persons AS p, Product_Orders AS po
WHERE p.LastName='Adams' AND p.FirstName='John'
用于根据两个或多个表中的列之间的关系,从这些表中查询数据
JOIN: 若是表中有至少一个匹配,则返回行
LEFT JOIN: 即便右表中没有匹配,也从左表返回全部的行
RIGHT JOIN: 即便左表中没有匹配,也从右表返回全部的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
INNER JOIN:在表中存在至少一个匹配时,INNER JOIN 关键字返回行。
注释:INNER JOIN 与 JOIN 是相同的。
注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。
注释:在某些数据库中, RIGHT JOIN 称为 RIGHT OUTER JOIN。
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName
SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
UNION 操做符用于合并两个或多个 SELECT 语句的结果集。
UNION 内部的 SELECT 语句必须拥有相同数量的列
列也必须拥有类似的数据类型。
每条 SELECT 语句中的列的顺序必须相同。
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
注释:默认地,UNION 操做符选取不一样的值。若是容许重复的值,请使用 UNION ALL。
SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2
另外,UNION 结果集中的列名老是等于 UNION 中第一个 SELECT 语句中的列名。
由两个SELECT语句返回相同的行(惟一)
SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition]
INTERSECT
SELECT column1 [, column2 ] FROM table1 [, table2 ][WHERE condition]
合并两个SELECT语句,并从那些没有被第二个SELECT语句返回的第一个SELECT语句返回行
SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition]
EXCEPT
SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition]
可用于建立表的备份复件。
SELECT INTO 语句从一个表中选取数据,而后把数据插入另外一个表中。
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
ALTER TABLE CUSTOMERS MODIFY SALARY DECIMAL (18, 2) NOT NULL;
DEFAULT:
ALTER TABLE CUSTOMERS MODIFY SALARY DECIMAL (18, 2) DEFAULT 5000.00;
ALTER TABLE CUSTOMERS ALTER COLUMN SALARY DROP DEFAULT;
UNIQUE KEY:
ALTER TABLE CUSTOMERS MODIFY AGE INT NOT NULL UNIQUE;
ALTER TABLE CUSTOMERS DROP INDEX myUniqueConstraint;
PRIMARY KEY:
ALTER TABLE CUSTOMERS ADD CONSTRAINT PK_CUSTID PRIMARY KEY (ID, NAME);
ALTER TABLE CUSTOMERS DROP PRIMARY KEY ;
FOREIGN KEY:
ALTER TABLE ORDERS ADD FOREIGN KEY (Customer_ID) REFERENCES CUSTOMERS (ID);
ALTER TABLE ORDERS DROP FOREIGN KEY;
CHECK:
ALTER TABLE CUSTOMERS MODIFY AGE INT NOT NULL CHECK (AGE >= 18 );
ALTER TABLE CUSTOMERS DROP CONSTRAINT myCheckConstraint;
有助于加快SELECT和WHERE子句查询,但它会减慢数据输入,使用UPDATE和INSERT语句。索引可建立或删除,但对数据不会有影响。
单列索引
CREATE INDEX 语句用于在表中建立索引。
惟一索引
CREATE [UNIQUE] INDEX index_name ON table_name (column_name)
组合索引(若是有频繁使用WHERE子句做为过滤器中的两个或多个列,组合索引将是最好的选择。 )
CREATE INDEX index_name on table_name (column1, column2);
隐式索引
隐式索引是自动由数据库服务器建立对象时建立的索引。索引是主键约束和惟一性约束自动建立。
撤销索引
DROP INDEX index_name
避免使用索引:
索引不该该用在小型表上。
有频繁的,大批量更新或插入操做的表。
索引不该该用于对包含大量NULL值的列。
列常常操纵不该该被索引。
ALTER TABLE 语句用于在已有的表中添加、修改或删除列。
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
+SQL truncate table命令 (截断)
用于删除现有表中完整的数据。
TRUNCATE TABLE table_name;
+SQL AUTO INCREMENT 字段
经过 sequence 对建立 auto-increment 字段(该对象生成数字序列)。
CREATE SEQUENCE seq_person MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 10
INSERT INTO Persons (P_Id,FirstName,LastName) VALUES (seq_person.nextval,'Lars','Monsen')
+SQL VIEW(视图)
在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。
视图无非是存储在数据库中的相关名称的SQL语句。
视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。咱们能够向视图添加 SQL 函数、WHERE 以及 JOIN 语句,咱们也能够提交数据,就像这些来自于某个单一的表。
CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition
注释:视图老是显示最近的数据。每当用户查询视图时,数据库引擎经过使用 SQL 语句来重建数据。
SQL DROP VIEW Syntax DROP VIEW view_name
+事务
就是对数据库执行的工做单元。事务是完成逻辑顺序的工做,不管是在手动方式由用户或者自动地经过某种数据库程序的序列的单元。
事务具备如下四个标准属性,一般由首字母缩写ACID简称:
COMMIT:保存更改。COMMIT;
ROLLBACK:回滚更改。ROLLBACK;
SAVEPOINT:回滚事务组建立点
SAVEPOINT SAVEPOINT_NAME;
ROLLBACK TO SAVEPOINT_NAME;
RELEASE SAVEPOINT SAVEPOINT_NAME;
SET TRANSACTION:事务放置的名称。
SET TRANSACTION [ READ WRITE | READ ONLY ];