《MySQL 基礎課程》筆記整理(基礎篇)
一、嘗試MySQL
1.打開MySQL
# 啟動MySQL服務
sudo service mysql start
# 使用 root 用戶登錄,這里密碼為空,直接回車登錄
mysql -u root
window cmd 登錄
mysql -u root -p
2.查看數據庫:
show databases;
-- 改數據庫名
rename database oldname to newname;
-- 刪除數據庫
drop database dname;
3.連接使用某個數據庫:
use <數據庫名>
4.查看表:
SHOW TABLES;
5.退出
exit 或 quit
二、創建數據庫并插入數據
1.新建數據庫
CREATE DATABASE <數據庫名字>;
2.新建數據表
CREATE TABLE <表名>
(
列名a 數據類型(數據長度),
列名b 數據類型(數據長度),
列名c 數據類型(數據長度)
);
3.查看表內容
SELECT * FROM <表名>;
4.向表中插入數據
INSERT INTO 表名(列名a,列名b,列名c)
VALUES(值1,值2,值3);
批量插入:
-- mysql
INSERT INTO table (field1,field2,field3) VALUES ('a',"b","c"), ('a',"b","c"),('a',"b","c");
-- oracle
INSERT INTO "database"."table" (field1,field2)
SELECT 'A','B' FROM dual
UNION SELECT 'C','D' FROM dual;
三、SQL的約束
1.約束分類
? 約束是一種限制,它通過對表的行或列的數據做出限制,來確定表的數據的完整性、唯一性。
| 主鍵 | 默認值 | 唯一 | 外鍵 | 非空 |
|---|---|---|---|---|
| PRIMARY KEY | DEFAULT | UNIQUE | FOREIGN KEY | NOT NULL |
| 用于約束表中的一行,作為這一行的標識符,主鍵不能重復且不能為空;復合主鍵 | 唯一不重復 | 保證數據完整性,也能表現表之間的關系,每個外鍵必須REFERENCES(參考)另一個表的主鍵 |
四、SELECT 語句詳解
1.基本SELECT語句
SELECT 列名 FROM 表名 WHERE 限制條件;
2.數學符號條件
=,<,>,>=,<=,<>
3."AND" 與 "OR"
4.IN 和 NOT IN
- IN: 在 或 不在 某個范圍內
- NOT IN: 在也不在 某個范圍內
5.通配符
- 關鍵字 LIKE
- 兩個通配符:_ (代表一個未指定字符)和 % (代表不定個未指定字符)
-- 只記得電話號碼前五位
SELECT name,phone FROM employee WHERE phone LIKE '1347_ _ _ _ _ _ _';
-- 只記得名字首字母,卻不知道長度
SELECT name,phone FROM employee WHERE name LIKE 'L%';
6.對結果排序
ORDER BY
-- 默認升序;關鍵詞:ASC(升序),DESC(降序)
SELECT name,salary FROM employee ORDER BY salary DESC;
7.SQL內置函數算
COUNT、SUM、AVG、MAX、MIN
8.子查詢
9.連接查詢
五、數據庫及表的修改和刪除
1.刪除數據庫
DROP DATABASE 數據庫名
2.重命名表
RENAME TABLE 原名 TO 新名字;
ALTER TABLE 原名 RENAME 新名;
ALTER TABLE 原名 RENAME TO 新名;
3.刪除表
DROP TABLE 表名;
4.對列的修改(即對表的結構修改)
-- 1)增加一列
ALTER TABLE 表名 ADD COLUMN 列名 數據類型 約束;
-- 或:
ALTER TABLE 表名 ADD 列名 數據類型 約束;
-- 2)刪除一列
ALTER TABLE 表名 DROP COLUMN 列名;
-- 或:
ALTER TABLE 表名 DROP 列名;
-- 3)重命名列 (這里數據類型不能省略,否則失敗)
ALTER TABLE 表名 CHANGE 原列名 新列名 數據類型 約束;
-- 4)改變數據類型
-- 也可以使用CHANGE
-- 提醒:修改數據類型可能會導致數據丟失
ALTER TABLE 表名 MODIFY 列名 新數據類型;
5.對表內容的修改
-- 1)修改表中某個值
UPDATE 表名 SET 列1=值1,列2=值2 WHERE 條件;
-- 2)刪除一行記錄
DELETE FROM 表名 WHERE 條件;
六、其他基本操作
1.索引
? 作用相當于書的目錄;
? 通過索引值可以大大加快查詢速度
-- 對表中某個列建立索引
ALTER TABLE 表名 ADD INDEX 索引名 (列名);
-- 或
CREATE INDEX 索引名 ON 表名 (列名);
-- 查看索引
SHOW INDEX FROM 表名;
2.視圖
? 視圖是從一個或多個表中導出來的,是虛擬的表 ,可以使用戶不用看到整個數據庫中的表,而只關心對自己有用的數據
-- 創建視圖
CREATE VIEW 視圖名(列a,列b,列c) AS SELECT 列1,列2,列3 FROM 表名;
3.導入
? 把一個文件里的數據保存進一張表
LOAD DATA INFILE '文件路徑' INTO TABLE 表名;
4.導出
SELECT 列1,列2 INTO OUTFILE '文件路徑和文件名' FROM 表名;
5.備份
> 備份與導出的區別:導出只是導出數據;而備份是備份數據庫的結構(包括數據、約束、索引、視圖等)
? mysqldump是MySQL用于備份數據庫的實用程序,它主要產生一個SQL腳本文件,其中包含從頭重新創建數據庫所必需的命令CREATE TABLE INSERT等
mysqldump -u root 數據庫名>備份文件名; #備份整個數據庫
mysqldump -u root 數據庫名 表名>備份文件名; #備份整個表
6.恢復
source
(不定期更新)

實驗樓學習《MySQL 基礎課程》的筆記整理,(好記性不如爛筆頭)
嘗試MySQL
創建數據庫并插入數據
SQL約束
SELECT語句詳解
數據庫表的修改和刪除
浙公網安備 33010602011771號