前置任務:MySQL的安裝與卸載
推薦使用壓縮版:https://dev.mysql.com/downloads/
1.解壓文件(解壓路徑不能出現中文)
2.在解壓目錄(安裝目錄)下:
3.修改配置文件my.ini
4. 配置環境變量將bin路徑填入系統變量Path
5. 初始化mysql
以管理員身份運行cmd
mysqld --initialize --console
記錄下初始密碼
6. 安裝mysql服務
mysqld install
刪除服務:
sc delete mysql服務名
重新打開cmd管理員命令窗口,啓動服務
net start mysql
停止服務:
net stop mysql
7.登錄mysql
mysql -uroot -p
回車完輸入臨時密碼即可
8.修改臨時密碼
ALTER USER root@localhost IDENTIFIED BY '修改後的密碼'
卸載MySQL:刪除解壓目錄即可
一、登錄解析
1.登錄命令
2.查詢系統用户及主機
3.修改root用户的主機為任意
4.刷新權限表,等價於重啓服務
5.使用IP地址遠程登錄
mysql的常見命令
二、庫操作
1.展示所有的數據庫
2.創建庫
3.切換數據庫
4.刪除數據庫
三、數據庫字符集
1.數據庫字符集包含
字符集(utf8mb4或utf8)和校驗規則(collation)
utf8mb4 和 utf: 世界通用字符集
gbk: 中文字符集
2.查看當前數據庫字符變量
3.如果需要更改字符集則使用配置文件my.ini
退出MySQL重進生效
4.查詢校驗規則
四、數據庫表操作
1.創建表
2.操作表
3.複製表
- 蠕蟲複製
一步完成法:
數據量大時使用這種方法可能會數據泄露
4.數據庫字典
tables-存放數據庫裏所有的數據表、以及每個表所在數據庫。
schemata-存放數據庫裏所有的數據庫信息
views-存放數據庫裏所有的視圖信息。
columns-存放數據庫裏所有的列信息。
triggers-存放數據庫裏所有的觸發器。
routines-存放數據庫裏所有存儲過程和函數。
key_column_usage-存放數據庫所有的主外鍵
table_constraints-存放數據庫全部約束。
statistics-存放了數據表的索引。
5.表約束
約束: 需要數據強制執行的數據校驗規則,作用: 保證數據的完整性,可以保護數據
五大類約束:
- NOT NULL 非空約束 數據字段不能為空
- UNIQUE 唯一約束 數據唯一
- PRIMARY KEY 主鍵約束 "數據的序號" 更加高效查詢
- FOREIGN KEY 外鍵約束 數據之間有關聯關係
- CHECK 檢查約束
外鍵約束
格式:constraint 約束名 foreign key 外鍵約束字段 references 主表(主
表外鍵關聯字段)
從表student數據可刪除,主表teacher數據不可刪除
約束的修改
刪除外鍵需要兩步:1.刪除外鍵約束 2.刪除外鍵索引
6.存儲引擎
MyISAM和InnoDB的區別?
1. 事務: MyISAM不支持事務
2. 存儲文件: innodb : frm、ibd MyISAM: frm、MYD、MYI
3. 數據行鎖定: MyISAM不支持
4. 全文索引: INNODB不支持,所以MYISAM做select操作速度很快
5. 外鍵約束: MyISAM不支持
兩種引擎優缺點:
INNODB:
1. 可靠性更強,或者業務要求事務時
2. 表更新和查詢相當頻繁,並且表鎖定的情況比較大
3. 如果你需要大量的修改和插入時。
MYISAM:
1. 做很多的數據計算,mysql的底層系統庫就是MyISAM
2. 修改和插入不頻繁,如果執行大量的select,MYISAM比INNODB更加適合
3. 沒有事務
7.用户和授權
創建用户:
create user "用户名"@"主機地址" identified by '密碼';
授權:
grant 權限 on 數據庫.表 to "用户名"@"主機地址";
權限:select、insert、delete、update
*.*:所有數據庫下的所有表
flush privileges;刷新權限
撤銷權限:
revoke 權限類型 on 數據庫.表 '用户名'@'主機名';
FLUSH PRIVILEGES;
刪除用户:
練習
根據以下需求完成圖書管理系統數據庫及表設計,並建庫建表,並截圖創建表的詳細信息(desc 表名),不用添加數據
1. 用户表: 字段: 姓名,用户名,密碼,電話,住址,專業及年級
2. 圖書表: 字段: 圖書名,分類,介紹,出版社,入庫時間
3. 借閲登記表: 借閲人、圖書名、借閲時間、是否歸還
用户表:
圖書表:
借閲登記表:
圖數據庫原理