1. 程式人生 > >Python-數據庫 基本SQL語句

Python-數據庫 基本SQL語句

數據庫服務 網絡 eat date lec client 容量 必須 ODB

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



















Python-數據庫 基本SQL語句