1. 程式人生 > >Python-資料庫 基本SQL語句

Python-資料庫 基本SQL語句

1.什麼是資料庫 *****
存放資料的倉庫

資料庫中包含所有內容:
欄位(列) 一行中的某個資料
記錄 一行資料
表 檔案
庫 資料夾
DBMS 資料庫管理系統 socket軟體
資料庫伺服器 計算機
一個庫可以包含多個表 一個表可以包含多條記錄 一條記錄中有多個欄位

資料庫是什麼,本質上就是一套C/S架構得socket軟體

已學習的檔案操作的缺陷
1.IO操作 效率問題
2.多使用者競爭資料
3.網路訪問
4.使用者的驗證
2.常見的資料庫
關係型 資料之間存在某種關聯關係
主要儲存在硬碟中 容量大 速度慢
oracle
目前最好關係型資料庫,體現在使用者管理,分散式
商業用途收費
mysql
免費開源,功能支援沒有oracle強 但是足以滿足中小企業使用
先後被sun 和 oracle 收購
mysql創始人wedenius擔心 mysql會閉源 於是另起灶爐 搞了marriaDB
mariaDB和mysql 使用方法一模一樣
sqlServer
屬於微軟生態鏈,需要和windows配合使用
DB2
IBM開發的大型關係型資料庫 ,收費的,通常與硬體捆綁銷售
maria

非關係型 資料之間不存在關聯關係
容量小 速度快 以key value形式儲存
mongoDB
redis
memcache

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

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

檔案需要分門別類 每個檔案儲存不同的數
3.一個檔案稱之為表

檔案越來越多 得分資料夾
4.一個檔案稱之為庫

資料庫中包含所有內容:
欄位(列) 一行中的某個資料
記錄 一行資料
表 檔案
庫 資料夾
DBMS 資料庫管理系統 socket軟體
資料庫伺服器 計算機
一個庫可以包含多個表 一個表可以包含多條記錄 一條記錄中有多個欄位

資料庫是什麼,本質上就是一套C/S架構得socket軟體



3.安裝資料庫與配置使用環境 ***
1.程式碼介面 傻瓜式安裝 記住密碼
2.綠色解壓版
1. 5.7以後的版本需要先初始化 mysqld --initialize-insecure
2.啟動需要先進入安裝目錄 比較麻煩 需要新增到環境變數
開啟環境變數 將mysql安裝目錄下的bin加入path變數
3.將mysqld 加入到windows的系統服務啟動 services.mcs

4.綠色版修改預設密碼
修改預設密碼需要先登入成功
執行update語句直接修改 user表中的密碼
?查詢系統使用者的基礎資訊desc mysql.user;
5.7
update mysql.user set authentication_string = password("admin") where user = "root";
5.6
update mysql.user set password = password("admin") where user = "root";


修改密碼方式2 不需要登入 需要知道舊密碼
mysqladmin -uroot -p舊密碼 password "123"

破解密碼,當忘記密碼時 無法登入 也就不能值執行update語句
思路:
1.啟動伺服器時 控制它不要載入授權表
2.無密碼登入伺服器
3.執行update mysql.user set authentication_string = password("root") where user = "root"
4.重啟伺服器後更改密碼才會生效

用到的系統指令:
mysqld 直接執行伺服器程式
net start mysql 啟動mysql伺服器
net stop mysql
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服務
exit 退出客戶端



5.簡單的sql語句 *****
針對庫的相關操作

create database 庫名稱

drop database 庫名稱

alter database 庫名稱 要改的屬性名稱
alter database db1 DEFAULT CHARACTER SET utf8;
/alter database db1 CHARSET utf8;
注意 在mysql中 utf-8 不能帶- 寫成utf8

show databases檢視所有資料庫
show create databases 庫名稱 檢視建庫的語句
命名規範:
1.不能使用純數字
2.可以是數字 字母 下滑線的組合
3.可以下滑線開頭
4.不能是關鍵字 如create
大致和python相同 ,不區分 大小寫

表相關的操作

建表時要明確資料庫
use db1;
create table 表名稱(欄位名 型別(長度),....)
create table dog(nikename char(10),gender char(1),age int)
#建立時同時指定資料庫
create table 庫名稱.表名稱(欄位名 型別(長度),....)

drop table 表名;

alter table 表名稱 (DCMA)drop|change|modify|add
alter table drop 欄位名稱
alter table dog drop color;
alter table change 舊欄位名 新欄位名 新型別
alter table dog change gender sex char(2);
alter table modify 欄位名 新型別
alter table dog modify color char(5);
alter table add 新欄位名稱 新型別
alter table dog add color char(10);
重命名錶
rename table 舊錶名稱 to 新表名稱
rename table dog to dogtable;
修改表的屬性
alter table 表名 屬性名 值;
alter table dogtable DEFAULT CHARSET gbk;

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


記錄相關操作

insert into 表名 values(值1,值2.....)

delete from 表名 where 欄位名稱 = 值
沒有條件的話刪除全部資料

update 表名 set 欄位名 = 新的值 where 欄位名 = 值
沒有條件的話修改全部

select *from 表名; *表示萬用字元 檢視所有欄位
select 欄位名稱1,欄位名2.. from 表名;

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

7.資料庫的引擎 ***

8. 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

小結
1.資料庫是什麼?
mysql 一種DBMS
是一個CS的socket軟體

資料庫伺服器
DBMS
資料夾 庫
檔案 表
一個完整資料 記錄
單個數據 欄位

資料庫的分類
關係型 資料之間存在某種關聯 存在硬碟上
非關係型 資料之間存在某種關聯 以key value形式儲存 存在記憶體中

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

安裝兩種方式
1.介面
2.解壓安裝

環境變數
系統服務
修改預設祕密
破解密碼
修改編碼(配置檔案)
簡單Crete Read Update Delete