SQL 指令主要分為三大類:
CREATE DATABASE database_name;
DROP DATABASE dbname;
USE master;
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat';
BACKUP DATABASE pubs TO testBack;
-- 建立新表
CREATE TABLE tabname (
col1 type1 [NOT NULL] [PRIMARY KEY],
col2 type2 [NOT NULL], ...
);
-- 依現有表建立新表(結構)
CREATE TABLE tab_new LIKE tab_old; -- MySQL
CREATE TABLE tab_new AS SELECT col1,col2 FROM tab_old WHERE 1=0; -- 通用
-- 刪除資料表
DROP TABLE tabname;
ALTER TABLE tabname ADD COLUMN col type;(註:部份資料庫不支援刪除欄位或變更型別)ALTER TABLE tabname ADD PRIMARY KEY(col); / DROP PRIMARY KEY(col);CREATE [UNIQUE] INDEX idxname ON tabname(col...); / DROP INDEX idxname;(索引不可更改,需重建)CREATE VIEW viewname AS SELECT statement;
DROP VIEW viewname;
SELECT * FROM table1 WHERE condition;
INSERT INTO table1(field1,field2) VALUES(value1,value2);
DELETE FROM table1 WHERE condition;
UPDATE table1 SET field1=value1 WHERE condition;
SELECT * FROM table1 WHERE field1 LIKE '%value1%';
SELECT * FROM table1 ORDER BY field1, field2 [DESC];
SELECT COUNT(*) AS totalcount FROM table1;
SELECT SUM(field1) AS sumvalue FROM table1;
SELECT AVG(field1) AS avgvalue FROM table1;
SELECT MAX(field1) AS maxvalue FROM table1;
SELECT MIN(field1) AS minvalue FROM table1;
UNION ALL 保留重複。EXCEPT ALL 保留重複。INTERSECT ALL 保留重複。註:參與運算的查詢欄位數、順序、型別必須一致。
SELECT a.a, a.b, a.c, b.c, b.d, b.f
FROM a LEFT OUTER JOIN b ON a.a = b.c;
SELECT * INTO b FROM a WHERE 1<>1;
-- 或
SELECT TOP 0 * INTO b FROM a;
INSERT INTO b(a, b, c) SELECT d, e, f FROM a;
INSERT INTO b(a, b, c) SELECT d, e, f FROM b IN '完整路徑\data.mdb' WHERE 條件;
SELECT a,b,c FROM a WHERE a IN (SELECT d FROM b);
SELECT a,b,c FROM a WHERE a IN (1,2,3);
DELETE FROM table1
WHERE NOT EXISTS (SELECT * FROM table2 WHERE table1.field1 = table2.field1);
SELECT TOP 10 b.*
FROM (
SELECT TOP 20 主鍵, 排序欄位 FROM 表名 ORDER BY 排序欄位 DESC
) a, 表名 b
WHERE b.主鍵 = a.主鍵
ORDER BY a.排序欄位;
SELECT TOP 10 * FROM table1 WHERE 條件;
SELECT a,b,c FROM tablename ta
WHERE a = (SELECT MAX(a) FROM tablename tb WHERE tb.b = ta.b);
(SELECT a FROM tableA)
EXCEPT (SELECT a FROM tableB)
EXCEPT (SELECT a FROM tableC);
SELECT TOP 10 * FROM tablename ORDER BY NEWID();
SELECT * FROM table1 WHERE time BETWEEN time1 AND time2;
SELECT a,b,c FROM table1 WHERE a NOT BETWEEN 值1 AND 值2;
SELECT * FROM 日程安排
WHERE DATEDIFF('minute', 開始時間, GETDATE()) > 5;