数据库的修改表字段语句

常用的语法格式如下:

ALTER TABLE <表名> [修改选项]

修改选项的语法格式如下:

{ ADD <列名> <类型> ---------------添加字段
| CHANGE <旧列名> <新列名> <新列类型> --------------修改字段名称
| ALTER <列名> { SET DEFAULT <默认值> | DROP DEFAULT } -----------修改字段默认值或者删除字段默认值
| MODIFY <列名> <类型> -----------------修改字段数据类型
| DROP <列名> --------------------删除字段
| RENAME TO <新表名> } ------------------修改表名

修改数据库表的某个字段默认值
如果数据库表中该字段有默认值,需要先删除其默认值:

alter table 表名 alter column 字段名 drop default;

若没有默认值就直接设置即可:

alter table 表名 alter column 字段名 set default 默认值;

mysql 添加字段 修改字段为not null
1.添加一个字段

ALTER TABLE 表名 ADD 字段名 VARCHAR(16);

2.修改字段为not null,还要把原来的类型也写出来

ALTER TABLE 表名 MODIFY 字段名 VARCHAR(16) NOT NULL;

3.更改列名

alter table 表名 change 旧列名 新列名 新类型 not null;

练习:牛客

1.存在actor表,包含如下列信息:

CREATE TABLE  actor  (
   actor_id  smallint(5)  NOT NULL PRIMARY KEY,
   first_name  varchar(45) NOT NULL,
   last_name  varchar(45) NOT NULL,
   last_update  datetime NOT NULL);

现在在last_update后面新增加一列名字为create_date, 类型为datetime, NOT NULL,默认值为’2020-10-01 00:00:00’。

#1.添加字段
#alter table `actor` add  create_date datetime;
#2.修改字段为not null
# alter table `actor` modify create_date datetime not null;
#3.设置字段的默认值
#alter table `actor` alter column create_date set default '2020-10-01 00:00:00';
#或者
alter table `actor` add  create_date datetime not null default '2020-10-01 00:00:00';

外键:

创建表的时候创建外键:

CREATE TABLE t_book(
	id int primary key auto_increment,
	bookName varchar(20),
	author varchar(10),
	price decimal(6,2),
	bookTypeId int,
	constraint `fk` foreign key (`bookTypeId`) references `t_bookType`(`id`)
);

已经创建好表,添加外键:

alter table 表名 add constraint FK_ID(外键名称) foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);
alter table tb_active add constraint FK_ID foreign key(user_id) REFERENCES tb_user(id)

四大排名函数:

row_number、rank、dense_rank、ntile
四大排名函数

你可能感兴趣的:(mysql)