1. 程式人生 > >python 基礎復習之數據庫01

python 基礎復習之數據庫01

code socket客戶端 val timestamp charset 老男孩課程 tro 硬盤 engine

什麽是數據庫?
存儲數據的倉庫

MySQL
MySQL就是幫我來操作文件的
MySQL :是用於管理文件的一個軟件(包括兩個軟件)
- 服務端的軟件
-socket服務端
-本地文件操作
-解析指令 【SQL語句】
- 客戶端軟件
-socket客戶端
-發送指令
-解析指令 【SQL語句】

文件夾【數據庫】
文件【表】
數據行【行】
數據行
 
連接:
show databases; # 列出所有數據庫
use 數據庫名稱
;
切換數據庫
show tables; 查看數據庫裏的所有文件
select * from 表名; 去哪個表裏查看表下面所有的列
select name from 表名; # *號 代表表下面的列 可以根據列來查看不同的信息
select name,age from 表名; # 既看name列,又看age
列。
 
默認:用戶 root
創建用戶:
create user ‘lizy‘@‘192.168.1.1‘ identified by ‘123123‘; 密碼
create user ‘lizy‘@‘%‘identified by ‘123123‘
;
 
授權:
給誰授權 權限是什麽
grant select(查找權限)
grant select,insert,update on db1.t1 to ‘lizy‘@‘%‘;
(意思是:可以在任何電腦上對‘lizy‘@‘%‘ 裏的數據裏的t1表進行增刪改查)
revoke select on db1.tb1 from ‘用戶名‘@‘IP‘ # 刪除授權

  1 3.學習SQL語句規則
  2     
  3 操作文件夾
  4         create database db2 default charset utf8;
  5         show databases;
6 drop database db2; # 刪除數據庫 7 8 操作文件 9 show tables; 10 create table t1(id int,name char(10)) default charset=utf8; # char 表示字符串類型 11 create table t1(id int,name char(10)) engine=innodb default charset=utf8; 12 create table t2(id int auto_increment primary key,name char(10))engine=innodb default charset=utf8; 13 t1表的名稱 id 是表的列名 類型是int類 14 # 在MySQL裏只有engine=innodb的時候,才支持回滾 (假設在銀行轉賬,突然斷電了,錢轉出去了,但是對方沒有收到,錢就不知道去哪裏了。有了engine=inndb 就可以讓轉賬失敗的錢回到原賬戶)。 15 # (引擎) 16 17 18 create table t1( 19 列名 類型 null, # 可以為空 20 列名 類型 not null, # 不可以為空 21 列名 類型 not null default 1, # 不能為空,且默認值為1 22 列名 類型 not null auto_increment, # 這一列會自增 23 列名 類型 not null auto_increment primary key, 24 id int, 25 name char(10) 26 )engine=innodb default charset=utf8; 27 28 # innodb 支持事務,原子性操作 29 # auto_increment 表示:自增 30 # primary key 表示 一是約束(不能重復且不能為空);二是加速查找 31 # 註意:一個表裏只能有一個自增列 並且也只能有一個主鍵 32 如果是auto_increment 那麽它必須是主鍵 33 # not null:是否為空 34 35 #數據類型: 36 # 數字: 37 tinyint 38 int 39 bigint 40 41 FLOAT 42 DOUBLE 43 # 不太精準的小數 44 decimal 45 # 這個也是小數,但是永遠都是精準的 # 推薦用這個decimal 46 47 #字符串: 48 char(10) # 會多占內存 # 優點:速度快 49 varchar(10) # 輸入多少就占多少內存 #優點:節省空間 50 # 都要加上一個長度 51 # PS:創建數據表 定長列往前放 52 53 # text:存的更多 54 55 # 上傳文件: 56 # 文件存硬盤 57 # 數據庫存路徑 58 59 # 時間類型: 60 DATE 61 YYYY-MM-DD(1000-01-01/9999-12-31) 62 63 TIME 64 HH:MM:SS(時:分:秒) 65 66 YEAR 67 YYYY(1901/2155) 68 69 DATETIME 70 YYYY-MM-DD HH:MM:SS 71 72 TIMESTAMP 73 YYYYMMDD HHMMSS 74 75 76 create table t1( 77 id int not null auto_increment primary key, 78 num decimal(10,5), # 10表示總位數,就是小數點兒前和後。 5表示小數點後的位數。 79 name char(10) 80 )engine=innodb default charset=utf8; 81 82 83 # 清空表: 84 delete from t1; # 使用它 會清空表 但是序號會從清空之前的序號開始計算,例如:清空前是4,那麽插入新數據後,就是從5開始。 85 truncate table t1; # 清空列表後 新插入數據 序號從1 開始(速度比delete快) 86 # 刪除表: 87 drop table t1; 88 89# 操作文件中的內容 90 # 插入數據 91 insert into t1(id,name) values(1,alex); 92 93 # 刪除: 94 delete from t1 where id < 6 #(刪除條件id小於六的) 95 96 # 修改: 97 update t1 set age=18;# (年齡那一列都會變成18) 98 update t1 set age=18 where age=17; #(找到年齡是17的改成18) 99 100 # 查看數據: 101 select * from t1; 102 103 104 # 外鍵: 105 # 原來只有一張表A,因為原因又創建另一張表B,B表裏的id是A裏的一個屬性 106 107 create table userinfo( 108 uid bigint auto_increment primary key, 109 name varchar(32), 110 department_id int, 111 constraint fk_user_depar foreign key ("department_id") references department("id") # 外鍵約束 112 )engine=innodb default charset=utf8; 113 # constraint 約束 fk_user_depar:外鍵的名稱 references:關聯 114 115 create table department( 116 id bigint auto_increment primary key, 117 title char(15) 118 )engine=innodb default charset=utf8; 119 120 121

# 註:本文是根據老男孩課程內容整理而成的,本文僅供個人筆記使用,如果有侵犯,請聯系我,我立即撤銷。
 




 

python 基礎復習之數據庫01