oracle数据库总结大全
来源:互联网 发布:淘宝降权会有提示吗 编辑:程序博客网 时间:2024/05/22 03:22
学院 专业 班级 课程 学籍 成绩
数据库名称:学生库
1》学院表:关键字段:学院编号,学院名称 关系:学院编号为主键
2》专业表:关键字段:专业编号,专业名称 学院编号 关系:专业编号是主键 学院编号是学院表的外键
3》班级表:关键字段:班级编号,班级名称,专业编号 关系:班级编号是主键 专业编号是专业表的外键
4》课程表:关键字段:课程编号,课程名称, 关系:课程编号是主键
5》学籍表:关键字段:学号,姓名,性别,学院编号专业编号,班级编号 关系:学号为主键
学院编号为学院表的外键
专业编号为专业表的外键
班级编号为班级表的外键
6》成绩表:关键字段:学号,课程编号,分数,学期 关系:(学号,课程编号) 为主键 学号为学籍表的外键
课程编号为课程表的外键
学院表
create table xueyuanbiao
(
xy_xybh char(2) not null primary key,
xy_xymc char(8) not null,
xy_yz char(6),
xy_sj char(6),
xy_xyjs varchar(300)
)
专业表
create table zhuanyebiao
(
zy_zybh char(2) not null primary key,
zy_zymc char(20) not null,
// zy_xybh char(2) not null, 学院表为外键
zy_xybh char(2) not null constraint fk_xybh foreign key references xy_xybh,
zy_xyjs varchar(300)
)
班级表
create table banjibiao
(
bj_bjbh char(4) identity(1,1) primary key,
bj_bjmc char(12) not null,
//bj_zybh char(2) not null, 专业表外键
bj_zybh char(2) not null constraint fk_zybh foreign key references zy_zybh,
bj_bz char(6),
bj_xxwy char(6)
)
课程表
create table kechengbiao
(
kc_kcbh char(2) not null primary key,
kc_kcmc char(10) not null,
//kc_lb char(2) not null,
kc_lb char(2) not null constraint ck_lb check (类别>='01' and 类别<='04'),
kc_xf decimal(4,0),
kc_kcjs varchar(300)
)
学籍表
create table xuejibiao
(
xj_xh char(6) identity(1,1) primary key,
xj_xm char(8) not null,
xj_xb char(2),
//xj_xybh char(2) not null, 学院表的外键
xj_xybh char(2) not null constraint fk_xybh1 foreign key references xy_xybh,
//xj_zybh char(2) not null,专业表的外键
xj_zybh char(2) not null constraint fk_zybh1 foreign key references zy_zybh,
//xj_bjbh char(4) not null, 班级表的外键
xj_bjbh char(4) not null constraint fk_bjbh1 foreign key references bj_bjbh,
//xj_zt char(2) 1,2,3
xj_zt char(2) default '01' constraint ck_zt check(状态>='01' and 状态<='03'),
xj_sfzh char(18)
)
成绩表
create table chengjibiao
(
//cj_xh char(6) not null, 学籍表的外键
//cj_kcbh char(2) not null, 课程表的外键
//cj_fs decimal(6,1) not null, 0-100之间
//cj_xq char(2)
cj_xh char(6) not null constraint fk_xh1 foreign key references xj_xh,
cj_kcbh char(2) not null constraint fk_kcbh1 foreign key references kc_ckbh,
cj_fs decimal(6,1) not null constraint ck_fs check (分数>=0 and 分数<=100),
cj_xq char(1),
constraint pk_xh_kcbh primary key(xh,kcbh)
)
sql语句的种类
数据查询语言DQL select
数据定义语言DDL create,drop,alter
数据操纵语言DML insert,update,delete
数据控制语言DCL gtant,revoke
Select 基本语法
SELECT 字段列表 /*查什么*/
FROM 表名 /*从哪查*/
WHERE … /*查的条件*/
GROUP BY ... /*查询结果分组*/
ORDER BY ... /*查询结果排序*/
select 2+3*3 from dual; 数值计算
select sysdate from dual; 查询日期
set pagesize 100; 显示多少行
set linesize 100; 显示页面的间距
数据记录功能:
使用SPOOL 命令记录操作内容。
步骤1:执行命令:
spool c:\text
步骤2:执行命令:
select * from emp;
步骤3:执行命令:
select * from dept;
步骤4:执行命令:
spool off
步骤5:用记事本打开C:\test.lst 并查看内容:
SET HEADING ON/OFF:打开/关闭查询结果表头的显示,默认为ON。
SET FEEDBACK ON/OFF:打开/关闭查询结果中返回行数的显示,默认为ON。
SET ECHO ON/OFF:打开/关闭命令的回显,默认为ON。
SET TIME ON/OFF:打开/关闭时间显示,默认为OFF。
Oracle 常用的表字段数据类型有:
CHAR:固定长度的字符串,没有存储字符的位置,用空格填充。
VARCHAR2:可变长度的字符串,自动去掉前后的空格。
NUMBER(M,N):数字型,M 是位数总长度,N 是小数的长度。
DATE:日期类型,包括日期和时间在内。
BOOLEAN: 布尔型,即逻辑型。
desc/describe 表名; 查询表的结构
create table 表名(列名) as SQL查询语句 //创建一个新表,并且把查询的结构数据插入到新表里面
drop table 表名; 删除表
delete table 表名; 删除表里面的数据
truncate table 表名; 清空表
rename 旧表名 to 新表名;
select object_name from user_objects where object_type='TABLE'; //显示当前用户的所有表
数据完整性和约束条
数据完整性约束
表的五种约束
主键(primary key)
非空(not null)
唯一(unique)
检查(check)
外键(foreign key)
约束条件的创建
查看约束条件
使约束生效和失效
1.主键(primary key)
主键约束的语法如下:
[CONSTRANT 约束名] PRIMARY KEY ——列级
[CONSTRANT 约束名] PRIMARY KEY(列名1,列名2,…) ——表级
2.非空(not null)
[CONSTRANT 约束名] NOT NULL ——列级
3.唯一(unique)
惟一约束的语法如下:
[CONSTRANT 约束名] UNIQUE ——列级
[CONSTRANT 约束名] UNIQUE(列名1,列名2,…) ——表级
4.检查(check)
[CONSTRANT 约束名] CHECK(约束条件) —-列级,约束条件中只包含本列
[CONSTRANT 约束名] CHECK(约束条件) -—表级,约束条件中包含多列
5.外键(foreign key)
外键约束的语法如下:
第一种语法,如果子记录存在,则不允许删除主记录:
[CONSTRANT 约束名] FOREIGN KEY(列名1,列名2,…)
REFERENCES 表名(列名1,列名2,...)
第二种语法,如果子记录存在,则删除主记录时,级联删除子记录:
[CONSTRANT 约束名] FOREIGN KEY(列名1,列名2,...)
REFERENCES 表名(列名1,列名2,...) On delete cascade
第三种语法, 如果子记录存在,则删除主记录时,将子记录置成空:
[CONSTRANT 约束名] FOREIGN KEY(列名1,列名2,…)
REFERENCES 表名(列名1,列名2,...) On delete set null
约束条件的创建
CREATE TABLE 表名
(列名数据类型[DEFAULT 表达式][COLUMN CONSTRAINT],…
[TABLE CONSTRAINT]
);
commit; 提交
rollback; 回滚
使约束条件失效:
ALTER TABLE 表名DISABLE CONSTRANT 约束名;
使约束条件生效:
ALTER TABLE 表名ENABLE CONSTRANT 约束名;
增加新列
增加新列的语法如下:
ALTER TABLE 表名
ADD 列名数据类型[DEFAULT 表达式][COLUMN CONSTRAINT];
如果要为表同时增加多列,可以按以下格式进行:
ALTER TABLE 表名
ADD (列名数据类型[DEFAULT 表达式][COLUMN CONSTRAINT]...);
alter table 出版社
add 电子邮件varchar2(30) check(电子邮件like '%@%');
修改列的语法如下:
ALTER TABLE 表名
MODIFY 列名数据类型[DEFAULT 表达式][COLUMN CONSTRAINT]
如果要对表同时修改多列,可以按以下格式进行:
ALTER TABLE 表名
MODIFY(列名数据类型[DEFAULT 表达式][COLUMN CONSTRAINT]…);
INSERT INTO 表名(字段列表) SELECT (字段名1,字段名2,…) FROM 另外的表名; 从另外的表复制数据
--创建一个新表manager
Create table manager
as select empno,ename,sal from emp where job=’MANAGER’;
--从emp 表拷贝数据到manager
Insert into manager
Select empno,ename,sal
From emp
Where job=’CLERK’;
Select * from manager;
SET AUTOCOMMIT ON/OFF 设置是否自动提交155505577231
savepoint 建立保存点
update emp set sal=sal+100 where empno=7788; 根据条件更新数据
Select distinct job from emp; 消除重复行
select ename,sal from emp order by sal; 升序排序
select ename,sal from emp order by sal desc; 降序排序
select ename,sal from emp order by deptno,sal; 多列排序
select * from emp where (deptno=10 or deptno=20) and sal<1500; 三个条件
select * from emp where sal between 1000 and 2000; 在什么什么之间
select * from emp where job in ('SALESMAN','CLECK','MANAGER'); 选择范围
select * from emp ename like 'S%'; 模糊查询
--显示雇员的名称和所在的部门的编号和名称
Select emp.ename 姓名,emp.deptno 部门编号,dept.dname 部门名称
From emp,dept
Where emp.deptno=dept.deptno;
--查询部门10 和部门20 的所有职员
select deptno,job from emp where deptno=10
union
select deptno,job from emp where deptno=20;
startup force; 强制打开数据库
数据库名称:学生库
1》学院表:关键字段:学院编号,学院名称 关系:学院编号为主键
2》专业表:关键字段:专业编号,专业名称 学院编号 关系:专业编号是主键 学院编号是学院表的外键
3》班级表:关键字段:班级编号,班级名称,专业编号 关系:班级编号是主键 专业编号是专业表的外键
4》课程表:关键字段:课程编号,课程名称, 关系:课程编号是主键
5》学籍表:关键字段:学号,姓名,性别,学院编号专业编号,班级编号 关系:学号为主键
学院编号为学院表的外键
专业编号为专业表的外键
班级编号为班级表的外键
6》成绩表:关键字段:学号,课程编号,分数,学期 关系:(学号,课程编号) 为主键 学号为学籍表的外键
课程编号为课程表的外键
学院表
create table xueyuanbiao
(
xy_xybh char(2) not null primary key,
xy_xymc char(8) not null,
xy_yz char(6),
xy_sj char(6),
xy_xyjs varchar(300)
)
专业表
create table zhuanyebiao
(
zy_zybh char(2) not null primary key,
zy_zymc char(20) not null,
// zy_xybh char(2) not null, 学院表为外键
zy_xybh char(2) not null constraint fk_xybh foreign key references xy_xybh,
zy_xyjs varchar(300)
)
班级表
create table banjibiao
(
bj_bjbh char(4) identity(1,1) primary key,
bj_bjmc char(12) not null,
//bj_zybh char(2) not null, 专业表外键
bj_zybh char(2) not null constraint fk_zybh foreign key references zy_zybh,
bj_bz char(6),
bj_xxwy char(6)
)
课程表
create table kechengbiao
(
kc_kcbh char(2) not null primary key,
kc_kcmc char(10) not null,
//kc_lb char(2) not null,
kc_lb char(2) not null constraint ck_lb check (类别>='01' and 类别<='04'),
kc_xf decimal(4,0),
kc_kcjs varchar(300)
)
学籍表
create table xuejibiao
(
xj_xh char(6) identity(1,1) primary key,
xj_xm char(8) not null,
xj_xb char(2),
//xj_xybh char(2) not null, 学院表的外键
xj_xybh char(2) not null constraint fk_xybh1 foreign key references xy_xybh,
//xj_zybh char(2) not null,专业表的外键
xj_zybh char(2) not null constraint fk_zybh1 foreign key references zy_zybh,
//xj_bjbh char(4) not null, 班级表的外键
xj_bjbh char(4) not null constraint fk_bjbh1 foreign key references bj_bjbh,
//xj_zt char(2) 1,2,3
xj_zt char(2) default '01' constraint ck_zt check(状态>='01' and 状态<='03'),
xj_sfzh char(18)
)
成绩表
create table chengjibiao
(
//cj_xh char(6) not null, 学籍表的外键
//cj_kcbh char(2) not null, 课程表的外键
//cj_fs decimal(6,1) not null, 0-100之间
//cj_xq char(2)
cj_xh char(6) not null constraint fk_xh1 foreign key references xj_xh,
cj_kcbh char(2) not null constraint fk_kcbh1 foreign key references kc_ckbh,
cj_fs decimal(6,1) not null constraint ck_fs check (分数>=0 and 分数<=100),
cj_xq char(1),
constraint pk_xh_kcbh primary key(xh,kcbh)
)
sql语句的种类
数据查询语言DQL select
数据定义语言DDL create,drop,alter
数据操纵语言DML insert,update,delete
数据控制语言DCL gtant,revoke
Select 基本语法
SELECT 字段列表 /*查什么*/
FROM 表名 /*从哪查*/
WHERE … /*查的条件*/
GROUP BY ... /*查询结果分组*/
ORDER BY ... /*查询结果排序*/
select 2+3*3 from dual; 数值计算
select sysdate from dual; 查询日期
set pagesize 100; 显示多少行
set linesize 100; 显示页面的间距
数据记录功能:
使用SPOOL 命令记录操作内容。
步骤1:执行命令:
spool c:\text
步骤2:执行命令:
select * from emp;
步骤3:执行命令:
select * from dept;
步骤4:执行命令:
spool off
步骤5:用记事本打开C:\test.lst 并查看内容:
SET HEADING ON/OFF:打开/关闭查询结果表头的显示,默认为ON。
SET FEEDBACK ON/OFF:打开/关闭查询结果中返回行数的显示,默认为ON。
SET ECHO ON/OFF:打开/关闭命令的回显,默认为ON。
SET TIME ON/OFF:打开/关闭时间显示,默认为OFF。
Oracle 常用的表字段数据类型有:
CHAR:固定长度的字符串,没有存储字符的位置,用空格填充。
VARCHAR2:可变长度的字符串,自动去掉前后的空格。
NUMBER(M,N):数字型,M 是位数总长度,N 是小数的长度。
DATE:日期类型,包括日期和时间在内。
BOOLEAN: 布尔型,即逻辑型。
desc/describe 表名; 查询表的结构
create table 表名(列名) as SQL查询语句 //创建一个新表,并且把查询的结构数据插入到新表里面
drop table 表名; 删除表
delete table 表名; 删除表里面的数据
truncate table 表名; 清空表
rename 旧表名 to 新表名;
select object_name from user_objects where object_type='TABLE'; //显示当前用户的所有表
数据完整性和约束条
数据完整性约束
表的五种约束
主键(primary key)
非空(not null)
唯一(unique)
检查(check)
外键(foreign key)
约束条件的创建
查看约束条件
使约束生效和失效
1.主键(primary key)
主键约束的语法如下:
[CONSTRANT 约束名] PRIMARY KEY ——列级
[CONSTRANT 约束名] PRIMARY KEY(列名1,列名2,…) ——表级
2.非空(not null)
[CONSTRANT 约束名] NOT NULL ——列级
3.唯一(unique)
惟一约束的语法如下:
[CONSTRANT 约束名] UNIQUE ——列级
[CONSTRANT 约束名] UNIQUE(列名1,列名2,…) ——表级
4.检查(check)
[CONSTRANT 约束名] CHECK(约束条件) —-列级,约束条件中只包含本列
[CONSTRANT 约束名] CHECK(约束条件) -—表级,约束条件中包含多列
5.外键(foreign key)
外键约束的语法如下:
第一种语法,如果子记录存在,则不允许删除主记录:
[CONSTRANT 约束名] FOREIGN KEY(列名1,列名2,…)
REFERENCES 表名(列名1,列名2,...)
第二种语法,如果子记录存在,则删除主记录时,级联删除子记录:
[CONSTRANT 约束名] FOREIGN KEY(列名1,列名2,...)
REFERENCES 表名(列名1,列名2,...) On delete cascade
第三种语法, 如果子记录存在,则删除主记录时,将子记录置成空:
[CONSTRANT 约束名] FOREIGN KEY(列名1,列名2,…)
REFERENCES 表名(列名1,列名2,...) On delete set null
约束条件的创建
CREATE TABLE 表名
(列名数据类型[DEFAULT 表达式][COLUMN CONSTRAINT],…
[TABLE CONSTRAINT]
);
commit; 提交
rollback; 回滚
使约束条件失效:
ALTER TABLE 表名DISABLE CONSTRANT 约束名;
使约束条件生效:
ALTER TABLE 表名ENABLE CONSTRANT 约束名;
增加新列
增加新列的语法如下:
ALTER TABLE 表名
ADD 列名数据类型[DEFAULT 表达式][COLUMN CONSTRAINT];
如果要为表同时增加多列,可以按以下格式进行:
ALTER TABLE 表名
ADD (列名数据类型[DEFAULT 表达式][COLUMN CONSTRAINT]...);
alter table 出版社
add 电子邮件varchar2(30) check(电子邮件like '%@%');
修改列的语法如下:
ALTER TABLE 表名
MODIFY 列名数据类型[DEFAULT 表达式][COLUMN CONSTRAINT]
如果要对表同时修改多列,可以按以下格式进行:
ALTER TABLE 表名
MODIFY(列名数据类型[DEFAULT 表达式][COLUMN CONSTRAINT]…);
INSERT INTO 表名(字段列表) SELECT (字段名1,字段名2,…) FROM 另外的表名; 从另外的表复制数据
--创建一个新表manager
Create table manager
as select empno,ename,sal from emp where job=’MANAGER’;
--从emp 表拷贝数据到manager
Insert into manager
Select empno,ename,sal
From emp
Where job=’CLERK’;
Select * from manager;
SET AUTOCOMMIT ON/OFF 设置是否自动提交155505577231
savepoint 建立保存点
update emp set sal=sal+100 where empno=7788; 根据条件更新数据
Select distinct job from emp; 消除重复行
select ename,sal from emp order by sal; 升序排序
select ename,sal from emp order by sal desc; 降序排序
select ename,sal from emp order by deptno,sal; 多列排序
select * from emp where (deptno=10 or deptno=20) and sal<1500; 三个条件
select * from emp where sal between 1000 and 2000; 在什么什么之间
select * from emp where job in ('SALESMAN','CLECK','MANAGER'); 选择范围
select * from emp ename like 'S%'; 模糊查询
--显示雇员的名称和所在的部门的编号和名称
Select emp.ename 姓名,emp.deptno 部门编号,dept.dname 部门名称
From emp,dept
Where emp.deptno=dept.deptno;
--查询部门10 和部门20 的所有职员
select deptno,job from emp where deptno=10
union
select deptno,job from emp where deptno=20;
startup force; 强制打开数据库
- oracle数据库总结大全
- Oracle数据库命令大全
- Oracle数据库语句大全
- Oracle数据库语句大全
- Oracle数据库语句大全
- Oracle数据库语句大全
- Oracle数据库命令大全
- Oracle数据库语句大全
- ORACLE数据库函数大全
- Oracle数据库语句大全
- Oracle数据库语句大全
- Oracle数据库语句大全
- Oracle数据库语句大全
- Oracle数据库语句大全
- Oracle数据库语句大全
- Oracle数据库语句大全
- Oracle数据库语句大全
- Oracle语句总结大全
- 哈工大计算机实验室介绍
- 数据库查询慢的分析
- grub引导下进如linux单用户模式 备记
- samba 启动和重新启动 以及在虚拟系统和实际系统怎么实现软件交换
- android开发工具eclipse的安装与配置
- oracle数据库总结大全
- 转载自博客园
- linux服务器工具命令
- vs2010 下release编译的时候出现问题:_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”
- 模板上传(打包)验证规则
- Longest Palindromic Substring
- 内存分配
- SuSE linux 11 安装 oracle 10g
- C语言——可变长参数