常用數據庫操作
create database 數據庫名; //新建數據庫
drop database 庫名; //刪除數據庫
use 數據庫名; //打開數據庫
source d:/mysql.sql; //導入.sql文件命令(例D:/mysql.sql):
show databases; //顯示數據庫列表
定義基本表 CREATE TABLE
CREATE TABLE 表名
(列名 1 數據類型 列級完整性約束條件, /*如果沒有列級完整性約束條件,可以不寫*/
... ...
列名 n 數據類型 列級完整性約束條件,
);
/* 復制表結構 */
CREATE TABLE 副本 LIKE 原表;
/* 復制表 */
CREATE TABLE 副本 AS (SELECT * FROM 原表);
-
數據類型
數據類型 介紹 char(n) 長度為 n 的字符串型 varchar(n) 最大長度為 n 的變長字符串型 number(n) 長度為 n 的數字類型 int 整形 (4B) smallint 短整型 (2B) blgint 長整形 (8B) float 精度至少為 n 位的浮點數型 date 日期型,格式為 YYYY-MM-DD time 時間型,格式為 HH-MM-SS -
列級完整約束條件
約束條件 約束條件介紹 PRIMARY KEY 主碼,當表中只有一個主碼時,可以直接在對應的屬性標注 NOT NULL 非空,表示該列不能取空值 UNIQUE 唯一性,表示該列屬性只能取唯一值 CHECK 檢查,檢查該列是否滿足某個條件,如 check(某屬性>20)
修改&刪除基本表 ALTER TABLE
-
增加新的屬性列
ALTER TABLE 表名 ADD 新列名 數據類型 完整約束性條件; -
增加列完整性約束條件
ALTER TABLE 表名 ADD 列級完整性約束條件; -
刪除列
ALTER TABLE 表名 DROP 列名; -
刪除列的完整性約束條件
ALTER TABLE 表名 DROP CONSTRAINT 完整性約束條件; -
修改列
ALTER TABLE 表名 ALTER COLUMN 列名 數據類型; -
刪除基本表
DROP TABLE 表名;
SELECT 語句
SELECT 一般格式
SELECT [DISTINCT] 目標列表達式 /*要顯示列的屬性*/
FROM 表名/視圖名 /*要查詢的對象*/
WHERE 條件表達式 /*查詢條件*/
GROUP BY 列名 HAVING 條件表達式 /*插敘結果分組*/
ORDER BY 列名 次序; /*最終查詢結果分組*/
SELECT 目標表達式
/* 查詢指定列 */
SELECT 列名1,列名2,……,列名n FROM
/* 查詢全部列 */
SELECT * FROM 表名;
/* 查詢計算后的值 */
SELECT 表達式 FROM 表名; /*表達式可以是:列名,算術表達式,聚合函數等*/
/* 改變查詢結果的列名(列別名) */
SELECT 列名 as 列別名 FROM 表名;
/* 去除查詢結果中的重復行 */
SELECT DISTINCT 列名 FROM 表名;
常見聚合函數
| 函數名 | 說明 |
|---|---|
| COUNT() | 求組中的項數,返回int型整數 |
| MAX() | 求最大項 |
| MIN() | 求最小項 |
| SUM() | 返回表達式中所有值之和 |
| AVG() | 求組中值的平均值 |
注:當使用聚合函數式,都跳過空值,只處理非空值;聚合函數只能由于SELECT語句和GROUP BY中的HAVING字句。
WHERE 條件表達式
1. 比較大小
常用比較運算符:= < > <= >= !=(或<>) !> !<。
常用邏輯預算符:邏輯與:AND(&&) 邏輯或:OR(||) 邏輯非:NOT(!) 邏輯異或:XOR。
2. 確定集合
WHERE 列名 IN (子查詢 或 表達式1,……,表達式n);
3. 字符串匹配
通配符:用來求一些有特殊條件的字符串
%:表示任意長度的字符串。 _:表示單個字符(注:在 ASCII 碼表中,一個漢字表示兩個字符)。
轉義字符:字符串中緊跟在轉義字符%或_不在具有原本含義;一般采用\,例如:\%。
INSERT | UPDATE | DELETE 語句
/* 插入數據 */
INSERT INTO 表名 (列名1,列名2,……,列名n) VALUES (常量1,常量2,……,常量n);
/* 修改數據 */
UPDATE 表名 SET 列名1=表達式1,列名2=表達式2,……,列名n=列名n WHERE 條件表達式;
/* 刪除數據*/
DELETE FROM 表名 WHERE 條件表達式;
VIEW 視圖
/* 定義視圖 */
CREATE VIEW 視圖名 (列名1,列名2,……,列名n) /*若省略列名,則有子查詢的目標字段組成*/
AS SELECT子查詢
WITH CHECK OPTION; /*若添加該句,則表示對視圖進行增刪改時要滿足子查詢中的條件表達式*/
/* 刪除視圖 */
DROP VIEW 視圖名 CASCADE; /*若使用CASCADE,z則將把該視圖導出的視圖一起刪除*/