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();