1.对于初学者先点一下,注释不是“//”而是“--”。
2.用户的数据实际上是存放在数据库的表中,所以当我们要向数据库中存放数据时,必须先创建表。
3.创建语法:
create table [<模式名>.<>(
<字段2><类型>[约束条件];
<字段2><类型>[约束条件];
......
)[tablespace<命名空间>];
4.添加一条数据: eg: insert into classInfo values(1001,'软件15',2015,4);
6.删除数据: 语法: delete from <表名>[where<条件>]
eg: delete from classInfo;
7.若发现数据缺失了数据完整性 eg:班级编号重复了、班级名称为空等
此时我们可以通过添加约束来解决。
1.添加主键约束语法:alter table <表名> add constraint <主键约束名> primary key(主键名);
eg: alter table classInfo add constraint PK_classInfo_cid primary key(cid);
2.非空约束语法:alter table <表名> modify <列名> not null;
eg: alter table classInfo modify cname not null;
3.唯一约束语法:alter table <表名> add constraint <唯一约束名> unique(列名1,列名2...);
--[using index tablespace<表空间>]
eg: alter table classInfo add constraint UQ_classInfo_cname unique(cname);
8.删除表的语法: drop table <表名>
eg: drop table classInfo;
9.重新创建带行级约束的表
create table classInfo(
cid number(4) primary key, --带主键的班级编号
cname varchar2(100) unique not null, --班级名称(唯一、且非空)
cyear number(4), --入学年份
clen number(1) --学制 括号中的数字表示这个数字有几位
);
10.重新创建带表级约束的表
create table classInfo(
cid number(4) primary key, --带主键的班级编号
cname varchar2(100) unique not null, --班级名称(唯一、且非空)
cyear number(4), --入学年份
clen number(1) --学制 括号中的数字表示这个数字有几位
constraint PK_classInfo_cid primary key(cid),
constraint UQ_classInfo_cname unique(cname)
);
11.添加外键约束来使两个表相连:
语法:alter table <表名> add constraint <外键约束名> foreign key(列名) references <被引用的表名>(<列名>);
[on delete cascade | on delete set null]
eg:alter table stuInfo add constraint FK_stuInfo_cid foreign key(cid) references classInfo(cid);
12.检查判断约束:
检查语法:alter table <表名> add constraints <检查约束名> check (<检查条件>);
eg: alter table stuInfo add constraints CK_stuInfo_sex check (sex = '男' or sex = '女');
alter table stuInfo add constraints CK_stuInfo_sex check (sex in ('男','女')); --两种都行
13.删除唯一约束:
删除语法:alter table <表名> drop constraint <约束名>;
14.约束操作:
1.删除联系方式上的唯一约束
语法:alter table <表名> drop constraint <约束名>;
eg : alter table stuInfo drop constraint CK_stuInfo_sex;
2.禁用性别上的检查约束
语法:alter table <表名> disable constraint CK_stuInfo_sex;
eg : alter table stuInfo disable constraint CK_stuInfo_sex;
3.启用姓名上的非空约束
语法:alter table <表名> enable constraint <约束名>;
eg : alter table stuInfo enable constraint CK_stuInfo_sex;
15.修改表结构:
1.查看表的结构: select * from user_tab_columns where table_name = 'STUINFO'; //必须大写
2.将学生信息表stuInfo重命名为studentInfo
语法:alter table <原表名> rename to <新表名>;
alter table stuInfo rename to studentInfo;
3.将学生信息表中的列sex重命名为stuSex
语法:alter table <表名> rename column <原列名> to <新列名>;
alter table studentInfo rename column sex to stuSex;
4.在学生信息表中添加列stuPwd,类型为number(10);
语法:alter table <表名> add <列名> <数据类型> [default] [null/not null];
alter table studentInfo add stuPwd number(10);
5.修改学生信息表中的列stuPwd的数据类型为varchar2(20);
语法:alter table <表名> modify <列名> <数据类型> [defauult] [null/not null];
alter table studentInfo modify stuPwd varchar2(20);
6.删除列学生信息表中的列 stuPwd
语法:alter table <表名> drop column <列名>;
alter table studentInfo drop column stuPwd;
2.用户的数据实际上是存放在数据库的表中,所以当我们要向数据库中存放数据时,必须先创建表。
3.创建语法:
create table [<模式名>.<>(
<字段2><类型>[约束条件];
<字段2><类型>[约束条件];
......
)[tablespace<命名空间>];
4.添加一条数据: eg: insert into classInfo values(1001,'软件15',2015,4);
6.删除数据: 语法: delete from <表名>[where<条件>]
eg: delete from classInfo;
7.若发现数据缺失了数据完整性 eg:班级编号重复了、班级名称为空等
此时我们可以通过添加约束来解决。
1.添加主键约束语法:alter table <表名> add constraint <主键约束名> primary key(主键名);
eg: alter table classInfo add constraint PK_classInfo_cid primary key(cid);
2.非空约束语法:alter table <表名> modify <列名> not null;
eg: alter table classInfo modify cname not null;
3.唯一约束语法:alter table <表名> add constraint <唯一约束名> unique(列名1,列名2...);
--[using index tablespace<表空间>]
eg: alter table classInfo add constraint UQ_classInfo_cname unique(cname);
8.删除表的语法: drop table <表名>
eg: drop table classInfo;
9.重新创建带行级约束的表
create table classInfo(
cid number(4) primary key, --带主键的班级编号
cname varchar2(100) unique not null, --班级名称(唯一、且非空)
cyear number(4), --入学年份
clen number(1) --学制 括号中的数字表示这个数字有几位
);
10.重新创建带表级约束的表
create table classInfo(
cid number(4) primary key, --带主键的班级编号
cname varchar2(100) unique not null, --班级名称(唯一、且非空)
cyear number(4), --入学年份
clen number(1) --学制 括号中的数字表示这个数字有几位
constraint PK_classInfo_cid primary key(cid),
constraint UQ_classInfo_cname unique(cname)
);
11.添加外键约束来使两个表相连:
语法:alter table <表名> add constraint <外键约束名> foreign key(列名) references <被引用的表名>(<列名>);
[on delete cascade | on delete set null]
eg:alter table stuInfo add constraint FK_stuInfo_cid foreign key(cid) references classInfo(cid);
12.检查判断约束:
检查语法:alter table <表名> add constraints <检查约束名> check (<检查条件>);
eg: alter table stuInfo add constraints CK_stuInfo_sex check (sex = '男' or sex = '女');
alter table stuInfo add constraints CK_stuInfo_sex check (sex in ('男','女')); --两种都行
13.删除唯一约束:
删除语法:alter table <表名> drop constraint <约束名>;
14.约束操作:
1.删除联系方式上的唯一约束
语法:alter table <表名> drop constraint <约束名>;
eg : alter table stuInfo drop constraint CK_stuInfo_sex;
2.禁用性别上的检查约束
语法:alter table <表名> disable constraint CK_stuInfo_sex;
eg : alter table stuInfo disable constraint CK_stuInfo_sex;
3.启用姓名上的非空约束
语法:alter table <表名> enable constraint <约束名>;
eg : alter table stuInfo enable constraint CK_stuInfo_sex;
15.修改表结构:
1.查看表的结构: select * from user_tab_columns where table_name = 'STUINFO'; //必须大写
2.将学生信息表stuInfo重命名为studentInfo
语法:alter table <原表名> rename to <新表名>;
alter table stuInfo rename to studentInfo;
3.将学生信息表中的列sex重命名为stuSex
语法:alter table <表名> rename column <原列名> to <新列名>;
alter table studentInfo rename column sex to stuSex;
4.在学生信息表中添加列stuPwd,类型为number(10);
语法:alter table <表名> add <列名> <数据类型> [default] [null/not null];
alter table studentInfo add stuPwd number(10);
5.修改学生信息表中的列stuPwd的数据类型为varchar2(20);
语法:alter table <表名> modify <列名> <数据类型> [defauult] [null/not null];
alter table studentInfo modify stuPwd varchar2(20);
6.删除列学生信息表中的列 stuPwd
语法:alter table <表名> drop column <列名>;
alter table studentInfo drop column stuPwd;