oracle_sql

create table sporter(
       sporterid number(8) primary key,
       sname nvarchar2(50) not null,
       sex number(2) check (sex in(0,1)),
       department nvarchar2(50) not null
);

create table item(
       itemid nvarchar2(12) primary key,
       itemname nvarchar2(50) unique,
       locations nvarchar2(50) not null
);
drop table item;

create table grade(
       gid number(8),
       itemid nvarchar2(12) not null,
       mark number(8) check (mark in(0,2,4,6)),
       constraint grade_item_fk foreign key(itemid) references item(itemid),
       constraint grade_sporter_fk foreign key(gid) references sporter(sporterid)
);
drop table grade;
--
--创建序列
create sequence item_seq;
drop sequence item_seq;
insert into item(itemid,itemname,locations) values(‘X001‘,‘男子五千米‘,‘一操场‘);
insert into item(itemid,itemname,locations) values(‘X002‘,‘男子标枪‘,‘一操场‘);
insert into item(itemid,itemname,locations) values(‘X003‘,‘男子跳远‘,‘二操场‘);
insert into item(itemid,itemname,locations) values(‘X004‘,‘女子跳高‘,‘二操场‘);
insert into item(itemid,itemname,locations) values(‘X005‘,‘女子三千米‘,‘三操场‘);
select * from item

--create sequence STUSEQ

create sequence sporter_seq
minvalue 1001
maxvalue 9999
start with 1001
increment by 1
cache 20;

insert into sporter(sporterid,sname,sex,department)
values(sporter_seq.nextval,‘张三‘,1,‘计算机系‘);
insert into sporter(sporterid,sname,sex,department)
values(sporter_seq.nextval,‘李明‘,1,‘物理系‘);
insert into sporter(sporterid,sname,sex,department)
values(sporter_seq.nextval,‘李娜‘,0,‘心里系‘);
insert into sporter(sporterid,sname,sex,department)
values(sporter_seq.nextval,‘孙丽‘,0,‘美术系‘);
insert into sporter(sporterid,sname,sex,department)
values(sporter_seq.nextval,‘李明‘,1,‘美术系‘);
insert into sporter(sporterid,sname,sex,department)
values(sporter_seq.nextval,‘站名‘,0,‘化学系‘);

commit;
--1001,  x001, 6   --1002,  x001, 4      --1004,  x001, 0
--1001,  x003, 4   --1002,  x003, 6    --1004,  x003, 2
--1005,  x004, 6   --    1006,  x004, 4  --    1003,  x002, 6
--1005 , x002 ,4   --    1006,  x002,2   --    1001,  x002,0)
insert into grade(gid,itemid,mark) values(1001,‘X001‘,6);
insert into grade(gid,itemid,mark) values(1002,‘X001‘,6);
insert into grade(gid,itemid,mark) values(1004,‘X001‘,6);
insert into grade(gid,itemid,mark) values(1001,‘X001‘,6);
insert into grade(gid,itemid,mark) values(1002,‘X001‘,6);
insert into grade(gid,itemid,mark) values(1004,‘X001‘,6);
insert into grade(gid,itemid,mark) values(1005,‘X001‘,6);
insert into grade(gid,itemid,mark) values(1006,‘X001‘,6);
insert into grade(gid,itemid,mark) values(1003,‘X001‘,6);
insert into grade(gid,itemid,mark) values(1005,‘X001‘,6);
insert into grade(gid,itemid,mark) values(1006,‘X001‘,6);
insert into grade(gid,itemid,mark) values(1001,‘X001‘,6);

--A、    求出目前总积分最高的系名,及其积分。

--B、    找出在一操场进行比赛的各项目名称及其冠军的姓名。
--C、    找出参加了张三所参加的所有项目的其他同学的姓名。
--D、    经查张三因为使用了违禁药品,其成绩都记0分,请在数据库中作出相应修改。
--E、    经组委会协商,需要删除女子跳高比赛项目。

时间: 2024-12-13 10:43:52

oracle_sql的相关文章

Oracle_sql优化基础——优化器总结

优化器的基础: 1.Oracle里的优化器: 优化器是Oracle数据库中内置的一个核心子系统,优化器的目的就是按照一定的判断原则来得到它认为目标sql在当前情形下最高效的执行路径,也就是说是为了得到目标sql的执行计划. Oracle数据库的优化器分为:RBO和CBO两种类型: RBO:基于规则的优化器(在得到sql执行计划时,RBO所用的判断原则为一组内置的规则) CBO:基于成本的优化器(在得到sql执行计划时,CBO所用的判断原则为成本,它会从目标sql诸多可能的执行路线中选择成本值最小

ORACLE_SQL语句优化

  ORACLE数据库sql语句优化的学习笔记 概要:最近看的一本oracle数据库的书,这里写一下关于sql语句的优化; 一,一般的sql优化技巧 1.Select语句中避免使用" * " 2.使用where子句替代having子句 在select语句中,使用where子句过滤行,使用having子句过滤分组,也就是在行分组之后才执行过滤,因为行被分组需要一定的时间,所以应该尽量使用where子句过滤行,减少分组的行数,也就减少了分组的时间,从而提高了 语句的执行效率; 3.使用tr

Oracle_SQL(1) 基本查询

1.oracle的安装与卸载 2.PL/SQL Developer的安装 3.登陆PL/SQL Developer 4.SCOTT用户下表的介绍 5.基本查询语句 查询雇员的所有信息: select * from emp; *表示所有列 查询语句语法: select *|列名,... from 表名; 6.返回指定列的查询语句 查询雇员的编号.姓名.工资 select empno,ename,sal from emp; 多个列之间用,分隔 7.去除重复行 查询所有职位: select job f

Oracle_SQL(2) 分组与聚合函数

一.聚合函数1.定义:对表或视图的查询时,针对多行记录只返回一个值的函数.2.用途:用于select语句,HAVING条件二.5种聚合函数1.SUM(n) 对列求和 select sum(sal) from emp; select deptno,sum(sal) from emp group by deptno;2.AVG(n) 对列求平均值 select avg(sal) from emp; select deptno,avg(sal) from emp group by deptno;3.M

Oracle_SQL(5) 连接和子查询

一.连接join一般分类: inner join: 内连接,又叫等值连接,只返回两个表中连接字段相等的行. left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录. right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录. full join:外连接,返回两个表中的行:left join + right join. cross join:笛卡尔积,就是第一个表的行数乘以第二个表的行数.oracle分类:等值连接 = 外连接(左外连接.右外连接.全

Oracle_SQL(3) DML增删改

sql语言按功能分为:数据定义语言DDL.数据操纵语言DML.数据查询语言DQL.数据控制语言DCL 一.数据操纵语言DML1.insert 新增 语法:insert into <表名> (列名,...) values (值,...); view dept; desc dept; insert into dept (deptno,dname,loc) values (41,'行政部','北京'); insert into dept values (42,'人事部','上海'); insert

Oracle_SQL(4) DDL 表和约束

数据库对象分为占存储空间的对象和不占存储存储空间的对象.占存储空间的对象主要包括:表.索引等.select distinct segment_type from dba_segments order by segment_type;不占存储空间的对象主要包括:视图.序列.函数.存储过程.包.触发器等.select distinct object_type from dba_objects order by object_type; DDL是用来创建(create).替换(replace).更改(

Oracle_SQL(6) 单行函数

一.单行函数1.定义:对表或视图的查询时,针对每行记录返回一个值的函数.2.用途:用于select语句,where条件3.分类: 数值函数 Number Functions 字符函数(返回字符) Character Functions Returning Character Values 字符函数(返回数值) Character Functions Returning Number Values 日期函数 Datetime Functions 转换函数 Conversion Functions

第二章:oracle_sql语句之限制(where子句)和排列数据(order by子句)

限制数据访问: 使用数字做条件 select ename,sal,deptno from emp where DEPTNO=10; 使用字符做条件,字符串要单引,大小写敏感! select ename,sal,deptno from emp where ename='king'; select ename,sal,deptno from emp where ename='KING'; 使用日期做条件,格式敏感! select ename,hiredate from emp where hired