个人总结:Sql(一:创建&删除&修改库&表||附:mysql数据类型及默认值)

个人总结:Sql(一:创建&删除&修改库&表||附:mysql数据类型及默认值)

createdatabase

创建表使用create database DNAME;
存在的话会失败,严谨的写法如:
create database if not exists DBNAME;
两条语句在java中执行差别待验证(高亮备忘)
指定库中默认编码:
create database if not exists DNAME default charset utf8 collate utf8_general_ci;

create table

create table TNAME(
CNAME1 DTYPE [OPTION]
[, CNAME2 DTYPE [OPTION]]
);

[OPTION]:约束
primary key:主键约束(包含not null、unique)
not null:非空约束
unique:唯一约束(包含not nul)
唯一约束包含not nul约束
foreign key:外键约束
check:限制列中的值的范围(包含not null)
限制列中的值的范围时包含not null约束
default:默认值
auto_increment:自动增长
创建表并指定表中默认编码&数据库引擎:
create table TNAME default charset utf8 collate utf8_general_ci

Eg:
在这里插入图片描述注:
多个约束条件用空格分隔
auto_increment=100可以修改起始值
varchar(n),n为字符的个数:一个字符:’男’ ,’a’
** 多个列定义 PRIMARY KEY**
** 多约束怎么add??**

alterdatabase

待续

altertable

在表中添加列
alter table TNAME
add COLNAME DTYPE;
改变后数据默认值:附录

删除表中的列
alter table TNAME
drop COLNAME ;

改变列的数据类型
alter table TNAME
modify column COLNAME DTYPE;
在这里插入图片描述改变列的名称
alter table TNAME
change column OLD_COLNAME NEW_COLNAME DTYPE;
在这里插入图片描述在这里插入图片描述同时改变列的名称和数据类型是(被)允许的
在这里插入图片描述当列中有数据时,改变列名称,不改变列的数据类型(也可能相兼容数据,高亮备注待验证),是可以的。
在这里插入图片描述原来int列a:123变为varchar列aa :123数据保留,int自动转化为varchar类型
在这里插入图片描述在这里插入图片描述在这里插入图片描述
当列中有数据时,改变列的数据类型且不兼容,是可以的,但产生警告,原数据丢失。

修改约束

primary key
添加primary key:
alter table TNAME
add primary key(COLNAME);
删除primary key:
alter table TNAME
drop primary key;

Not null
** 待研究,高亮备忘**

unique
添加unique:
alter table TNAME
add unique(COLNAME);
删除unique:
alter table TNAME
drop index COLNAME;

foreign key
外键约束以一对多关系为例
新增外键:
一:ONETABLE(实例:phone,主键: PRIKEY) 多:MUTTABLE(实例:user,新增外键列:FKWY)
需要FKWY存在:
alter table MUTTABLE
add foreign key(FKWY) references ONETABLE(ONETABLE_PRIKEY)
eg:
在这里插入图片描述
此处仅仅对列进行了命名,并未对外键关系命名,外键关系为默认名:
在这里插入图片描述使用如下:
alter table MUTTABLE
add constraint FOREIGN_KEY_NAME
foreign key(FKWY) references user(PRIKEY); |sdkg|可对外键关系命名
eg:
在这里插入图片描述
在这里插入图片描述
由于外键不包括not null约束,在表中有数据的情况下是可以添加外键的。
多外键添加:
alter table MUTTABLE
add constraint FOREIGN_KEY_NAME1
foreign key(FKWY1) references ONETABLE1 (PRIKEY)
[,add constraint FOREIGN_KEY_NAME2 foreign key(FKWY2) references ONETABLE2 (PRIKEY)];

删除外键:
alter table MUTTABLE
Drop foreign key FOREIGN_KEY_NAME;
或者
alter table MUTTABLE
drop constraint FOREIGN_KEY_NAME
注意:FOREIGN_KEY_NAME是外键关系名,而非列名

check:限制列中的值的范围(包含not null)
default:默认值
auto_increment:自动增长

DTYPE:附录

mysql数据类型及默认值:
默认值是指新建不制定n的长度 不赋值的大小 修改表后默认值

未完待续…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值