mysql怎么删除临时表里的数据_Mysql数据库中表的创建,修改及删除

本文详细介绍了MySQL中如何创建、修改和删除表,包括创建表的基本语法,设置主键、外键、非空约束、唯一性约束、自动增加属性和默认值。还讲解了查看表结构、修改表名、字段数据类型、字段名、增加和删除字段、调整字段位置、更改存储引擎、删除外键约束的方法,并提供了具体的SQL语句示例。
摘要由CSDN通过智能技术生成

1.创建表的语法形式

create table 表名 (属性名 数据类型 [完整性约束条件]);

create table example0(id int,name varchar(20),sex boolean);

2.设置表的主键

Create table 表名(属性名 数据类型 primary key)

create table example1(stu_id int primary key,stu_name varchar(20),stu_sex boolean);

3.多字段主键

create table 表名(属性名 数据类型 primary key(属性名1,属性名2,…))

create table example2(stu_id int,course_id int,grade float,primary_key(stu_id,course_id));

4.设置表的外键

create table 表名(属性名 数据类型 primary key (属性1.1,属性1.2) reference 表名(属性名2.1,属性2.2) )

mysql> create table example3(

-> stu_id int,

-> course_id int,

-> constraint c_fk foreign key(stu_id,course_id)references example2(stu_id,course_id)

-> );

5.设置表的非空约束

create table 表名(属性名 数据类型 not null)

mysql> create table example4(

-> id int not null primary key,

-> name varchar(20) not null,

-> stu_id int,

-> constraint d_fk foreign key (stu_id)

-> references example1(stu_id)

-> );

6.设置表的唯一性约束

create table 表名(属性名 数据类型 unique)

mysql> create table example5(

-> id int primary key,

-> stu_id int unique,

-> name varchar(20) not null

-> );

7.设置表的属性值自动增加

create table 表名(属性名 数据类型 auto_increment)

mysql> create table example6(

-> id int primary key auto_increment,

-> stu_id int unique,

-> name varchar(20) not null

-> );

8.设置表的属性的默认值

create table 表名(属性名 数据类型 default 默认值)

mysql> create table example7(

-> id int primary key auto_increment,

-> stu_id int unique,

-> name varchar(20) not null,

-> english varchar(20) default 'zero',

-> math float default 0,

-> computer float default 0

-> );

查看表结构

1.查看表结构的语句

describe 表名;

describe example3;

结果:mysql> describe example3;

+-----------+---------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-----------+---------+------+-----+---------+-------+

| stu_id | int(11) | YES | MUL | NULL | |

| course_id | int(11) | YES | | NULL | |

+-----------+---------+------+-----+---------+-------+

2.查看表详细结构语句

show create table 表名;

show create table example7 G

mysql> show create table example7 G;

*************************** 1. row ***************************

Table: example7

create Table: CREATE TABLE `example7` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`stu_id` int(11) DEFAULT NULL,

`name` varchar(20) NOT NULL,

`english` varchar(20) DEFAULT 'zero',

`math` float DEFAULT '0',

`computer` float DEFAULT '0',

PRIMARY KEY (`id`),

UNIQUE KEY `stu_id` (`stu_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8

1 row in set (0.01 sec)

修改表

1.修改表名

alter table 旧表名 rename to 新表名;

我们修改example0的表名:

修改前

e9a798fabf7745fe3c708d7588d51ef5.png

mysql> alter table example0 rename to user;

修改后

7fa1061b4ff772a9d9528d263d582318.png

2.修改字段的数据类型

alter table 表名 modify 属性名 数据类型;

我们修改name字段的数据类型

alter table user modify name varchar(30);

修改前:

0183717bc462a591e1692cefa6a8bf14.png

修改后:

d9656e097dc16332ed2ba7727a0dfc35.png

3.修改字段名

alter table 表名 change 旧属性名 新属性名 新数据类型;

1. 只修改字段名,不修改数据类型

7f41aa97d7fc1640695f0df39fa4be16.png

修改example1中stu_named的字段名为name

alter table example1 change stu_name name varchar(20);

d40c8353bd4da89ca1f88265c3118b32.png

2. 修改字段名且修改数据类型

修改example1中stu_sex的字段为sex,且数据类型修改为int(2)

alter teble example1 change stu_sex sex int(2);

b09ba7c88cdc12df49556355e4a4e5fb.png

3. 增加字段

alter table 表名 add 属性名1 数据类型[完整性约束条件] [first |after 属性名2];

属性1:指需要增加的字段的名称;

数据类型:新增字段的数据类型;

(1) 增加无完整性约束条件的字段

我们在user表中增加一个无完整性约束条件的字段phone字段。

未执行语句之前

执行语句后

alter table user add phone varchar(20);

(2) 增加有完整性约束条件的字段

我们在user表中增加一个有非空约束的age字段

语句执行前

55f56445d6627cec18f6fff11d2b0392.png

语句执行后

alter table user add age int(4) not null;

4dac17f159d3894f5462aa0078151ca6.png

(3) 表的第一个位置增加字段

我们将在user表中第一个位置增加一个num字段,并设置为主键

语句执行前

40f7c1baeb1790e2b834c22e43b78d55.png

语句执行后

alter table user add num int(8) primary key first;

1878bb0eb0d8ea17f747a9a770c474c9.png

(4) 表的指定位置增加字段

我们将user表中phone的后面增加address字段

语句执行前

3155065218b982fb22dbf61319dfcc47.png

语句执行后

alter table user add address varchar(30) after phone;

34d23cad6c2234f7e3cf7794f388232d.png

4.删除字段

alter table 表名 drop 字段名;

我们从user表中删除id字段

语句执行前

8696fc07070ca3126d1891afd2ac0319.png

语句执行后

alter table user drop id;

d31303b3cb4c72af32306bfcda78eaee.png

5.修改字段的排列位置

语法:alter table 表名 modify 属性名1 数据类型 first|after 属性名2;

属性名1:指需要修改位置的字段名称;

数据类型:指属性名1的数据类型;

first:指指定位置为表的第一个位置;

after 属性名2:指指定属性名1插入在属性名2之后。

(1)字段修改到第一个位置

我们user表中name字段修改为该表的第一个字段

修改前

83252f4105d89a222a8ee2b98211d8fa.png

修改后

alter table user modify name varchar(30) first;

544270ddd41cc45f7890195a2ce794d3.png

(2)字段修改到指定位置

我们将user表中sex字段排到age字段之后

语句执行前

36d63d92205587f515929b9eb2b6c870.png

语句执行后

alter table user modify sex tinyint(1) after age;

aed2874f7b6d03d6c7f5133ab06ecaf0.png

6.更改表的存储引擎

语法:alter table表名 engine=myisam;

我们先查看一下user表的存储引擎,结果为:InnoDB

0d27dc1744700fac6949ddaa86ed41eb.png

执行后

alter table user engine=myisam;

6f60a61520d63a12b21a5bc8f7e44319.png

7.删除表的外键约束

语法:alter table 表名 drop foreign key 外键别名;

外键别名:指创建表时设置的外键的代号

我们将example3的外键约束删除

语句执行前

19f14f982660284497752b5991d628e4.png

语句执行后

alter table example3 drop foreign key c_fk;

42fa6e70e1997b2083ae51bd4a8f598b.png

删除表

(1)删除没有被关联的普通表

语法:drop table 表名

我们接下来将example5表删除

语句执行前

fcf0790c9df95195b66628a4d22bf099.png

语句执行后

drop table example5;

4196cfea1d946e877ba94e691f13aebe.png

(2)删除被其他表关联的父表

接下来我们删除example1表

drop table example1;

20b31dd300d47608dca7216bdfa92b7f.png

删除失败,有外键依赖于该表

example4表依赖于example1表。example4表的外键时stu_id 依赖于example1表的主键。example1表是example4表的父表。方法一:如果要删除example4表,必须先去掉这种依赖关系。最简单直接的办法是,先删除example4,然后再删除父表example1。方法二:先删除子表的外键约束,然后删除父表。

执行语句前

7a3bfe2c3b8c5a591ea8ebc61d8dd8ae.png

语句执行后

05f7ba4482fac40fd628b1543365e5bd.png

结果显示成功

554280d6d1238ee8cdb2e8b5a93286d5.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值