增删改查和完整性约束

建表

1
2
3
4
5
6
create table student(
stuno varchar2(20),
name varchar2(20),
age int,
height number(4,1)
);

插入

insert into表 values值

1
2
3
4
insert into student values ('1002','李四',20,180.5);

insert into student( stuno, name ) values('1003','王五');
insert into student ( stuno, name,age )values( '1004','王五1',null) ;

查询

select字段from表

1
2
3
4
5
6
select * from student;
select name,age from student;
select name as 姓名 from student;
select name from student where stuno= '1004 ' ;
--隐私转换,字符串和数之间,可以自动转换
select name from student where stuno=1004;

修改

update表set字段=值 [字段=值]

1
2
3
4
update student set age=30, height=170;--所有字段的更新
update student set age=age+5 where name= 'ZHANGSAN';
--当字段值为null的是后执行类似age=age+5的语句不会对字段值产生影响
update student set age=age+5;--即age得现有值 才能顺利执行age+5

删除

delete from 表

1
delete from student where age=20;

where子句

在查询,修改,删除时可以使用where子句作为条件筛选,表示操作那些符合条件的记录

提交

对表的修改必须提交后才生效

提交指令: commit

回滚指令: rollback

表的完整性约束

当我们向表中添加数据时,如student, 可以会由于数据错误或误操作,表中会产生一些错误数据。而表的完整性约束就是为了解决这个问题。

如:通过唯一性约束确保学号不能重复;通过非空约束确保姓名不能为空;

当我们给表中的列设置约束条件后,再向表中插入数据或修改表的数据时,会检查插入或修改的数据是否满足我们的”约束条件”,如果不满足,就不会执行,这样就防止了垃圾数据的产生。

唯一

unique
添加唯一-约束的列, 该列值不能重复。

添加时机

1创建表时

直接在字段后添加约束名

1
2
3
4
5
6
create table student (
stuno varchar2(20) unique,
name varchar2(20) ,
age int,
height number(4,1)
);

2建表后再添加

alter table表名add constraint约束名约束关键字(字段)

1
alter table student add constraint uq_ stu_ stuno unique( stuno ) ;

唯一约束的列可以有多个空值(NULL)

非空not null

该列的值不能为空

例如:

1
2
3
4
5
--给student表的name字段添加非空约束

alter table student add constraint nn_stu_name not null(name);
--修改的时候
ALTER TABLE "MYB". "STUDENT" MODIFY ("NAME" NOT NULL)

检查check

自定义某- -列的值必须满足某个条件
例如,

1
2
-- 学生年龄必须在10~40之间
alter table student add constraint ck_stu_age check(age between 10 and 40);

性别只有男和女两个值
(注意当前student表并无sex字段)

1
alter table student add constraint ck_stu_sex check(sex in('男''女'));

主键约束与主键列的选择 primary key

主键列的数据就不能为空,并且不能重复(非空且唯一 )

一个表最多只能有一个主键(建议创建主键)

使用主键来唯一标识某条记录

1
ALTER TABLE“MYB"."STUDENT" ADD PRIMARY KEY ("STUNO")

逻辑主键 和 业务主键

外键

除此之外还有外键约束,这个等之后讲到多表关联之后再讲解

约束的真实项目使用说明

在真正的企业开发中,除了主键约束这类具有强需求的约束,像唯一约束、外键约束、检查约束等更多时候仅仅出现在数据库设计阶段,真实环境却很少应用,更多是放到程序逻辑中去进行处理。