表的相关知识:
1.表的创建
2.表的删除
3.条件数据
4.表的约束
5.删除约束
6.修改约束
数据库的数据是保存在哪?
——数据不是直接放在数据库,而是存在表中
——数据库是由表,关系,以及操作对象组成
数据库的实体:就是表
数据库存放的表就相当于java里new出来的对象
——orcl的数据类型:
number:是数字类型
char:默认长度是一个字节
date:DD--MM--YY
bfile clob blob(三种大型对象,大数据类型)能够保存较大文件最大长度是4G
varchar2:可变字符长度
创建表:班级表
create table classInfo(
cid number(4), 班级编号
cname varchar2(100), 班级名称
cyear number(4), 入学年份
clen number(1) 学制
);
——添加数据
insert into classInfo values(1619,'计科',2016,4);
——删除所有的数据
delete from classInfo;
——给班级编号加主键约束constraint
——主键是唯一的
alter table classInfo add constraint PK_CLASSINFO_CID primary key(cid);
——给班级名称添加非空约束
alter table classInfo modify cname not null;
——给班级名称添加唯一约束
alter table classInfo add constraint UQ_CLASSINFO_CNAME unique(cname);
——删除表
drop table classInfo;
——创建带行级约束的表
create table classInfo(
cid number(4)primary key,
cname varchar2(100) nuique not null,
cyear number(4),
clen number(1)
);
——自增长的主键
——第一步创建序列
create sequence class_test start with 1619 increment by 1;
——插入数据
insert into classInfo values(class_test.nextval,'计科',2016,4);
第二种:
create table classInfo(
cid number(4),
cname varchar2(100),
cyear number(4),
clen number(1)
constraint PK_CLASSINFO_CID primary key(cid),
constraint UQ_CLASSINFO_CNAME unique(cname)
);
——创建学生信息表
create table stuInfo(
stuNo number(10)primary key,
cid number(4),
stuName varchar2(100)not null,
stuIDcard varchar2(20),
sex varchar2(6),
stuAge number(3),
stuTel varchar2(15),
stuAddr varchar2(100)
);
——插入数据
insert into stuInfo values(0001,1619,'张三','43052519846561321231','男',18,'138769853','衡阳');
——学生信息表的cid添加外键约束指向班级表的主键,注意:在添加外键的时候,表里面不能有记录
alter table stuInfo add constraint FK_STUINFO_CID foreign key(cid) references classInfo(cid);
——添加检查约束(检查性别)check
alter table stuInfo add constraint CK_STUINFO_SEX check(sex='男' or sex='女');
alter table stuInfo add constraint CK_STUINFO_SEX check(sex in('男','女');
——删除约束
alter table stuInfo drop constraint CK_STUINFO_SEX;
——默认约束
alter table stuInfo modify sex default '男';
——年龄在12到30岁之间
alter table stuInfo add constraint CK_STUINFO_STUAGE check(stuAge>12 and stuAge<30);
alter table stuInfo add constraint CK_STUINFO_STUAGE check(stuAge between 12 and 30);
——身份证号码是18位
alter table stuInfo add constraint CK_STUINFO_STUIDCARD check(length (stuIDcard)=18);
——查看所有约束
select * from user_constraints where table_name='STUINFO'; (必须大写)
——在建表的时候添加约束
create table stuInfo(
stuNo number(10)primary key,
cid number(4) constraint FK_STUINFO_CID references classInfo(cid),
stuName varchar2(20),
stuIDcard varchar2(20) constraint CK_STUINFO_STUIDCARD check(length (stuIDcard)=18),
sex varchar2(6),
stuAge number(3)constraint CK_STUINFO_STUAGE check(stuAge>12 and stuAge<30),
stuTel varchar2(15) nuique
);
——查看表结构
select * from user_tab_columns where table_name='STUINFO';
——修改表结构
——修改表名
alter table stuInfo rename to studentInfo;
——修改学生信息表的sex
alter table studentInfo rename column sex to stuSex;
——添加一列
alter table studentInfo add stuPwd number(10);
——删除一列
alter table studentInfo drop column stuPwd;
总结:
约束:
1.主键约束
特点:非空且唯一
作用:确保表中的每行数据的唯一性
2.外键
特点:唯一涉及表与表之间关系的约束
字段名 字段类型 references 主表名列名
3.唯一约束
作用:保证字段值的唯一性
4.检查约束
作用:表中的值,更具有实际意义
5.非空约束
unique