数据库
首页 > 数据库> > Mysql数据库及表的修改和删除

Mysql数据库及表的修改和删除

作者:互联网

1.1 删除数据库:

drop database school;

1.2 修改数据库:

5.1.23版本后没有修改数据库的命令了;5.1.7中RENAME DATABSE 命令可以修改数据库。

最好的办法是,重建一个数据库,然后将原始数据库中的内容迁移进去。

2.1 重命名一张表:
重命名一张表有三种方法:

第一种:
RENAME TABLE 原名 TO 新名;
第二种:
ALTER TABLE 原名 RENAME 新名;
第三种:
ALTER TABLE 原名 RENMAE TO 新名;

2.2 删除一张表:

DROP TABLE 表名;
DROP TABLE user_name;

3.1 对一列的修改(即对表结构的修改):

3.1.1 增加一列:
在表中增加一列的语句格式为:

ALTER TABLE 表名字  ADD COLUMN 列名字 数据类型 约束;
或
ALTER TABLE 表名字 ADD 列名字 数据类型 约束;

现在user_info表中有id、name、phone三列,我们尝试加入height(身高)列,并指定DEFAULT约束:

原user_info表:
mysql> select * from user_info;
+------+------+--------+
| id   | name | phone  |
+------+------+--------+
|    1 | jack | 123456 |
+------+------+--------+
1 row in set (0.00 sec)

向user_info表中增加height列:
ALTER TABLE user_info ADD COLUMN height INT(4) DEFAULT 185;
#注意:语句中INT(4)不是表示整数的字节数,而是表示该值的显示宽度,如果设置填充字符为0,则170显示为0170
增加列后的表:
mysql> select * from user_info;
+------+------+--------+--------+
| id   | name | phone  | height |
+------+------+--------+--------+
|    1 | jack | 123456 |    185 |
+------+------+--------+--------+
1 row in set (0.00 sec)

3.1.2 设置插入列位置:

可以发现,我们新增加的列,被默认放在这张表的最右边。如果要把新增加的列插入到指定位置,则需要在语句的最后使用AFTER关键词(“AFTER列1”表示新增的列被放置在"列1"的后面)。

现在我们新增肌一列weight(体重)放置在name(名字)后面:

ALTER TABLE user_info ADD weight int(4) default 120 after name;

mysql> alter table user_info add weight int(4) default 170 after name;
Query OK, 1 row affected (0.03 sec)

mysql> select * from user_info;
+------+------+--------+--------+--------+
| id   | name | weight | phone  | height |
+------+------+--------+--------+--------+
|    1 | jack |    170 | 123456 |    185 |
+------+------+--------+--------+--------+
1 row in set (0.00 sec)

3.1.3 将插入列放置第一位:

如果想放在第一列的位置:

则使用FIRST关键词;

alter table user_info add test int(10) default 11 first;

mysql> alter table user_info add test int(10) default 11 first;
Query OK, 1 row affected (0.01 sec)


mysql> select * from user_info;
+------+------+------+--------+--------+--------+
| test | id   | name | weight | phone  | height |
+------+------+------+--------+--------+--------+
|   11 |    1 | jack |    170 | 123456 |    185 |
+------+------+------+--------+--------+--------+
1 row in set (0.00 sec)

3.2.1 删除一列:
删除表中的一列和刚才使用的新增一列的语句格式十分相似,只是把关键词ADD 改为 DROP,语句后面不需要有数据类型、约束或位置信息.具体格式如下:

ALTER TABLE 表名字 DROP COLUMN 列名字;
或
ALTER TABLE 表名字 DROP 列名字;
ALTER TABLE user_info DROP test;

3.2.2 重命名一列:

当原列名和新列名相同的时候,指定新的数据类型或约束,就可以用于修改数据类型或约束。需要注意的是,修改数据类型可能会导致数据丢失,所有要慎重使用。

使用语句将“height” 一列重命名为汉语拼音"shengao",效果如下:

ALTER TABLE user_info CHANGE height shengao int(4) default 170;

mysql> alter table user_info change weight shengao int(4) default 4;
Query OK, 1 row affected (0.02 sec)

mysql> select * from user_info;
+------+------+------+---------+--------+--------+
| test | id   | name | shengao | phone  | height |
+------+------+------+---------+--------+--------+
|   11 |    1 | jack |     170 | 123456 |    185 |
+------+------+------+---------+--------+--------+

3.2.3 修改数据类型:

要修改一列的数据类型,除了使用刚才CHANGE语句外,还可以用这样的MODIFY语句:

ALTER TABLE 表名字 MODIFY 列名字 新数据类型;

3.2.4 修改表中某个值:

大多数时候我们需要做修改的不会是整个数据库或整张表,而表中的某一个或几个数据,这就需要我们用下面这条命令达到精确的修改:

UPDATE 表名字 SET 列1=值1,列2=值2 WHERE 条件;

比如我们要把Tom的age改为21,salary改为3000:

UPDATE user_info SET age=21,salary=3000 WHERE name='TOM';

mysql> update user_info set height=175,phone=666666 where name='jack';
Query OK, 1 row affected (0.01 sec)

mysql> select * from user_info;
+------+------+------+---------+--------+--------+
| test | id   | name | shengao | phone  | height |
+------+------+------+---------+--------+--------+
|   11 |    1 | jack |     170 | 666666 |    175 |
+------+------+------+---------+--------+--------+
1 row in set (0.00 sec)

一定要注意:一定要有WHERE条件!!!!!!

3.2.5 删除一行记录:

删除表中的一行数据,也必须加上where条件,否则整列的数据都会被删除。删除语句:

DELETE FROM 表名 where 条件;

我们现在删除‘jack’的数据:

delete from user_info where name='jack';

mysql> delete from  user_info where name='jack';
Query OK, 1 row affected (0.01 sec)


标签:info,name,数据库,mysql,及表,user,Mysql,TABLE,ALTER
来源: https://www.cnblogs.com/A-src/p/10355686.html