补充:MySQL的alter操作

第一天的缺少了关于alter的操作,以下是补充:

ALTER操作:

a.语法
1.修改表名
语法规则:

ALTER TABLE old_table_name RENAME [TO] new_table_name

2.修改字段的数据类型
语法规则:

ALTER TABLE  table_name  MODIFY 字段名  数据类型

3.修改字段名
语法规则:

ALTER TABLE table_name CHANGE 旧字段名 新字段名 数据类型

4.添加字段
语法规则:

ALTER TABLE table_name ADD 新字段名 数据类型 [约束条件] [FIRST|AFTER 已经存在的字段名]

5.删除字段
语法规则

ALTER TABLE table_name DROP 字段名

6.修改字段的排列位置
语法规则:

ALTER TABLE table_name MODIFY 字段1 数据类型 FIRST|AFTER 字段2
	first: 设置成第一个
	after 字段2: 在指定字段2的后面

7.删除表的外键约束
语法规则:

ALTER TABLE table_name DROP FOREIGN KEY 外键约束名

8.删除数据表
1)删除没有被关联的表
语法规则:

DROP TABLE [IF EXISTS] 表1,表2...

2)删除被其它关联的表
直接删除会出现错误,操作:先解除关联,再进行删除

演示:
1.切换数据

mysql> use mydb1			
Database changed

2.查看当前的数据库

mysql> select database();	
+------------+
| database() |
+------------+
| mydb1      |
+------------+
1 row in set (0.00 sec)

3.在当前数据库创建新的表

mysql> create table worker(			
 -> id int(11) primary key,
 -> name varchar(20),
 -> gender varchar(10),
 -> brithday date,
 -> entry_date date,
 -> job varchar(20),
 -> salary double,
 -> resume blob
 -> );
Query OK, 0 rows affected (0.02 sec)

4.显示指定表中的字段

mysql> desc worker;			
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| id         | int(11)     | YES  |     | NULL    |       |
| name       | varchar(20) | YES  |     | NULL    |       |
| gender     | varchar(10) | YES  |     | NULL    |       |
| brithday   | date        | YES  |     | NULL    |       |
| entry_date | date        | YES  |     | NULL    |       |
| job        | varchar(20) | YES  |     | NULL    |       |
| salary     | double      | YES  |     | NULL    |       |
| resume     | blob        | YES  |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+
8 rows in set (0.01 sec)

5.增加字段image

mysql> alter table worker add image blob;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

6.修改job的长度为60

mysql> alter table worker modify job varchar(60);
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

7.删除image字段

mysql> alter table worker drop image;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

8.对表名重新命名

#方式一
mysql> rename table worker to user;
Query OK, 0 rows affected (0.00 sec)
#方式二
mysql> alter table  worker rename to user;
Query OK, 0 rows affected (0.00 sec)

9.修改表的字符集为gbk

mysql> alter table user character set gbk;	
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show create table user;			#查看信息,已经改为gbk

| Table | Create Table                                       
| user  | CREATE TABLE `user` (
`id` int(11) DEFAULT NULL,
`name` varchar(20) CHARACTER SET latin1 DEFAULT NULL,
`gender` varchar(10) CHARACTER SET latin1 DEFAULT NULL,
`brithday` date DEFAULT NULL,
`entry_date` date DEFAULT NULL,
`job` varchar(60) CHARACTER SET latin1 DEFAULT NULL,
`salary` double DEFAULT NULL,
`resume` blob
) ENGINE=InnoDB DEFAULT CHARSET=gbk |

1 row in set (0.00 sec)

10.将列名name修改为username

mysql> alter table user change name username varchar(100);
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc user;
+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| id         | int(11)      | YES  |     | NULL    |       |
| username   | varchar(100) | YES  |     | NULL    |       |
| gender     | varchar(10)  | YES  |     | NULL    |       |
| brithday   | date         | YES  |     | NULL    |       |
| entry_date | date         | YES  |     | NULL    |       |
| job        | varchar(60)  | YES  |     | NULL    |       |
| salary     | double       | YES  |     | NULL    |       |
| resume     | blob         | YES  |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+
8 rows in set (0.00 sec)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值