python alter 表名 表 增刪改查

2021-10-11 13:18:36 字數 4023 閱讀 2247

表得增刪改查:

1.表介紹:

id,name,age,***稱為字段,其餘的,一行內容稱為一條記錄。

2.建立表:

語法:create table 表名(

欄位名1 型別[(寬度) 約束條件],

欄位名2 型別[(寬度) 約束條件],

欄位名3 型別[(寬度) 約束條件]

#注意:

1. 在同一張表中,欄位名是不能相同

2. 寬度和約束條件可選

3. 欄位名和型別是必須的

示範:create database db1 charset utf8;

use db1;

create table t1(

id int,

name varchar(50),

*** enum('male','female'),

age int(3)

show tables; #檢視db1庫下所有表名

desc t1;

select id,name,***,age from t1;

select * from t1;

select id,name from t1;

insert into t1 values

(1,'egon','male',18),

(2,'alex','female',20)

insert into t1(id) values

(4),

(5);

mysql> select * from t1;

| id | name | *** | age |

| 1 | egon | male | 18 |

| 2 | alex | female | 20 |

| 4 | null | null | null |

| 5 | null | null | null |

注意:表中的最後乙個字段不要加逗號

3.檢視表結構:

[db1]> describe t1; #檢視表結構,可簡寫為desc 表名

| field | type | null | key | default | extra |

| id | int(11) | yes | | null | |

| name | varchar(50) | yes | | null | |

| *** | enum('male','female') | yes | | null | |

| age | int(3) | yes | | null | |

[db1]> show create table t1\g; #檢視表詳細結構,可加\g

4.修改表結構:

語法:1. 修改表名

alter table 表名

rename 新錶名;

2. 增加字段

alter table 表名

add 欄位名 資料型別 [完整性約束條件…],

add 欄位名 資料型別 [完整性約束條件…];

alter table 表名

add 欄位名 資料型別 [完整性約束條件…] first;

alter table 表名

add 欄位名 資料型別 [完整性約束條件…] after 欄位名;

3. 刪除字段

alter table 表名

drop 欄位名;

4. 修改字段

alter table 表名

modify 欄位名 資料型別 [完整性約束條件…];

alter table 表名

change 舊欄位名 新欄位名 舊資料型別 [完整性約束條件…];

alter table 表名

change 舊欄位名 新欄位名 新資料型別 [完整性約束條件…];

示範:1. 修改儲存引擎

mysql> alter table service

-> engine=innodb;

2. 新增字段

mysql> alter table student10

-> add name varchar(20) not null,

-> add age int(3) not null default 22;

mysql> alter table student10

-> add stu_num varchar(10) not null after name; //新增name欄位之後

mysql> alter table student10

-> add *** enum('male','female') default 'male' first; //新增到最前面

3. 刪除字段

mysql> alter table student10

-> drop ***;

mysql> alter table service

-> drop mac;

4. 修改字段型別modify

mysql> alter table student10

-> modify age int(3);

mysql> alter table student10

-> modify id int(11) not null primary key auto_increment; //修改為主鍵

5. 增加約束(針對已有的主鍵增加auto_increment)

mysql> alter table student10 modify id int(11) not null primary key auto_increment;

error 1068 (42000): multiple primary key defined

mysql> alter table student10 modify id int(11) not null auto_increment;

query ok, 0 rows affected (0.01 sec)

records: 0 duplicates: 0 warnings: 0

6. 對已經存在的表增加復合主鍵

mysql> alter table service2

-> add primary key(host_ip,port);

7. 增加主鍵

mysql> alter table student1

-> modify name varchar(10) not null primary key;

8. 增加主鍵和自動增長

mysql> alter table student1

-> modify id int not null primary key auto_increment;

9. 刪除主鍵

a. 刪除自增約束

mysql> alter table student10 modify id int(11) not null;

b. 刪除主鍵

mysql> alter table student10

-> drop primary key;

5.複製表:

1.複製表結構+記錄 (key不會複製: 主鍵、外來鍵和索引)

mysql> create table new_service select * from service;

2.只複製表結構

mysql> select * from service where 1=2; //條件為假,查不到任何記錄

empty set (0.00 sec)

mysql> create table new1_service select * from service where 1=2; #(key不會複製: 主鍵、外來鍵和索引)

query ok, 0 rows affected (0.00 sec)

records: 0 duplicates: 0 warnings: 0

mysql> create table t4 like employees; # 只複製表結構,連同主鍵會一起複製 ...

6.刪除表:

drop table 表名;

drop table t1;

drop table t1,t2;

萬錶名錶商城鉅惠,11 11名錶超級秒殺低至2折!

11.vfvjsc11 作為各大電商一年一度的大促節點程式設計客棧,現已吹響倒計時號角。知名全球手錶產業網際網路平台萬錶作為奢侈品電商的重要一員,充分發揮平台優勢,以11.11 全球名錶狂歡節,將大促狂熱氛圍推向高潮,以滿滿誠意回饋消費者的信任。據悉,自 11 月 9 日起至 11 月 11 日,萬...

建表主鍵自增 Oracle建表,建主鍵,自增

oracle建表,建主鍵,自增 建表 create table test id number 4 not null primary key,name varchar2 25 序列 create sequence test sequence increment by 1 每次增加幾個 start wi...

SQL查詢資料庫表名 表的列名

讀取庫中的所有表名 select name from sysobjects where xtype u 讀取指定表的所有列名 select name from syscolumns where id select max id from sysobjects where xtype u and na...