python-day37(MySQL資料庫)
阿新 • • 發佈:2018-12-08
一. 庫操作
1. 建立資料庫
語法: create databas 資料庫名 charset utf8;
資料庫命名規則:
可以由數字,字母,下劃線組成,@,#,$
區分大小寫
唯一性
不能使用關鍵字如 create select
不能單獨使用數字
最長128位
#基本上跟Python的命名規則一樣
2. 資料庫相關操作
1 檢視資料庫 show databases; show create database db1; select database();2 選擇資料庫 use 資料庫名 3 刪庫跑路 drop database 資料庫名; 4 修改資料庫 alter database db1 charset utf8;
二. 表操作
1. 儲存引擎
2. 表介紹
表相當於檔案,表中的一條記錄就相當於檔案的一行內容,表中的一條記錄對應的標題,稱為表的欄位
3. 建立表
create table 表名(
欄位名1 型別 約束,
欄位名2 型別 約束
);
create database db1 charset utf8; use db1; create table t1( id int, name varchar(50), sex enum('male', 'female' ), age int(3) ); show tables; #檢視db1庫下所有表名 desc t1;#查看錶結構 select id,name,sex,age from t1; select * from t1; select id,name from t1; 插入資料 insert into t1 values (1,'a',18,'male'); insert into t1(id) values (3), (4); select * from t1;
4. 查看錶結構
describe t1; #簡寫 desc
show create table t1\G; #查看錶詳細結構
5. MySQL的基礎資料型別
6. 表的完整性約束
7. 修改表 alter table
1 語法: 2 1. 修改表名 3 ALTER TABLE 表名 4 RENAME 新表名; 5 6 2. 增加欄位 7 ALTER TABLE 表名 8 ADD 欄位名 資料型別 [完整性約束條件…], #注意這裡可以通過逗號來分割,一下新增多個約束條件 9 ADD 欄位名 資料型別 [完整性約束條件…]; 10 ALTER TABLE 表名 11 ADD 欄位名 資料型別 [完整性約束條件…] FIRST; #新增這個欄位的時候,把它放到第一個欄位位置去。 12 ALTER TABLE 表名 13 ADD 欄位名 資料型別 [完整性約束條件…] AFTER 欄位名;#after是放到後的這個欄位的後面去了,我們通過一個first和一個after就可以將新新增的欄位放到表的任意欄位位置了。 14 15 3. 刪除欄位 16 ALTER TABLE 表名 17 DROP 欄位名; 18 19 4. 修改欄位 20 ALTER TABLE 表名 21 MODIFY 欄位名 資料型別 [完整性約束條件…]; 22 ALTER TABLE 表名 23 CHANGE 舊欄位名 新欄位名 舊資料型別 [完整性約束條件…]; #change比modify還多了個改名字的功能,這一句是隻改了一個欄位名 24 ALTER TABLE 表名 25 CHANGE 舊欄位名 新欄位名 新資料型別 [完整性約束條件…];#這一句除了改了欄位名,還改了資料型別、完整性約束等等的內容 26 27 語法語法
1 示例: 2 1. 修改儲存引擎 3 mysql> alter table service 4 -> engine=innodb; 5 6 2. 新增欄位 7 mysql> alter table student10 8 -> add name varchar(20) not null, 9 -> add age int(3) not null default 22; 10 11 mysql> alter table student10 12 -> add stu_num varchar(10) not null after name; //新增name欄位之後 13 14 mysql> alter table student10 15 -> add sex enum('male','female') default 'male' first; //新增到最前面 16 17 3. 刪除欄位 18 mysql> alter table student10 19 -> drop sex; 20 21 mysql> alter table service 22 -> drop mac; 23 24 4. 修改欄位型別modify 25 mysql> alter table student10 26 -> modify age int(3); 27 mysql> alter table student10 28 -> modify id int(11) not null primary key auto_increment; //修改為主鍵 29 30 5. 增加約束(針對已有的主鍵增加auto_increment) 31 mysql> alter table student10 modify id int(11) not null primary key auto_increment; 32 ERROR 1068 (42000): Multiple primary key defined 33 34 mysql> alter table student10 modify id int(11) not null auto_increment; 35 Query OK, 0 rows affected (0.01 sec) 36 Records: 0 Duplicates: 0 Warnings: 0 37 38 6. 對已經存在的表增加複合主鍵 39 mysql> alter table service2 40 -> add primary key(host_ip,port); 41 42 7. 增加主鍵 43 mysql> alter table student1 44 -> modify name varchar(10) not null primary key; 45 46 8. 增加主鍵和自動增長 47 mysql> alter table student1 48 -> modify id int not null primary key auto_increment; 49 50 9. 刪除主鍵 51 a. 刪除自增約束 52 mysql> alter table student10 modify id int(11) not null; 53 54 b. 刪除主鍵 55 mysql> alter table student10 56 -> drop primary key; 57 58 簡單示例示例
8. 複製表