1. 程式人生 > >python-day37(MySQL資料庫)

python-day37(MySQL資料庫)

一. 庫操作

  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. 複製表

    點選連結