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)

相关文章