數據庫:
CREATE DATABASE 名字; //創建數據庫
SHOW DATABASES; //查看所有數據庫
SHOW CREATE DATABASE book\G; //查看創建好的數據庫的定義
DROP DATABASE IF EXISTS 名字; //刪除數據庫
USE 名字; //使用數據庫
引擎:
SHOW ENGINES; //查看引擎
SHOW VARIABLES LIKE 'storage_engine'; //查看默認引擎
數據表: 【使用前需要USE 數據庫名;】 表名不區分大小寫
CREATE TABLE SS(id INT(11),nam VARCHAR(25),salary FLOAT); //創建數據表
SHOW TABLES; //查看數據表
DESC SS; //查看表的結構
SHOW COLUMNS FROM 表名 FROM 庫名; //查看表的結構2
SHOW CREATE TABLE 表名\G; //查看表的結構3
ALTER TABLE 舊名 RENAME 新名; //修改表名
ALTER TABLE 表名 MODIFY 字段名 數據類型; //修改字段的數據類型
ALTER TABLE 表名 CHANGE 舊字段名 新字段名 新數據類型; //修改字段名
ALTER TABLE 表名 ADD 新字段名 數據類型; //添加字段
ALTER TABLE 表名 ADD 新字段名 數據類型(約束條件) [FIRST | AFTER 已存在字段名] //添加字段 放到第一個 或者已存在字段名之后
ALTER TABLE xx ADD yy VARCHAR(12) not null; //添加有完整性約束條件的字段
ALTER TABLE 表名 DROP 字段名; //刪除字段
ALTER TABLE 表名 MODIFY 字段1 數據類型 FIRSE | AFTER 字段2; //修改字段排列位置 數據類型為字段1的
ALTER TABLE 表名 ENGINE=更改后的引擎名; //更改表的存儲引擎
#可以為每一張表選不同的存儲引擎 但外鍵約束的表必須一致
ALTER TABLE 表名 DROP FOREIGN KEY 外鍵約束名; //刪除表的外鍵約束
#外鍵約束名,定義表時CONSTRAINT后的參數
DROP TABLE IF EXISTS 表1,表2....; //刪除沒有關聯的數據表
ALTER TABLE 子表 DROP FOREIGN KEY 子表中的外鍵約束名; //刪除有關聯的主表
#無法直接刪去父表 1.先刪去子,再刪父 2.取消外鍵約束,再刪父表
刪除
DELETE FROM 表名 WHERE 條件;
DELETE FROM 表名; //刪除所有記錄
TRUNCATE TABLE 表名; //直接刪除表
DROP TABLE 表名; //刪除表
更新
UPDATE 表名
SET 指定更新字段名1=更新值1,指定更新字段名2=更新值2
WHERE 條件;
舉例:
插入
INSERT INTO 要插入數據的表名 (要插入數據的哪些列) VALUES (每個列對應插入的數據);
上方
(id,name,age,info) 即要插入數據的列 可以省略
但是,需要為表的每一個字段指定值 且值的順序和數據表中字段的定義時順序相同
同時插入多條記錄時,會返回一些信息:
將查詢結果插入到表中:
INSERT INTO 表名1 (列名2)
SELECT (列名2) FROM 表名2 WHERE (條件);
MYSQL不關心返回的列名
根據列的位置進行插入
第一列對應插入表的第一列……
為表和字段取別名
- 表
表名字 AS 表別名
SELECT * FROM fruits AS O,sports AS S
WHERE O.FRUIT_NUM > 0 AND S.sport_num >2;
2.字段
列名 AS 列別名
SELECT O.FRUIT_NUM AS A , S.sport_num AS B
單表查詢
SELECT * FROM 表名; //查詢所有字段
SELECT 列名 FROM 表名; //查詢指定字段
SELECT 列名1,列名2,。。。。; //查詢多個指定字段
SELECT 列名1,列名2
FROM 表名
WHERE 條件; //查詢指定記錄
SELECT 列名1,列名2
FROM 表名
WHERE 條件 IN (100,200);
//查詢滿足指定范圍內的記錄 也可以WHERE 條件 NOT IN (100,200);
SELECT 列名1,列名2
FROM 表名
WHERE 條件 BETWEEN 100 AND 200; //查詢滿足指定范圍內的記錄 也可以WHERE 條件 NOT BETWEEN 100 AND 200;
需要使用通配符進行匹配查找,通過創建查找模式對表中的數據進行比較 ----LIKE
- 帶LIKE的字符匹配查詢
SELECT f_id,f_name
FROM fruits
WHERE f_name LIKE ‘B%’; //查找所有以b開頭的f_name
// % 匹配任意長度的字符,甚至零字符
WHERE f_name LIKE ‘_B’; //‘_’ 匹配單個字符
- 查詢空值
空值不同於0,也不同於空字符串
空值一般表示 數據未知 不適用 或 稍后添加數據
WHERE f_name IS NULL;
WHERE f_name NOT IS NULL;
- 帶AND的多條件查詢
WHERE f_name=’xx’ AND price>5;
- 帶OR的
WHERE f_name=’xx’ OR price>5;
AND的優先級高於OR
- 查詢結果不重復
SELECT DISTINCT 字段名 FROM 表名;
- 對結果排序
SELECT f_name FROM fruits ORDER BY f_name; //對指定的列數據排序【字母表順序】
SELECT f_name FROM fruits ORDER BY f_name,f_price; //多列
多列排序時:首先排序的第一列必須有相同的列值,才會對第二列排序
如果第一列數據中所有值都是唯一的,將不再對第二列進行排序
SELECT f_name FROM fruits ORDER BY f_name DESC,f_price ASC; //ASC升序,默認 DESC降序