SQL Server SQL Server對大小寫不敏感,每條語句末端使用分號。 1.SQL命令 SELECT 從數據中提取數據 UPDATE 更新數據中的數據 DELETE 從資料庫中刪除數據 INSERT INTO 向資料庫中插入新數據 CREATE DATABASE 創建新資料庫 ALTER ...
SQL Server對大小寫不敏感,每條語句末端使用分號。
1.SQL命令
-
SELECT 從數據中提取數據
-
-
DELETE 從資料庫中刪除數據
-
INSERT INTO 向資料庫中插入新數據
-
CREATE DATABASE 創建新資料庫
-
ALTER DATABASE 修改資料庫
-
CREATE TABLE 創建新表
-
ALTER TABLE 變更(改變)資料庫表
-
DROP TABLE 刪除表
-
CREATE INDEX 創建索引(搜索鍵)
-
DROP INDEX 刪除索引
2.語法:
-
SELECT語句 用於從資料庫中抽取數據,結果存儲在一個結果表中,稱為結果集。
-
SELECT column_name,column_name FROM table_name;(抽取指定列)
與
SELECT * FROM table_name;(抽取所有列) -
SELECT DISTINCT column_name,column_name FROM table_name;
SELECT DISTINCT語句用於返回唯一不同的值,沒有重覆項。 -
SELECT column_name,column_name FROM table_name
WHERE column_name operator value;
(WHERE子句用於過濾記錄)
WHERE子句中的運算符
-
AND & OR
-
ORDER BY 用於對結果集進行排序。
ORDER BY關鍵字用於對結果集按照一個列或者多個列進行排序,預設按照升序對記錄進行排序,如需使用降序,需要使用DESC關鍵字。
SELECT column_name,column_name FROM table_name
ORDER BY column_name,column_name ASC|DESC;
ASC 表示升序;DESC 表示降序;
-
INSERT INTO用於向表中插入新記錄
-
不指定要插入數據的列名,只提供被插入的值
INSERT INTO table_name
VALUES (values1,values2,values3,...);
此時需要列出插入行的每一列數據 -
指定列名及插入的值
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
-
UPDATE語句,用於更新表中的記錄
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
註意:如果省略WHERE語句,則將會對錶中該列所有內容賦該值。
-
DELETE語句:用於刪除表中數據
DELETE FROM table_name
WHERE some_column=some_value;
DELETE FROM table_name; 或 DELETE * FROM table_name; 在不刪除表的情況下刪除所有的行,表的結構、屬性、索引保持不變。
-
SELECT TOP語句:用於規定要返回的記錄的數目,更適用於擁有數千條記錄的大型表
LIMIT, ROWNUM
SELECT TOP number|percent column_name(s) FROM table_name;
實例: SELECT * FROM table_name LIMIT NUMBER; 表示,從“table_name”表中選取number條記錄。
-
LIKE操作符:用於在WHERE子句中搜索指定列中的指定模式
SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;
-
通配符:可用於替代字元串中的任何其他字元。與LIKE操作符一起使用
通配符 | 描述 |
---|---|
% | 替代0個或多個字元 |
_ | 替代一個字元 |
[charlist] | 字元列中的任何單一字元 |
[^charlist]或[!charlist] | 不在字元列中的任何單一字元 |
%: SELECT * FROM Websites WHERE url LIKE 'https%'; SELECT * FROM Websites WHERE url LIKE '%OO%'; _: SELECT * FROM Websites WHERE name LIKE '_oogle'; SELECT * FROM Websites WHERE name LIKE 'G_o_le'; [charlist]: SELECT * FROM Websites WHERE name REGEXP '^[GFs]'; 選取name以“G”、“F”或“s”開始的所有網站 使用REGEXP或NOT REGEXP運算符(或RLIKE和NOT RLIKE)來操作正則表達式。 SELECT * FROM Websites WHERE name REGEXP '^[A-H]'; 選取 name 以 A 到 H 字母開頭的網站 [^charlist]或[!charlist]: SELECT * FROM Websites WHERE name REGEXP '^[^A-H]'; 選取 name 不以 A 到 H 字母開頭的網站.
-
IN操作符
SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...);
-
BETWEEN操作符
BETWEEN操作符選取介於兩個值之間的數據範圍內的值,這些值可以是數值、文本或者日期。
-
BETWEEN
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;
-
NOT BETWEEN
如需要顯示不在範圍內的數據,使用NOT BETWEEN:
SELECT column_name(s) FROM table_name WHERE column_name NOT BETWEEN value1 and value2;
-
帶有IN的BETWEEN操作符實例
SELECT column_name(s) FROM table_name WHERE (column_name BETWEEN value1 and value2) AND column_name IN ('value1', 'value2');
帶有文本值的需要在文本值上加上單引號' '。
-
-
SQL別名
通過使用SQL,可以為表名稱或列名稱指定別名。基本上,創建別名是為了讓列名稱的可讀性更強。
-
列的SQL別名語法
SELECT column_name1 AS alias_name,column_name2 AS alias_name FROM table_name;
可以把多個列合起來作為一個列使用別名語法
SELECT CONCAT(column_name1,','column_name2,',',column_name3) AS alias_name FROM table_name;
-
表的SQL別名語法
SELECT column_name(s) FROM table_name AS alias_name;
-
在以下情況中,使用別名用處更大:
-
在查詢中涉及超過一個表
-
在查詢中使用了函數
-
列名稱很長或者可讀性差
-
需要把兩個列或者多個列結合在一起
-
-
-
SQL連接(JOIN)
SQL JOIN用於把來自兩個或多個表的行結合起來,基於這些表