java中怎样创建表完整性约束_数据库-数据类型-数据库创建表的 约束以及 DDL操作...

-- MySql 的数据类型

-- 在创建表结构时,数据类型可以对字段约束,类似Java的数据类型

-- 数据类型分类

-- 1、数值类型 : 修饰字段数字的类型

-- tinyint 微整型 1个字节

-- smallint 短整型 2个字节

-- mediumint 中等整型 3个字节

-- int 整型 4个字节

-- BIGINT 长整型 8个字节

-- float 小数型 4个字节

-- double 小数型 8 个字节

-- decimal(总长度,小数点个数)

-- 在创建表时,指定数据类型

-- 创建表语法

create table 表名(

字段1 数据类型 [primary key] ,

字段2 数据类型 [not null]

...

)

-- 删除表 (一起删除与该表相关的所有记录 数据和约束)

drop table mytest1;

create table mytest1 (

id tinyint primary key ,

id_2 smallint not null,

id_3 mediumint ,

id_4 int ,

id_5 float ,

money decimal(5,2) -- 5:数值的整个个数, 2:小数点的个数

)

-- 2 文本类型 用于定义表的字段是文本的类型

-- char 不可变长度字符类型 0-255

-- varchar 可变长度字符类型 0-255

-- tinyblob 存储二进制类型(图像,视频等)0-255

-- tinytext 存储文本类型

-- blob 存储二进制类型(图像,视频等)

-- text 存储文本类型

-- mediumblob 存储二进制类型(图像,视频等)(中等大小)

-- mediumtext 存储文本类型

-- longblob 存储二进制类型(图像,视频等)(超大内存)

-- longtext 存储文本类型

create table mytest2(

id int primary key auto_increment, -- 主键自增长 默认从1开始

username varchar(20) , -- 可变长度

sex char(1) ,-- 不可变长度

introduce text, -- 存储文本类型

image blob

)

select * from mytest2

3、日期 时间类型

-- date 日期类型 yyyy-mm-dd

-- time 时间类型 hh:mi:ss

-- year 年份

-- datetime 日期时间类

-- timestamp

create table mytest3(

id int primary key auto_increment ,

birthday date ,

mytime time ,

bir_year year ,

publishDate datetime ,-- 发布时间

createDate timestamp -- 创建时间 需要打开自动更新时间戳操作 每次修改新增都自动更新为系统时间

)

select * from mytest3;

-- 数据库创建表的 约束以及 DDL操作

-- 所谓表的约束: 用于在创建表时,为了确保数据的完整性 订制数据表的规则。

mysql中常用约束

1、 主键约束 : 用于唯一标志该条记录的约束 (等价于 非空约束+唯一约束 , 一张表中只能有一个主键列 主键可以是多字段组合)

2、非空约束 : 约束该字段插入时不为空

3、唯一约束: 该字段的数据在一整列是唯一的

4、默认值约束: 设置该字段的 默认值

5、检查约束(check):设置字段值的范围是否符合指定条件

6、外键约束: 用于主外键关联的约束

-- 创建用户表 指定相关约束

create table t_user(

userid int primary key auto_increment, -- 主键 自增长 从1 开始

username varchar(20) not null, -- 非空约束

password varchar(20),

email varchar(50) unique , -- 唯一约束

sex char(1) default ('男'), -- 默认约束

age int check( age >0 and age<120), -- 检查约束年龄在0-120之间

birthday datetime default(now()) -- 如果没有指定生日,默认值为系统时间

)

-- 订单表

create table t_order(

orderid int primary key ,

orderno varchar(30) not null,

order_amout decimal(8,2), -- 订单金额

user_id int references t_user(userid) -- 外键约束

)

-- 以上约束 既可以在创建表的时候完成 ,也可以在创建表之后通过alter添加约束

create table my_user(

user_id int ,

user_name varchar(20)

)

-- 使用alter 添加 主键约束、 唯一约束、 检查约束 ,外键约束 其中非空约束不能单独添加

-- 1、主键约束语法: alter table 表名 add constraint 约束名 primary key (列名)

alter table my_user add constraint pk_userid primary key (user_id);

-- 2 唯一约束语法:

alter table 表名 add constraint 约束名 unique(列名);

alter table my_user add constraint uk_username unique(user_name );

-- 3、检查约束

alter table 表名 add constraint 约束名 check(列名);

alter table t_user add constraint ck_age check (age>0 and age<100);

-- 4、外键约束 (指定关联表的主键 )

alter table 表名 add constraint 约束名 foreign key(外键列名) references 主表(主键)

alter table t_order add constraint fk_userid foreign key (user_id) references t_user(userid);

-- 如果表创建好了 ,需要修改表结构,也可以通过alter 修改

select * from t_user;

-- 1 在t_user表中 新增 money 字段

-- 语法: alter table 表名 add column 字段名 数据类型(长度)

alter table t_user add column money decimal(8,2);

-- 2、删除表的字段 birthday

-- 语法: alter table 表名 drop column 字段名

alter table t_user drop column birthday ;

-- 3、修改字段的数据类型或长度

-- 语法: alter table 表名 modify column 字段名 数据类型(长度)

desc t_user;

alter table t_user modify column sex varchar(10);

-- DML insert update delete

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值