1. 程式人生 > >資料庫1 基礎介紹 待改

資料庫1 基礎介紹 待改

1. 什麼是資料庫
存放資料的倉庫
mysql一種DBMS
資料庫是什麼,本質上就是一套C/S的socket軟體
1.1 已學習的檔案操作的缺陷
1.IO操作 效率問題
2.多使用者競爭資料
3.網路訪問
4.使用者的驗證

為什麼使用mysql : 免費開源 能夠支援中小企業使用

1.2 常見資料庫:
關係型:資料之間存在某種關聯關係
oracle :
目前最好的關係型資料庫,體現在使用者管理,分散式
商業用途收費
mysql :
免費開源,功能支援沒有oracle強 但是足以滿足中小企業使用
先後被 sun 和 oracle 收購
mysql創始人wedebius 擔心 mysql會閉源 於是另外寫marriaDB
marriaDB和mysql 使用方法一模一樣
sqlServer :
屬於微軟生態鏈,需要和windows配合使用
DB2 :
IBM開發的大型關係資料庫 ,收費的 通常與硬體捆綁銷售

非關係型: 資料 以key_value的形式來儲存 資料存在記憶體中 速度快
mongoDB :
radis :
memercach :



2.資料庫的相關概念
age=1
一個變數 無法描述清楚資料
稱之為欄位

age=18,name=Jack,genger=man
一堆變數在一起,可以描述清楚資料
稱之為一條記錄 對應著檔案中的一行

檔案需要分門別類 每個檔案儲存不同的資料
一個檔案稱之為表
檔案越來越多 得分檔案加
一個資料夾稱之為庫

資料庫中包含的所有內容
欄位(列)(單個數據)
記錄 (一個完整資料)
表 (檔案)
庫 (資料夾)
DBMS 資料庫管理系統
資料庫伺服器
一個庫可以包含多個表 一個表可以包含多條記錄 一條記錄中可以有多個欄位



3.安裝資料庫與配置使用環境
cmd中輸入mysql的檔案路徑bin
mysql _P3306 _uroot _p(後面加密碼 無不輸入)
1.帶介面的 傻瓜式安裝 需要記住密碼
2.綠色解壓版
1. 5.7以後的版本需要先初始化 mysqld __initialize-insecure
2. 啟動需要先進入安裝目錄 比較麻煩 需要新增到環境變數
開啟環境變數 將mysql安裝目錄下的bin加入path變數
3. 將mysqld 加到windows 的系統服務





4.修改綠色版的預設密碼
知道初始密碼:
啟動:需要先登陸成功tasklist |findstr mysqld
登陸:net start mysql
5.6修改密碼:mysql>update mysql.user set password=password("admin")where user="root"and host="localhost"
5.7中的話 mysql>update mysql.user set authentication_string=password("admin")where user="root"and host="localhost"
停止:net stop mysql
強制終止: taskkill | f | pid | 9990

破解密碼,當忘記密碼時 無法登陸 也就不能執行update語句
思路:啟動伺服器時 控制它不要載入授權表
1. 跳過授權表登陸 mysqld __skip__grant__tables
2. 無密碼登陸伺服器
3. 在5.7中的話 mysql>update mysql.user set authentication_string=password("admin")where user="root"and host="localhost"
4. 重啟伺服器



mysqld 直接執行伺服器程式
mysqld __skip_ grant_tables 跳過授權表 用於重置密碼
tasklist|findstr mysqld taskkill /f /pid 結束伺服器程式
mysql 執行客戶端程式 _u使用者名稱 _p密碼 _h主機地址 _p埠號
mysqld__install 將mysqld註冊當windows服務中 在服務中叫MySQL
windows就是綁定了一個exe程式

sc delete mysql 刪除windows服務

show databases : 檢視資料庫
exit :退出客戶端
desc :查看錶結構
mysqld --install 建立windows服務

1.需要先登陸成功才可以修改密碼
5.6修改密碼:mysql>update mysql.user set password=password("admin")where user="root"and host="localhost"
5.7中的話 mysql>update mysql.user set authentication_string=password("admin")where user="root"and host="localhost"

2.方式2 不需要登陸 需要知道舊的密碼
mysqlasmin -u(root舊密碼) -poot password("xxx")




5.簡單的sql語句
針對庫的相關操作
增:create database db1(庫名);建立資料庫
刪:drop database db1(庫名) 刪除資料庫
改:alter database db1(庫名) 要改的屬性名稱
alter database db1(庫名)DEFAULT CHARACTER SET utf8;
alter database db1(庫名)CHARSET utf8;
注意:在mysql中 utf-8 不能帶由- 需要寫成utf8
查:show database 檢視所有資料庫
show create database db1(庫名);檢視建庫的語句
desc xx(表名)只能查看錶


命名規範:
1.不能使用純數字
2.可以是數字 字母 下劃線組合
3.可以下劃線開頭
4.不能是關鍵字 如creata
大致和python相同
不區分大小寫



表相關的操作
增 :在建表時要明確資料庫:
use db1(欄位名稱);
create table 表名稱(欄位名 型別(長度),....)
create table dog(nikename char(10),age int)
#建立時同時指定和資料庫
create table 庫名稱.表名稱(欄位名 型別(長度),.....)

刪 :drop table 表名;

改 :alter table 表名稱 drop |change |modify |add
drop: 欄位名稱
change: 舊的欄位名稱 新的欄位名稱 新的型別
modify: 欄位名 新的型別
add: 欄位名稱 型別
重命名錶:
raname 酒標名稱 to 新表名稱

修改表的屬性:
alter table 表明 屬性名 值;
alter table dogtable DEFAULT CHARSET gbk;

查 :show tables; 檢視所有表
desc 表名稱; 查看錶結構
show create table 表名;查建表語句



記錄相關操作:
增:inert into 表名 values(值1,值2....)
刪:delete from 表名 where 欄位名稱=值
沒有條件的話就刪除全部資料
改:update 表名 set 欄位名=新的值 where 欄位名稱=值
沒有條件的話就全部修改
查:select *from 表名;*表示萬用字元 檢視所有欄位
select 欄位名稱1 ,欄位名2......from 表明;






6. 修改預設的編碼:
\s 檢視配置資訊
配置檔案放在安裝路徑根目錄中 就是和bin同級 名稱必須叫 my.ini
#客戶端的配置
[client]
#mysql這個客戶端的配置
[mysql]
user=root
password=root
default-character-set=utf8
#伺服器端的配置
[mysqld]
character-set-server=utf8












7. 5.6與5.7的區別
1. 5.7需要初始化
2. 5.6遊客模式 沒有密碼可以登陸 但是無法操作資料
只能看到 information_schema mysql
3. 5.7中data資料存放目錄 是由初始化時決定的
帶介面的 在C:\ProgramData中
不帶介面的就在安裝目錄中
5.6就在安裝目錄中
4. 密碼儲存欄位名 在5.6中時用password 在5.7中時用authentication_string




8. 資料庫的引擎 待補充: