SQL SELECT TOP, LIMIT, ROWNUM [TOP LIMIT ROWNUM]
SELECT TOP 子句用于指定要返回的記錄數(shù)量。優(yōu)于千條數(shù)據(jù),大量數(shù)據(jù)查詢(xún)影響性能。
SELECT TOP number|percent column_name(s) FROM table_name WHERE condition;
SELECT column_name(s) FROM table_name WHERE condition LIMIT number;
SELECT column_name(s) FROM table_name WHERE ROWNUM <= number;
WHERE子句中使用LIKE運(yùn)算符來(lái)搜索列中的指定模式 "%"->百分號(hào)表示零個(gè),一個(gè)或多個(gè)字符 "_"->下劃線(xiàn)表示單個(gè)字符 [注意]MS Access使用問(wèn)號(hào)(?)百分號(hào)和下劃線(xiàn)可組合使用
SELECT column1, column2, ... FROM table_name WHERE columnN LIKE pattern; [注意] OR AND 也可組合使用
[ charlist ] - 定義要匹配的字符的集合和范圍 [^ charlist ]或[!charlist ] - 定義不匹配字符的集合和范圍
SELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ...); [注意]允許WHERE子句中指定多個(gè)值。多個(gè)OR條件的簡(jiǎn)寫(xiě)。
BETWEEN操作符用于選取介于兩個(gè)值之間的數(shù)據(jù)范圍內(nèi)的值;值可以是數(shù)字,文本或日期,BETWEEN包括開(kāi)始和結(jié)束值。 SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2; [注意]BETWEEN 選取介于兩個(gè)值之間可能存在[不包含邊界 包含邊界 半包含邊界]
數(shù)據(jù)類(lèi)型定義了存儲(chǔ)在列中的值的類(lèi)型。 例如:CHARACTER(N) VARCHAR(N) ... [注意] 數(shù)據(jù)類(lèi)型的定義在不同的數(shù)據(jù)庫(kù)中的定義不一定相同。
關(guān)鍵詞:{ AND / OR ALTER TABLE AS (alias) BETWEEN CREATE DATABASE CREATE TABLE CREATE INDEX CREATE VIEW DELETE DROP DATABASE DROP INDEX DROP TABLE GROUP BY HAVING IN INSERT INTO INNER JOIN LEFT JOIN RIGHT JOIN FULL JOIN LIKE ORDER BY SELECT SELECT * SELECT DISTINCT SELECT INTO SELECT TOP TRUNCATE TABLE UNION UNION ALL UPDATE WHERE }
SQL JOIN 用于把來(lái)自?xún)蓚€(gè)或多個(gè)表的行結(jié)合起來(lái)。 [內(nèi)連接]INNER JOIN:如果表中有至少一個(gè)匹配,則返回行 [左連接]LEFT JOIN:即使右表中沒(méi)有匹配,也從左表返回所有的行 [右連接]RIGHT JOIN:即使左表中沒(méi)有匹配,也從右表返回所有的行 [全連接]FULL JOIN:只要其中一個(gè)表中存在匹配,則返回行
SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name; [注]內(nèi)部鏈接INNER JOIN關(guān)鍵字選擇兩個(gè)表中具有匹配值的記錄。
SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name=table2.column_name; [注]SQL左鏈接LEFT JOIN關(guān)鍵字返回左表(表1)中的所有行,即使在右表(表2)中沒(méi)有匹配。如果在正確的表中沒(méi)有匹配,結(jié)果是NULL。
SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name; [注]SQL右鏈接 RIGHT JOIN 關(guān)鍵字返回右表(table2)的所有行,即使在左表(table1)上沒(méi)有匹配。如果左表沒(méi)有匹配,則結(jié)果為NULL。
SELECT column_name(s) FROM table1 FULL OUTER JOIN table2 ON table1.column_name = table2.column_name; [注]當(dāng)左(表1)或右(表2)表記錄匹配時(shí),F(xiàn)ULL OUTER JOIN關(guān)鍵字將返回所有記錄。返回所有結(jié)果集,導(dǎo)致數(shù)據(jù)量巨大。
SELECT column_name(s) FROM table1 T1, table1 T2 WHERE condition; [注]自聯(lián)接是一種常規(guī)聯(lián)接,但表本身是連接的。“<>” 可表示自連接。
UNION運(yùn)算符用于組合兩個(gè)或更多SELECT語(yǔ)句的結(jié)果集。
SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2;
SELECT column_name(s) FROM table1 UNION ALL SELECT column_name(s) FROM table2; [限制]UNION中的每個(gè)SELECT語(yǔ)句必須具有相同的列數(shù),這些列也必須具有相似的數(shù)據(jù)類(lèi)型,每個(gè)SELECT語(yǔ)句中的列也必須以相同的順序排列。 [注意]默認(rèn)情況下,UNION 運(yùn)算符選擇一個(gè)不同的值。如果允許重復(fù)值,請(qǐng)使用 UNION ALL。
SELECT INTO 語(yǔ)句從一個(gè)表中復(fù)制數(shù)據(jù),然后將數(shù)據(jù)插入到另一個(gè)新表中。
[AS 別名]將使用SELECT語(yǔ)句中定義的列名和類(lèi)型創(chuàng)建新表。您可以使用AS子句來(lái)應(yīng)用一個(gè)新名稱(chēng)。
[創(chuàng)建空表]SELECT INTO 語(yǔ)句可以用于在另一種模式下創(chuàng)建一個(gè)新的空表。只需添加WHERE子句,使查詢(xún)返回時(shí)沒(méi)有數(shù)據(jù). SELECT * INTO newtable FROM table1 WHERE 1=0;
INSERT INTO table2 SELECT * FROM table1;
DROP INDEX index_name ON table_name
DROP INDEX table_name.index_name DB2/Oracle 的 DROP INDEX DROP INDEX index_name
ALTER TABLE table_name DROP INDEX index_name
DROP TABLE table_name
DROP DATABASE database_name
TRUNCATE TABLE table_name
CREATE DATABASE dbname;
CREATE TABLE table_name ( column_name1 data_type(size), column_name2 data_type(size), column_name3 data_type(size), .... ); [注意]其中:參數(shù)說(shuō)明 column_name 參數(shù)規(guī)定表中列的名稱(chēng)。 data_type 參數(shù)規(guī)定列的數(shù)據(jù)類(lèi)型(例如 varchar、integer、decimal、date 等等)。 size 參數(shù)規(guī)定表中列的最大長(zhǎng)度。
ALTER TABLE table_name ADD column_name datatype
ALTER TABLE table_name DROP COLUMN column_name [注意]某些數(shù)據(jù)庫(kù)不支持
ALTER TABLE table_name ALTER COLUMN column_name datatype
ALTER TABLE table_name MODIFY COLUMN column_name datatype
ID int NOT NULL AUTO_INCREMENT, PRIMARY KEY (ID)
ID int IDENTITY(1,1) PRIMARY KEY,
ID Integer PRIMARY KEY AUTOINCREMENT,
CREATE SEQUENCE seq_person MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 10 [注意]nextval函數(shù) 需在添加記錄時(shí)使用
CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition [注意]視圖總是顯示最新數(shù)據(jù)!每當(dāng)用戶(hù)查詢(xún)視圖時(shí),數(shù)據(jù)庫(kù)引擎就使用視圖的 SQL 語(yǔ)句重新構(gòu)建數(shù)據(jù)
CREATE OR REPLACE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition
DROP VIEW view_name
NOW() 返回當(dāng)前的日期和時(shí)間 CURDATE() 返回當(dāng)前的日期 CURTIME() 返回當(dāng)前的時(shí)間 DATE() 提取日期或日期/時(shí)間表達(dá)式的日期部分 EXTRACT() 返回日期/時(shí)間的單獨(dú)部分 DATE_ADD() 向日期添加指定的時(shí)間間隔 DATE_SUB() 從日期減去指定的時(shí)間間隔 DATEDIFF() 返回兩個(gè)日期之間的天數(shù) DATE_FORMAT() 用不同的格式顯示日期/時(shí)間
GETDATE() 返回當(dāng)前的日期和時(shí)間 DATEPART() 返回日期/時(shí)間的單獨(dú)部分 DATEADD() 在日期中添加或減去指定的時(shí)間間隔 DATEDIFF() 返回兩個(gè)日期之間的時(shí)間 CONVERT() 用不同的格式顯示日期/時(shí)間
[注意]使用Date時(shí),使用DATE可能會(huì)方便維護(hù)
DATE - 格式:YYYY-MM-DD DATETIME - 格式:YYYY-MM-DD HH:MM:SS TIMESTAMP - 格式:YYYY-MM-DD HH:MM:SS YEAR - 格式:YYYY 或 YY
DATE - 格式:YYYY-MM-DD DATETIME - 格式:YYYY-MM-DD HH:MM:SS SMALLDATETIME - 格式:YYYY-MM-DD HH:MM:SS TIMESTAMP - 格式:唯一的數(shù)字
NULL 空值代表丟失的未知數(shù)據(jù)。 NULL 空值無(wú)法和space[空格]或0 比較.
更多建議: