python之MySQL數據庫
mysql安裝與下載
a:官網下載mysql安裝程序 b:安裝mysql服務端 c:安裝mysql客戶端 d:客戶端連接服務端 e:通過客戶端向服務器發送命令,執行對數據庫文件的增刪改差操作。
Windows版安裝
#1.下載:MySQL Community Server 5.7.20 https://dev.mysql.com/downloads/mysql/ #2.解壓 將官網下載的解壓包 解壓到指定目錄(例如 D://mysql-5.7.20-winx64) #3.添加環境變量 【右鍵計算機】--》【屬性】--》【高級系統設置】--》【高級】--》【環境變量】--》【在第二個內容框中找到 變量名為Path 的一行,雙擊】 --> 【將MySQL的bin目錄路徑追加到變值值中,用 ; 分割】 C:\Program Files (x86)\Parallels\Parallels Tools\Applications;d:\mysql解壓方式安裝-5.7.16-winx64\bin #4.初始化 mysqld --initialize-insecure #5.啟動mysql服務 mysqld #6.連接mysql服務 mysql -uroot -p 回車,有密碼輸入密碼,沒有繼續回車 解壓方式安裝 解壓方式安裝
ps:制作服務必須使用全路徑方式 # 制作MySQL的Windows服務,在終端執行此命令: "c:\mysql-5.7.16-winx64\bin\mysqld" --install # 移除MySQL的Windows服務,在終端執行此命令: "c:\mysql-5.7.16-winx64\bin\mysqld制作服務" --remove‘ # 啟動MySQL服務 net start mysql(後面不加分號) # 關閉MySQL服務 net stop mysql(後面不加分號)
1.創建數據庫
create database 庫名;
#創建一個名字為 db_name 的數據庫,並指定當前庫的編碼集為utf8 CREATE DATABASE db_name charset utf8;
2.查數據庫
use 庫名;
#查詢當前用戶下所有數據庫 show databases; #查看創建數據庫的信息 show create database db_name; #查詢當前操作所在的數據庫名稱select database();
3.查詢當前庫下所有的表
show tables 顯示庫中所有的表
show databases顯示所有數據庫
4.刪除
drop database 庫名; 刪除數據庫
什麽是SQL?
上面咱們介紹過數據庫的組成部分,其中數據庫管理系統可以接收一些命令,對數據文件進行添加、刪除、修改、查詢等操作。那麽這些命令就是 SQL .
SQL:(Structured Query Language)是結構化查詢語言縮寫。是一門專門與數據庫管理系統打交道的語言。
SQL語言:是關系型數據庫的標準語言, 其主要用於存取數據,查詢數據,更新數據和管理數據庫系統等操作。
具體可以把SQL分為4個部分:
數據控制語言 ( DCL): 主要用於控制用戶的訪問權限。其中GRANT語句用於給用戶增加權限,REVOKE語句用於收回用戶的權限
數據定義語言(DDL):DROP、CREATE、ALTER等語句;數據庫定義語言。主要用於定義數據庫,表,視圖,索引和觸發器等。CREATE語句主要用於創建數據庫,創建表,創建視圖。ALTER語句主要用於修改表的定義,修改視圖的定義。DROP語句主要用於刪除數據庫,刪除表和刪除視圖等。
數據操作語言(DML):INSERT、UPDATE、DELETE語句;數據庫操作語言。主要用於插入數據,更新數據,刪除數據。INSERT語句用於插入數據,UPDATE語句用於更新數據,DELETE語句用於刪除數據.
數據查詢語言(DQL):SELECT語句。主要用於查詢數據。
#1. 操作文件夾 增:create database db1 charset utf8; 查:show databases; 改:alter database db1 charset latin1; 刪除: drop database db1; #2. 操作文件 先切換到文件夾下:use db1 增:create table t1(id int,name char); 查:show tables 改:alter table t1 modify name char(3); alter table t1 change name name1 char(2); 刪:drop table t1; #3. 操作文件中的內容/記錄 增:insert into t1 values(1,‘egon1‘),(2,‘egon2‘),(3,‘egon3‘); 查:select * from t1; 改:update t1 set name=‘sb‘ where id=2; 刪:delete from t1 where id=1; 清空表: delete from t1; #如果有自增id,新增的數據,仍然是以刪除前的最後一樣作為起始。 truncate table t1;數據量大,刪除速度比上一條快,且直接從零開始, auto_increment 表示:自增 primary key 表示:約束(不能重復且不能為空);加速查找 ....
#1. 操作文件夾 增:create database db1 charset utf8; 查:show databases; 改:alter database db1 charset latin1; 刪除: drop database db1; #2. 操作文件 先切換到文件夾下:use db1 增:create table t1(id int,name char); 查:show tables 改:alter table t1 modify name char(3); alter table t1 change name name1 char(2); 刪:drop table t1; #3. 操作文件中的內容/記錄 增:insert into t1 values(1,‘egon1‘),(2,‘egon2‘),(3,‘egon3‘); 查:select * from t1; 改:update t1 set name=‘sb‘ where id=2; 刪:delete from t1 where id=1; 清空表: delete from t1; #如果有自增id,新增的數據,仍然是以刪除前的最後一樣作為起始。 truncate table t1;數據量大,刪除速度比上一條快,且直接從零開始, auto_increment 表示:自增 primary key 表示:約束(不能重復且不能為空);加速查找
可以由字母、數字、下劃線、@、#、$
區分大小寫
唯一性
不能使用關鍵字如: CREATE SELECT
不能單獨使用數字
最長128位
命名規範
用戶權限
創建用戶 create user ‘用戶名‘@‘IP地址‘ identified by ‘密碼‘; 刪除用戶 drop user ‘用戶名‘@‘IP地址‘; 修改用戶 rename user ‘用戶名‘@‘IP地址‘; to ‘新用戶名‘@‘IP地址‘;用戶管理
#創建新用戶 create user ‘alex‘@‘localhost‘ identified by ‘123456‘; #授權方式一:為alex授權 db1數據庫下的所有表的 查詢.更新.修改權限 grant select,update,delete on db1.* to ‘alex‘@‘localhost‘; #授權方式二:為alex 授權 所有庫的所有權限(除grant權限外) grant all privileges on *.* to ‘alex‘@‘localhost‘; #刷新用戶權限 flush privileges;創建用戶及授權示例
all privileges 除grant外的所有權限 select 僅查權限 select,insert 查和插入權限 ... usage 無訪問權限 alter 使用alter table alter routine 使用alter procedure和drop procedure create 使用create table create routine 使用create procedure create temporary tables 使用create temporary tables create user 使用create user、drop user、rename user和revoke all privileges create view 使用create view delete 使用delete drop 使用drop table execute 使用call和存儲過程 file 使用select into outfile 和 load data infile grant option 使用grant 和 revoke index 使用index insert 使用insert lock tables 使用lock table process 使用show full processlist select 使用select show databases 使用show databases show view 使用show view update 使用update reload 使用flush shutdown 使用mysqladmin shutdown(關閉MySQL) super 使用change master、kill、logs、purge、master和set global。還允許mysqladmin調試登陸 replication client 服務器位置的訪問 replication slave 由復制從屬使用權限列表
1 方式一: mysqladmin 命令 2 3 4 mysqladmin -u用戶名 -p密碼 password 新密碼 5 方式二: 直接設置用戶密碼 6 7 8 set password for ‘用戶名‘@‘IP‘ = password(‘新密碼‘); 9 10 flush privileges; 11 方式三:修改mysql庫下的user表 12 13 14 5.7版本修改密碼方式: 15 update mysql.user set authentication_string=password(‘新密碼‘) where user= ‘用戶名‘ 16 flush privileges; -- 刷新權限 17 18 5.6 版本 19 update mysql.user set password = password(‘新密碼‘) where user= ‘用戶名‘ 20 flush privileges; -- 刷新權限 21 六.忘記密碼修改密碼
在忘記root密碼的時候,可以這樣: #1.首先打開cmd 窗口,關閉mysql服務 net stop mysql #2.然後跳過權限檢查,啟動mysql,輸入命令 mysqld --skip-grant-tables #3.重新打開一個新的cmd窗口,啟動客戶端(已跳過權限檢查,可以直接登錄) mysql #4.直接進來,修改密碼 update mysql.user set authentication_string=password(‘123456‘) where user=‘root‘; #5. 刷新權限 flush privileges;忘記密碼
查詢字符編碼
SHOW VARIABLES LIKE ‘char%‘;
#修改方法: #1. 創建my.ini文件,放在mysql根路徑下 #2. 在該文件中添加以下內容即可: #3.添加此文件後需要重新啟動服務,以保證此文件生效 ------------------------------------------------------------ [client] default-character-set=utf8 [mysql] #設置mysql客戶端默認字符集 default-character-set=utf8 [mysqld] #設置3306端口 port = 3306 #允許最大連接數 max_connections=200 #服務端使用的字符集默認為8比特編碼的latin1字符集 character-set-server=utf8 #創建新表時將使用的默認存儲引擎 default-storage-engine=INNODB #解決mysql在執行sql語句後出現1055錯誤,sql_mode = only_full_group_by不相容 sql_mode=‘NO_ENGINE_SUBSTITUTION‘ 亂碼已死亂碼已死
python之MySQL數據庫