MySQL数据库(六)__2018.11.13

动态添加默认值,删除默认值。

alert table tb_name alter 字段名称 set default 默认值;

alert table tb_name alter 字段名称 drop default;

#测试添加删除默认值操作
CREATE TABLE user2(
	id INT UNSIGNED AUTO_INCREMENT KEY,
	username VARCHAR(20) NOT NULL,
	age TINYINT UNSIGNED NOT NULL DEFAULT 18,
	email VARCHAR(50) NOT NULL
);

#给email字段添加默认值 imooc@qq.com
ALTER TABLE user2
ALTER email SET DEFAULT 'imooc@qq.com';

先选中表名,再选中字段。

--删除字段默认值。

#删除age字段默认值 18
ALTER TABLE user2
ALTER age DROP DEFAULT;

练习:添加addr字段,并设置默认值为‘北京’,然后删除默认值。

修改字段类型字段属性。

alter table tb_name modify 字段名称 字段类型【字段属性】 【first||after 字段名称】;

修改字段名称、类型、属性。

alter table tb_name change 原字段名称 新字段名称 字段类型 字段属性 【first||after 字段名称】;

#测试修改字段类型和字段属性、字段名称
CREATE TABLE user3(
	id INT UNSIGNED AUTO_INCREMENT KEY,
	username VARCHAR(5) NOT NULL UNIQUE,
	PASSWORD CHAR(32) NOT NULL,
	email VARCHAR(10) NOT NULL
);

#将用户名字段的类型改为20
ALTER TABLE user3
MODIFY username VARCHAR(20) NOT NULL UNIQUE;

可以不用写unique,因为之前已经有了unique,不写它也不会被删除。

#将用户名字段的类型改为20
ALTER TABLE user3
MODIFY username VARCHAR(30) NOT NULL;

但是Not NULL不能省,否则会去掉这一属性。

#将用户名字段的类型改为20
ALTER TABLE user3
MODIFY username VARCHAR(20) UNIQUE;

#将password字段改为40

#将email字段改为varchar(50) not null 并且将字段位置改到首位
ALTER TABLE user3
MODIFY email VARCHAR(50) NOT NULL FIRST;

#将username 名称改为user
ALTER TABLE user3
CHANGE username USER VARCHAR(20) NOT NULL;

#将password 名称改为pwd
ALTER TABLE user3
CHANGE PASSWORD pwd VARCHAR(40) NOT NULL;

#将email改为userEmail 类型改为varchar(100) default 'imooc@qq.com'
ALTER TABLE user3
CHANGE email userEmail VARCHAR(100) DEFAULT 'imooc@qq.com';

modify只能该属性,不能该名字。change可以。

添加主键、删除主键约束。

alter table tb_name add primary key(字段名称);

alter table tb_name drop primary key;(一个表中只有一个主键)

#测试添加和删除主键
CREATE TABLE user4(
	id INT UNSIGNED,
	username VARCHAR(20) NOT NULL
);

ALTER TABLE user4 ADD PRIMARY KEY(id);

删除主键:

CREATE TABLE user5(
	id INT UNSIGNED AUTO_INCREMENT KEY,
	username VARCHAR(20) NOT NULL
);

删除主键时会报错,原因是这块定义了一个自动增长的属性,这个属性是配合主键使用的,所有必须先去掉auto_increment。

#将id的auto_increment去掉
ALTER TABLE user5 MODIFY id INT UNSIGNED;

应先去掉自动增长,再删除主键。

添加唯一、删除唯一性索引。

alter table tb_name add unique key index index_name(字段名称);

alter table tb_name drop unique index_name;

#测试唯一索引,添加删除唯一索引
CREATE TABLE user6(
	id INT UNSIGNED AUTO_INCREMENT KEY,
	username VARCHAR(20)NOT NULL UNIQUE,
	PASSWORD CHAR(32)NOT NULL,
	email VARCHAR(50)NOT NULL UNIQUE
);

#测试删除唯一索引username和email
ALTER TABLE user6
DROP INDEX username;

#添加唯一性索引
ALTER TABLE user6
ADD UNIQUE KEY(username);

索引的名字默认是字段的名称。

#添加并指定唯一性索引的名称
ALTER TABLE user6
ADD UNIQUE INDEX uni_email(email);

表结构这块的操作:

修改数据表名称:

alter table table_name  rename [to|as] new_tb_name;

或者rename table tb_name to new_tb_name;

#将user6改为user66
ALTER TABLE user6
RENAME TO user66;

#将user66改为user6
ALTER TABLE user66
RENAME AS user6;

如果是以rename开始的,to不能省略。

rename table user66 to user6;
#创建数据表user-id tinyint 字段
#添加一个username字段 varchar(5) not null
#一次添加两个字段 password char(32) not null email varchar(10) not null
#给email字段添加默认值 'imooc@qq.com'
#将username字段改为username 类型varchar(20)not null
#将password字段改为password char(40) not null
#给id字段添加主键索引
#给id字段添加aito_increment属性
#给username字段添加唯一索引
#给Email字段添加唯一索引名称为uni_email
#在一次添加2个字段 age tinyint unsigned default 18 加到password之后
#addr varchar(20) not null default '北京'
#删除addr的默认值
#删除password的唯一索引
#删除Email唯一索引
#删除主键索引
#重命名user表new_user
#用rename将表名重新命名为user
CREATE TABLE IF NOT EXISTS USER(
	id TINYINT
);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值