Mysql数据库及表的修改和删除
Posted a-src
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)
以上是关于Mysql数据库及表的修改和删除的主要内容,如果未能解决你的问题,请参考以下文章