My Blog:
http://blog2.zhangchuanjun.cn/blogs/468336329Zc
MySQL數據庫開發
基礎
1.數據:描述事物特徵的符號,屬性
2.數據庫的概念:管理計算機中的數據的倉庫
2.記錄: 一系列典型的特徵
3.表:文件
4.庫:文件夾
5.數據庫管理軟件:MySQL oracle,db2,sqlserver
6.數據庫服務器:運行數據庫管理軟件的計算機
7.mysql是一個基於socket編寫的C/S架構的軟件
數據庫管理軟件
分類
關係型:sqllite db2,oracle sqlserver. MySQL
就是一個個表結構組成的,表結構就是由一些字段(屬性)+約束條件+數據類型組成的
非關係型:mongdb redis
沒有表的結構,
存儲方式
關係型:二維表的形式
非關係型:key:value
sql(Structed query Language)結構化查詢語言
之所以我們需要數據庫管理數據,是因爲我們可以通過結構化的語言,去查詢我們想要的數據。
sql又分成幾類:
1.數據查詢語言DQL(data query language)
數據查詢語言DQL基本結構是由SELECT子句,FROM子句,WHERE 子句組成的查詢塊:
SELECT <字段名錶> FROM <表或視圖名> WHERE <查詢條件>
2.數據操縱語言DML(data Manage language)
對數據進行增刪改
3.數據定義語言DDL(data define languuage)
操作對象 數據庫,表,視圖
4.數據控制語言DCL(data control language)
數據庫操縱事務發生的時間及效果,對數據庫實行監視等。如:
-
GRANT:授權。
-
ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一點。
回滾—ROLLBACK 回滾命令使數據庫狀態回到上次最後提交的狀態。其格式爲:
SQL>ROLLBACK; -
COMMIT [WORK]:提交。
在數據庫的插入、刪除和修改操作時,只有當事務在提交到數據 庫時纔算完成。
DDL數據定義語言
CURD操作
1)操作數據庫:
增加(CREATE):
(1)創建一個數據庫: CREATE database db1;
刪除(DELETE):
(1)刪除一個數據庫:DROP database db1;
修改(UPDATE):
(1)修改數據庫設置其編碼位utf8:ALTER database db1 character set utf8
查詢數據庫(Retrieve):
(1)查詢所有數據庫: show databases;
(2)查詢剛創建的數據庫:show create database db1;
2)操作表
與操作數據庫是一樣的,將database改爲table即可。
安裝
1.linux版本
2.windows版本
安裝方式:圖形化指導安裝,命令形式安裝
選擇版本:5.5 ,5.6,5.7 儘量不安裝8版本的,坑
官網:https://dev.mysql.com/downloads/installer/
基本是點默認。
mysql啓動登錄
1.win+R 打開搜索框 輸入cmd (這只是普通用戶登錄打開cmd與上述cmd打開方式不同)
2.然後輸入 mysql
3.然後輸入密碼 (root用戶默認沒密碼直接回車)
密碼設置
一開始沒有設置密碼所以需要設置
mysql密碼的設置
win+Q 搜索cmd 選中命令提示符右擊管理員登錄。
輸入指令:mysqladmin -uroot -p password “123456”
上述命令參數說明:-u 指用戶 -p指密碼
上述指令意思:以root用戶登錄 設置密碼爲123456
修改密碼指令:mysqladmin -uroot -p123456 password “123abc”
上述指令意思:以root用戶登錄將密碼123456修改爲123abc
加入密碼忘記怎麼辦?
WIndows下
1.徹底刪除mysql(暴力)
自行百度
2.繞開權限表登錄(合理)
繞開權限表登錄,然後進入到mysql之後,設置密碼
(1)繞開權限表:
管理員進入cmd:
輸入指令:
停止mysql系統服務:net stop MySQL
繞過權限表:mysqld --skip -grant-tables
(2)之後打開一個新的cmd管理員身份登錄 mysql
輸入指令: mysql 回車就能直接登錄進入mysql
輸入指令通過修改數據庫中的表設置密碼:(登錄進mysql後每一條指令輸完後要加分號,表示該指令結尾)
update mysql.user set password=password(‘123456’) where root and host=“localhost”;
爲什麼不直接password=”123456“呢 而用password=password(‘123456’)這是因爲放入到數據庫中的密碼不能是明文的,而是要加密的。所以使用他自帶的函數password()
刷新權限:flush privileges;
(3)殺死繞開權限表的進程,這樣我們才能以正常方式登錄
管理員身份進入cmd
輸入指令:tasklist |findstr mysql 查詢mysql進程
殺死進程輸入指令:taskkill /F /pid 32312
上述指令參數說明: /F 表示強制 /pid表示進程號 後面32312是tasklist |findstr mysql查詢得到的進程號
(4)啓動mysql服務
進入cmd 輸入:net start MySQL
(5)mysql -uroot -p 再輸入密碼就可以進入了
查看數據庫文件存放的物理位置
show global variables like “%datadir%”;
sql(structed query language)結構化查詢語言
操作數據庫(文件夾)
(記住幾個關鍵字就可以了)
-
增
create database db1 charset utf8;
-
刪除
drop database db1;
-
改
alter datbase charset gbk;
-
查
show databases;(顯示數據庫有哪些)
show create database db1;(查看當前創建的數據庫db1)
操作表(文件)
選擇數據庫
切換到某個文件夾
use db1;
-
增加
create tables;
-
刪除
-
改
-
查
操作內容(表內的內容)
-
增
insert tb(id,name)values(1,‘zc’),(2,‘ls’);
-
刪
delete from tb where id=1;
-
改
update *from tb where id=1;
-
查
select *from tb;
這些都是簡單的DML語言,數據庫操操作語言
DCL數據庫控制語言 比如控制訪問權限grant
DDL數據庫定義語言 比如create drop show
表操作
存儲引擎的介紹
什麼是存儲引擎?
create table t1(id int)engine=innnodb;
就是控制管理表的類型,不同的引擎對於表的類型是有不同定義的,存儲引擎幫助管理存儲在數據庫中的數據
表的增刪該查
數據類型
完整性的約束
數據操作
_