一、介紹
1.不用數據庫:使用IO流對數據進行管理
2.使用數據庫:使用SQL語句對開發的數據進行管理,能儲存上億條數據
3.MYSQL:
是流行的關系型數據庫管理系統之一,將數據保存在不同的數據表中,通過表與表之間的聯系提高訪問速度,使用SQL語言,6版本之前免費。
4.數據庫、數據表、數據的關系
MYSQL服務器中可以創建多個數據庫,每個數據庫中可以包含多張數據表,每個數據表中可以存儲多條數據記錄,客戶端通過數據庫管理系統來操作MYSQL數據庫。
5.SQL語言
①結構化查詢語言,是操作所有關系型數據庫的一種規則
②通用語法規則:
- SQL語句可以單行或多行書寫,以分號結尾
- 可使用空格和縮進來增強語句的可讀性
- MYSQL數據庫的SQL語句不區分大小寫,關鍵字建議使用大寫
- 單行注釋:--注釋內容 #注釋內容(MYSQL特有)
- 多行注釋:/*注釋內容*/
?③SQL分類
二、MYSQL的基礎操作(均在cmd(ctrl+R打開)中操作)
(一)登錄MYSQL
1.輸入:mysql -u root -p
2.回車(出現圖片的提示句)
3.在“Enter password:”后面輸入密碼
4.出現圖片的內容就說明登錄成功
(二)修改MYSQL登錄密碼
1.分別輸入兩行語句并回車(作用:忽略密碼的驗證碼):
set global validate_password_policy=0;
set global validate_password_length=1;
3.結果如圖
3如圖所示,輸入:set password=password("密碼");
(三)授予遠程連接權限
1.授權輸入:grant all privileges on *.* to 'root' @ '%' identified by '登錄密碼';
2.回車
3.刷新輸入:flush privileges;
(四)退出MYSQL
1.輸入:exit
2.回車
(五)關閉Linux系統防火墻
1.輸入:systemctl stop firewalld
2.回車
(六)重啟MYSQL服務
1.輸入:service mysqld restart
2.回車
三、DDL操作
(一)查詢和創建所有數據庫
1.查詢所有數據庫
SHOW DATABASES;
2.查詢數據庫的創建語句
SHOW CREATE DATABASE 數據庫名稱;
3.創建數據庫
CREATE DATABASE 數據庫名稱;
4.創建數據庫(判斷,如果不存在則創建)
CREATE DATABASE IF NOT EXISTS 數據庫名稱;
5.創建數據庫(指定字符集)
CREATE DATABASE 數據庫名稱 CHARACTER SET 字符集名稱;
(二)修改、刪除、使用數據庫
1.修改數據庫(修改字符集)
ALTER DATABASE 數據庫名稱 CHARACTER SET 字符集名稱 ;
2.刪除數據庫
DROP DATABASE 數據庫名稱;
3.刪除數據庫(判斷,如果存在則刪除)
DROP DATABASE IF EXISTS 數據庫名稱;
4.使用數據庫
USE 數據庫名稱;
5.查看當前使用的數據庫
SELECT DATABASE();
(三)查詢數據表
1.查詢所有的數據表
SHOW TABLES;
2.查詢表結構
DESC 表名;
3.查詢表字符集
SHOW TABLE STATUS FROM 庫名 LIKE '表名';
(四)創建數據表
CREATE TABLE 表名(
? ? ? ? 列名 數據類型 約束,
? ? ? ? 列名 數據類型 約束,
? ? ? ? ...
);
常用數據類型
(五)修改數據庫
1.修改表名
ALTER TABLE 表名 RENAME TO 新表名;
2.修改表的字符集
ALTER TABLE 表名 CHARACTER SET 字符集名稱;
3.單獨添加一列
ALTER TABLE 表名 ADD 列名 數據類型;
4.修改某列的數據類型
ALTER TABLE 表名 MODIFY 列名 新數據類型;
5.修改列名和數據類型
ALTER TABLE 表名 CHANGE 列名 新列名 新數據類型;
6.刪除某一列
ALTER TABLE 表名 DROP 列名;
(六)刪除數據表
1.刪除數據表
DROP TABLE 表名;
2.刪除數據表(判斷,如果存在則刪除)
DROP TABLE IF EXISTS 表名;
四、DML操作
(一)新增表數據
1.給指定列添加數據
INSERT INTO 表名 (列名1,列名2...)?VALUES (值1,值2);
?2.給全部列添加數據
INSERT INTO 表名 VALUES?(值1,值2...);
3.批量添加數據
INSERT INTO 表名 (列名1,列名2...) VALUES (值1,值2...),(值1,值2...),...;
注意:
列名和值的數量以及數據類型要對應,除了數字類型,其他數據類型的數據都需要加引號(單雙均可),推薦單引號。
(二)修改和刪除表數據(如不加條件,則修改所有數據)
1.修改表中的數據
UPDATE 表名 SET 列名1=值1,列名2=值2,...[WHERE 條件];
2.刪除表中的數據
DELETE FROM 表名 [WHERE 條件];
五、DQL操作
(一)查詢語法(按上到下的順序來寫)
(二) 查詢全部
1.查詢全部的表數據
SELECT * FROM 表名;
2.查詢指定字段的表數據
SELECT 列名1,列名2,... FROM 表名;
3.去除重復查詢
SELECT DISTINCT 列名1,列名2,... FROM 表名;
4.計算列的值(四則運算)
SELECT 列名1 [IFNULL(列名,0)] 運算符(+-*/) ,列名2 FROM 表名;
5.起別名查詢
SELECT 列名 AS(可省略)?別名 FROM 表名;
(三)條件查詢
1.查詢條件分類
?
2.條件查詢語法
SELECT 列名列表 FROM 表名 WHERE 條件;
(四)聚合函數查詢
1.聚合函數分類
2.聚合函數查詢語法
SELECT 函數名(列名) FROM 表名 [WHERE 條件];
(五)排序查詢
1.排序查詢語法
SELECT 列名列表 FROM [WHERE 條件] ORDER BY 列名 排序方式,列名 排序方式...;
?2.排序方式:
ASC——升序(默認)
DESC——降序
如果有多個排序條件值一樣時,才會判斷第二條件。?
(六)分組查詢
1.分組查詢語法
SELECT 列名列表 FROM 表名 [WHERE 條件] GROUP BY 分組列名 [HAVING 分組后的條件過濾] [ORDER BY 排序列名 排序方式];
(七)分頁查詢
1.分頁查詢語法
SELECT 列名列表 FROM 表名 [WHERE 條件] [GROUP BY 分組列名] [HAVING 分組后的條件過濾] [ORDER BY 排序列名 排序方式] LIMIT 當前頁數,每頁顯示的條數;?
當前頁數:(當前的頁數-1) * 每頁顯示的條數?