修改数据表

修改数据表

创建用户表

CREATE TABLE IF NOT EXISTS user10(
id SMALLINT UNSIGNED KEY AUTO_INCREMENT,#一般情况下第一行是固定的,只需修改下数据范围等
username VARCHAR(20) NOT NULL UNIQUE,
password CHAR(32) NOT NULL,
email VARCHAR(50) NOT NULL DEFAULT '1105797203@qq.com',
age TINYINT UNSIGNED DEFAULT 18,
sex ENUM('男','女','保密') DEFAULT '保密',
addr VARCHAR(200) NOT NULL DEFAULT '北京',
salary FLOAT(6,2),
regTime INT UNSIGNED,
face CHAR(100) NOT NULL DEFAULT 'default.jpg'

)

修改表名称

#将表名称user10改成user11
ALTER TABLE user10 RENAME TO user11;
ALTER TABLE user10 RENAME AS user10;
ALTER TABLE user10 RENAME  user11;
#也可以用下边这个命令
RENAME TABLE user11 TO user10;#这里的TO不可省略

添加字段

#添加card字段CHAR(18);
ALTER TABLE user10 ADD card CHAR(18);#默认添加到最后
ALTER TABLE user10 ADD test1 VARCHAR(100) NOT NULL UNIQUE;
ALTER TABLE user10 ADD test2 VARCHAR(50) NOT NULL FIRST;#添加到位置1
ALTER TABLE user10 ADD test3 INT NOT NULL DEFAULT 100 AFTER username;#将字段添加到username之后


选中一次表,完成多个操作

ALTER TABLE user10
ADD test4 INT NOT NULL DEFAULT 123 AFTER password,
ADD test5 FLOAT(6,2) FIRST,
ADD test6 SET('A','B','C');

删除字段

ALTER TABLE user10 DROP test6;

选中表,一次删除多个字段

ALTER TABLE user10
DROP test2,
DROP test3,
DROP test4;

选中一次表,同时添加和删除字段

ALTER TABLE user10
ADD test INT UNSIGNED NOT NULL DEFAULT 10 AFTER sex,
DROP addr;

修改字段

修改字段类型、完整性约束条件、位置

#email VARCHAR(200)
ALTER TABLE user10 MODIFY email VARCHAR(200);#这样改之前的完整性约束条件就没了
ALTER TABLE user10 MODIFY email VARCHAR(200) NOT NULL DEFAULT '1105797203@qq.com';# 可以这样改
-- 将card字段移动到test之后
ALTER TABLE user10 MODIFY card CHAR(18) AFTER test;
-- 将test字段修改为CHAR(32) NOT FULL DEFAULT '123',并且移动到第一个位置上
ALTER TABLE user10 MODIFY  test CHAR(32) NOT FULL DEFAULT '123' FIRST;

修改字段名称

-- 将test改为test1
ALTER TABLE user10 CHANGE test test1 CHAR(32) NOT FULL DEFAULT '123' ;
ALTER TABLE user10 CHANGE test1 test1 INT;

添加删除默认值

CREATE TABLE IF NOT EXISTS user11(
id TINYINT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL UNIQUE,
age TINYINT UNSIGNED
);
AITER TABLE user11 ALTER age SET DEFAULT 18;#添加默认值
ALTER TABLE user11 ADD email VARCHAR(50);
AITER TABLE user11 ALTER email SET DEFAULT '1105797203@qq.com';#添加默认值
AITER TABLE user11 ALTER age DROP DEFAULT; #删除默认值

添加删除主键

CREATE TABLE IF NOT EXISTS user12(
id INT
);
ALTER TABLE user12 ADD PRIMARY KEY(id);
CREATE TABLE IF NOT EXISTS user13(
id INT,
card CHAR(18),
username VARCHAR(20) NOT NULL
);
ALTER TABLE user13 ADD PRIMARY KEY(id,card);#添加复合主键
ALTER TABLE user12 DROP PRIMARY KEY;#删除主键 
ALTER TABLE user13 DROP PRIMARY KEY;#删除主键 
ALTER TABLE user12 ADD CONSTRAINT symbol PRIMARY KEY index_type(id);#另一种方式添加主键
CREATE TABLE IF NOT EXISTS user14(
id INT UNSIGNED KEY AUTO_INCREMENT
);
ALTER TABLE user14 DROP PRIMARY KEY;#这时会报错,主键和自增长同时存在的时候,应先删除自增长再删除主键
ALTER TABLE user14 MODIFY id UNSIGNED; #这时id已不是自增长
ALTER TABLE user14 DROP PRIMARY KEY;#这时才可以删除主键

添加唯一索引

ALTER TABLE user13 ADD UNIQUE(username);
ALTER TABLE user13 ADD CONSTRANINT symbol UNIQUE KEY uni_card(card);
ALTER TABLE user3 DROP INDEX username;#删除唯一索引
ALTER TABLE user3 DROP KEY uni_card;
ALTER TABLE user13 ADD CONSTRANINT symbol UNIQUE KEY mulUni_id_card(id,card); #添加复合索引
ALTER TABLE user3 DROP KEY mulUni_id_card;#删除复合索引

修改标的存储引擎

ALTER TABLE user14 ENGINE=存储引擎名称;

设置自增长的值

ALTER TABLE user14 AUTO_INCREMENT=值;

删除数据表

DROP TABLE user12;
DROP TABLE IF EXISTS user12;#一次删除一张表
DROP TABLE IF EXISTS user11,user10,user9;
-- 登陆的时候打开数据库
mysql -uroot -p -D maizi
ENTER PASSWORD:
SELECT DATABASE();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值