Oracle基本建表语句
oracle数据库基本语句

oracle数据库基本语句oracle 数据库是一种常用的关系型数据库管理系统,常用的oracle数据库包括oracle10g、oracle11g和oracle12c。
要掌握oracle的基本用法,必须掌握其基本的语句。
oracle的常用基本语句有:一、数据定义语言(DDL)1、创建数据表:CREATE TABLE 表名(字段名数据类型[完整性约束条件],字段名数据类型[完整性约束条件],……);2、修改数据表: ALTER TABLE 表名 ADD(字段名数据类型[完整性约束条件],字段名数据类型[完整性约束条件],……);3、删除数据表: DROP TABLE 表名;4、创建索引:CREATE [UNIQUE] INDEX 索引名ON 表名[字段名[,字段名];5、删除索引: DROP INDEX 索引名;三、数据控制语言(DCL)1、建立用户: CREATE USER 用户名 IDENTIFIED BY 密码;2、删除用户: DROP USER 用户名;3、授权:GRANT 权限 ON 对象 TO 用户[WITH GRANT OPTION];4、回收授权: REVOKR 权限 ON 对象 FROM 用户;5、控制事务: COMMIT/ROLLBACK;四、数据库控制语言(DBCL)1、创建数据库:CREATE DATABASE 数据库名;2、删除数据库: DROP DATABASE 数据库名;3、创建表空间:CREATE TABLESPACE 表空间名 SEGMENT SPACE MANAGEMENT 自动;4、删除表空间: DROP TABLESPACE 表空间名;5、管理会话: ALTER SYSTEM KILL SESSION ['会话号'];。
oracle create hr table建表语句

oracle create hr table建表语句
在Oracle数据库中,创建一个名为"hr"的表需要使用CREATE TABLE语句。
以下是一个示例建表语句,用于创建一个简单的"hr"表:
sql复制代码
CREATE TABLE hr (
id NUMBER PRIMARY KEY,
first_name VARCHAR2(50),
last_name VARCHAR2(50),
email VARCHAR2(100),
hire_date DATE
);
这个示例创建了一个名为"hr"的表,具有以下列:
•id:一个整数类型的列,作为主键。
•first_name:一个最大长度为50的字符串列,用于存储员工的名字。
•last_name:一个最大长度为50的字符串列,用于存储员工的姓氏。
•email:一个最大长度为100的字符串列,用于存储员工的电子邮件地址。
•hire_date:一个日期类型的列,用于存储员工的入职日期。
请注意,这只是一个示例建表语句,你可以根据自己的需求进行修改和扩展。
在实际应用中,你可能需要添加更多的列和约束条件,以满足特定的业务需求。
oracle建表teacher语句sql

在Oracle 数据库中,创建表的SQL 语句通常包括表的名称、列名和每列的数据类型。
以下是一个简单的例子,创建一个名为teacher 的表,包含一些基本的教师信息:
CREATE TABLE teacher (
teacher_id NUMBER(10) PRIMARY KEY,
first_name V ARCHAR2(50),
last_name V ARCHAR2(50),
email V ARCHAR2(100),
hire_date DATE
);
在这个例子中,teacher表有以下列:
- teacher_id: 教师的唯一标识符,使用NUMBER数据类型,长度为10。
- first_name: 教师的名字,使用V ARCHAR2数据类型,最大长度为50。
- last_name: 教师的姓氏,同样使用V ARCHAR2数据类型,最大长度为50。
- email: 教师的电子邮件地址,使用V ARCHAR2数据类型,最大长度为100。
- hire_date: 教师的雇佣日期,使用DATE 数据类型。
请注意,这只是一个简单的例子,实际的表结构可能更加复杂,取决于你的需求。
在实际的数据库设计中,你可能还需要考虑约束、索引、外键等其他方面的内容。
oracle select create表格语句-概述说明以及解释

oracle select create表格语句-范文模板及概述示例1:标题:Oracle SELECT语句创建表格的步骤和示例简介:Oracle的SELECT语句不仅可以查询现有的表格数据,还可以使用其结果集来创建新的表格。
本文将介绍如何使用Oracle的SELECT语句来创建表格,并提供一些示例以帮助您理解和应用这一功能。
内容:一、概述SELECT语句的表格创建功能在Oracle数据库中,SELECT语句可以用于创建新的表格。
它可以通过选择现有表格的特定列或者通过运算和处理现有表格数据的结果来创建新表格。
这是一个非常方便的功能,特别是在需要根据现有数据创建新表格进行分析和报表等应用时。
二、使用SELECT语句创建表格的步骤要使用SELECT语句创建表格,您需要遵循以下步骤:1. 编写合适的SELECT语句,以选择现有表格的特定列或者经过计算和处理的结果集。
2. 使用CREATE TABLE语句,将SELECT语句的结果作为新表格的数据进行存储。
3. 定义新表格的结构,包括列名、数据类型和约束等信息。
三、示例:使用SELECT语句创建表格以下是一个示例,演示了如何使用SELECT语句创建一个新的表格:sqlCREATE TABLE new_table ASSELECT column1, column2, column3FROM existing_tableWHERE condition;在上述示例中,我们从现有表格existing_table中选择特定列column1、column2和column3,并根据条件进行筛选,然后使用CREATE TABLE语句将查询结果存储到新表格new_table中。
注意,您可以根据实际需求自定义新表格的名称、列名和条件。
另外,如果需要对SELECT语句进行更复杂的操作,您还可以使用子查询、连接操作、函数和其他高级特性来创建新表格。
这些方法可以根据您的需求对数据进行进一步的处理和筛选。
Oracle数据库建表及其基本操作

1.在对oracle数据操作之前,需要了解oracle的类型,oracle的常用类型有:2.登录创建好的用户,然后在表空间中建立表,以userinfo表为例:--创建表create table userinfo(id number(6,0),usernam varchar2(20),userpwd varchar2(20),email varchar2(30),regdate date);表建立成功之后,查看是否建表成功,有很多方法,列举我常用的两个方法:方法一:在控制台输入desc userinfo 回车, 可以成功查询出新建表字段的类型方法二:使用图形化工具直接查询表select * from userinfo;3.添加字段alter table table_nameadd column_name datatype;table_name是表名称, column_name是列名称, datatype是数据类型eg:添加一个字段remark字段,是varchar2类型,长度为100alter table userinfoadd remarks varchar2(100);查看表结构:给字段添加注释comment on column 表.列 is '列注释';eg:comment on column new_uesrinfo.remarks is '注释';在plsql上面的运行结果:4.修改表字段名称和表名--给字段改名alter table table_namerename column column_name To new_column_name; --修改表的名字rename table_name to new_table_name;5.删除字段alter table table_namedrop column column_name;6.更改字段长度,类型eg:修改remarks字段修改字段的长度alter table userinfomodify remarks varchar2(150);eg:修改字段类型a.如果表中没有数据alter table 表名 modify(字段名1 类型,字段名2 类型,字段名3 类型.....)b.如果表中有数据(分为四步)--修改原字段名ALTER TABLE 表名 RENAME COLUMN 字段名A TO 字段名B;--添加一个和原字段同名的字段"字段名A",添加的字段ALTER TABLE 表名 ADD 字段名目标类型;--将"字段名B"的数据更新到新建字段"字段名A"中UPDATE 表名 SET 字段名A = TIRM(字段名B);--更新完成后,删除原备份字段"字段名B"ALTER TABLE 表名 DROP COLUMN 字段名Beg:例如将上表的remarks字段修改为number(32,2)alter table userinfo rename column remarks to remarks_tmp;alter table userinfo add remarks number(32,2);update userinfo set remarks = trim(remarks_tmp);alter table userinfo drop column remarks_tmp;7.删除数据,删除表--删除表数据truncate table table_name;delete from table_name这里truncate和delete的区别是,truncate是截断了表,它的效率比delete要快--删除表的结构drop table table_name;。
Oracle数据库语句大全

Oracle数据库语句大全一.入门部分1.创建表空间create tablespace schooltbs datafile ‘D:\oracle\datasource\schooltbs.dbf’ size 10M autoextend on;2.删除表空间drop tablespace schooltbs[including contents and datafiles];3.查询表空间基本信息select *||tablespace_name from DBA_TABLESPACES;4.创建用户create user lihuaidentified by lihuadefault tablespace schooltbstemporary tablespace temp;5.更改用户alter user lihuaidentified by 123default tablespace users;6.锁定用户alter user lihua account lock|unlock;7.删除用户drop user lihua cascade;--删除用户模式8.oracle数据库中的角色connect,dba,select_catalog_role,delete_catalog_role,execute_catalo g_role,exp_full_database,imp_full_database,resource9.授予连接服务器的角色grant connect to lihua;10.授予使用表空间的角色grant resource to lihua with grant option;--该用户也有授权的权限11.授予操作表的权限grant select,insert on user_tbl to scott;--当前用户grant delete,update on er_tbl to scott;--系统管理员二.SQL查询和SQL函数1.SQl支持的命令:数据定义语言(DDL):create,alter,drop数据操纵语言(DML):insert,delete,update,select数据控制语言(DCL):grant,revoke事务控制语言(TCL):commit,savepoint,rollback2.Oracle数据类型字符,数值,日期,RAW,LOB字符型char:1-2000字节的定长字符varchar2:1-4000字节的变长字符long:2GB的变长字符注意:一个表中最多可有一列为long型Long列不能定义唯一约束或主键约束long列上不能创建索引过程或存储过程不能接受long类型的参数。
Oracle创建表语句(Createtable)语法详解及示例

Oracle创建表语句(Createtable)语法详解及⽰例创建表(Create table)语法详解1. ORACLE常⽤的字段类型ORACLE常⽤的字段类型有VARCHAR2 (size) 可变长度的字符串, 必须规定长度CHAR(size) 固定长度的字符串, 不规定长度默认值为1NUMBER(p,s) 数字型p是位数总长度, s是⼩数的长度, 可存负数最长38位. 不够位时会四舍五⼊.DATE ⽇期和时间类型LOB 超长字符, 最⼤可达4GCLOB 超长⽂本字符串BLOB 超长⼆进制字符串BFILE 超长⼆进制字符串, 保存在外的⽂件⾥是只读的.数字字段类型位数及其四舍五⼊的结果原始数值1234567.89数字字段类型位数存储的值Number 1234567.89Number(8) 12345678Number(6) 错Number(9,1) 1234567.9Number(9,3) 错Number(7,2) 错Number(5,-2) 1234600Number(5,-4) 1230000Number(*,1) 1234567.92. 创建表时给字段加默认值和约束条件创建表时可以给字段加上默认值例如 : ⽇期字段 DEFAULT SYSDATE这样每次插⼊和修改时, 不⽤程序操作这个字段都能得到动作的时间创建表时可以给字段加上约束条件例如: ⾮空 NOT NULL不允许重复 UNIQUE关键字 PRIMARY KEY按条件检查 CHECK (条件)外键 REFERENCES 表名(字段名)3. 创建表的例⼦CREATE TABLE DEPT(EPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,DNAME VARCHAR2(14),LOC VARCHAR2(13)) ;CREATE TABLE region(ID number(2) NOT NULL PRIMARY KEY,postcode number(6) default '0' NOT NULL,areaname varchar2(30) default ' ' NOT NULL);4. 创建表时的命名规则和注意事项1)表名和字段名的命名规则:必须以字母开头,可以含符号A-Z,a-z,0-9,_,$,#2)⼤⼩写不区分3)不⽤SQL⾥的保留字, ⼀定要⽤时可⽤双引号把字符串括起来.4)⽤和实体或属性相关的英⽂符号长度有⼀定的限制注意事项:1)建表时可以⽤中⽂的字段名, 但最好还是⽤英⽂的字段名2)创建表时要把较⼩的不为空的字段放在前⾯, 可能为空的字段放在后⾯3)建表时如果有唯⼀关键字或者唯⼀的约束条件,建表时⾃动建了索引4)⼀个表的最多字段个数也是有限制的,254个.5. 约束名的命名规则和语法约束名的命名规则约束名如果在建表的时候没有指明,系统命名规则是SYS_Cn(n是数字)约束名字符串的命名规则同于表和字段名的命名规则6. 使⽤约束时的注意事项约束⾥不能⽤系统函数,如SYSDATE和别的表的字段⽐较可以⽤本表内字段的⽐较想在事务处理后, 做约束的检查SQL> alter session set constraints deferred.7. 由实体关系图到创建表的例⼦ s_dept前提条件:已有region表且含唯⼀关键字的字段idSQL> CREATE TABLE s_dept(id NUMBER(7)CONSTRAINT s_dept_id_pk PRIMARY KEY,name VARCHAR2(25)CONSTRAINT s_dept_name_nn NOT NULL,region_id NUMBER(7)CONSTRAINT s_dept_region_id_fk REFERENCES region (id),CONSTRAINT s_dept_name_region_id_uk UNIQUE(name, region_id));8. 较复杂的创建表例⼦SQL> CREATE TABLE s_emp(id NUMBER(7)CONSTRAINT s_emp_id_pk PRIMARY KEY,last_name VARCHAR2(25)CONSTRAINT s_emp_last_name_nn NOT NULL,first_name VARCHAR2(25),userid VARCHAR2(8)CONSTRAINT s_emp_userid_nn NOT NULLCONSTRAINT s_emp_userid_uk UNIQUE,start_date DATE DEFAULT SYSDATE,comments VARCHAR2(25),manager_id NUMBER(7),title VARCHAR2(25),dept_id NUMBER(7)CONSTRAINT s_emp_dept_id_fk REFERENCES s_dept(id),salary NUMBER(11,2),commission_pct NUMBER(4,2)CONSTRAINT s_emp_commission_pct_ck CHECK(commission_pct IN(10,12.5,15,17.5,20)));8. 通过⼦查询建表通过⼦查询建表的例⼦SQL>CREATE TABLE emp_41 AS SELECT id, last_name, userid, start_dateFROM s_emp WHERE dept_id = 41;SQL> CREATE TABLE A as select * from B where 1=2;只要表的结构.10. ⽤⼦查询建表的注意事项1)可以关连多个表及⽤集合函数⽣成新表,注意选择出来的字段必须有合法的字段名称,且不能重复。
数据库转换Mysql-Oracle之建表语句

数据库转换Mysql-Oracle之建表语句Mysql建库语句(导出的):DROP TABLE IF EXISTS `tablename`;CREATE TABLE `tablename` (`C_DI_CDE` varchar(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,/*Mysql添加注释⽅法:在创建字段后直接填写COMMENT '注释内容'*/`C_PATER_CDE` varchar(40) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT ' ⽗代码',`C_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT ' 名称',`C_DESCRIBE` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '0' COMMENT ' 描述',`C_STATE` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '0' COMMENT ' 状态',PRIMARY KEY (`C_DI_CDE`),/*MySQL中的KEY为键的含义和索引定义相同,是索引约束,即主键外键也是索引的⼀种,故Unique KEY表⽰唯⼀性索引*/UNIQUE KEY `PK_WEB_BAS_DIC_DT` (`C_DI_CDE`) USING BTREE,KEY `IDX_WEB_BAS_DIC_DT_C_DICT_TYPE` (`C_DICT_TYPE`) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='CLM_C_DICD_DATAS';备注:表名和表字段上的符号不是单引号⽽是tab键上⾯的那个键的英⽂状态下的符号,加或不加都可以,在表字段名为关键字是需要加该符号防⽌与关键字冲突⽽建表失败。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
--创建用户create user han identified by han default tablespace users Temporary TABLESPACE Temp;grant connect,resource,dba to han; // 授予用户han 开发人员的权利------------ 对表的操作-----------------------创建表格语法:create table 表名(字段名 1 字段类型(长度)是否为空,字段名 2 字段类型是否为空);- 增加主键alter table 表名add constraint 主键名primary key (字段名1);- 增加外键:alter table 表名add constraint 外键名foreign key (字段名1) references 关联表(字段名2);在建立表格时就指定主键和外键create table T_STU (STU_ID char(5)not null,STU_NAME varchar2(8)not null,constraint PK_T_STU primary key (STU_ID));主键和外键一起建立:create table T_SCORE (number(5,2), date, number(10) not null, char(5),char(3),constraint PK_T_SCORE primary key (AUTOID), constraint FK_T_SCORE_REFE foreign key(STU_ID) references T_STU (STU_ID)-- 创建表 create table classes(id number(9) not null primary key, classname varchar2(40) not null )-- 查询表 select * from classes; -- 删除表 drop table students;-- 修改表的名称 rename alist_table_copy to alist_table; -- 显示表结构 describe test -- 不对没查到 -------------- 对字段的操作-- 增加列 alter table test add address varchar2(40); -- 删除列 alter table test drop column address; -- 修改列的名称alter table test modify address addresses varchar(40;-- 修改列的属性 alter table test modi create table test1(id number(9) primary key not null, name varchar2(34) )rename test2 to test; -- 创建自增的序列create sequence class_seq increment by 1 start with 1 MAXVALUE 999999 NOCYCLE NOCACHE;select class_seq.currval from dual -- 插入数据EXAM_SCOREEXAM_DATE AUTOID STU_IDSUB_IDinsert into classes values(class_seq.nextval,' 软件一班')commit;-- 更新数据update stu_account set username='aaa' where count_id=2; commit;-- 创建唯一索引create unique index username on stu_account(username); -- 唯一索引不能插入相同的数据-- 行锁在新打开的对话中不能对此行进行操作select * from stu_account t where t.count_id=2 for update; -- 行锁--alter table stuinfo modify sty_id to stu_id;alter table students drop constraint class_fk;alter table students add constraint class_fk foreign key (class_id) references classes(id);-- 外键约束alter table stuinfo add constraint stu_fk foreign key (stu_id) references students(id) ON DELETE CASCADE;-- 外键约束, 级联删除alter table stuinfo drop constant stu_fk;insert into students values(stu_seq.nextval,' 张三',1,sysdate);insert into stuinfo values(stu_seq.currval,' select *威海');from stuinfo;create table zhuce(zc_id number(9) not null primary key, stu_id number(9) not null,zhucetime date default sysdate)create table feiyong (fy_id number(9) not null primary key, stu_id number(9) not null, mx_idnumber(9) not null, yijiao number(7,2) not null default 0, qianfeinumber(7,2) not null)create talbe fymingxi(mx_id number(9) not null primary key,feiyong number(7,2) not null, // 共7 位数字,小数后有两位class_id number(9) not null }create table card(card_id number(9) primary key,stu_id number(9) not null,money number(7,2) not null default 0,status number(1) not null default 0 --0 表可用,1 表挂失)-- 链表查询select c.classname||'_'||s.stu_name as 班级—姓名,si.address from classes c,students s , stuinfo si where c.id=s.class_id and s.id=si.stu_id;insert into stude nts values(stu_seq .n extval,' 李四:1,sysdate);insert into stuinfo values(stu_seq.currval,' 南京');-- 函数select rownum,id,stu_name from students t order by id asc;-- 中间表实现多对多关联create table course( course_id number(9) not null, couser_name varchar2(40) notnull)alter table course to couse;create table stu_couse( stu_couse_id number(9) primary key, stu_id number(9) notnull, couse_id number(9) not null)create unique index stu_couse_unq on stu_couse(stu_id,couse_id); -- 唯一学生create sequence stu_couse_seq increment by 1 start with 1 MAXVALU9E99999 NOCYCLE NOCACHE;create sequence couses_seq increment by 1 start with 1 MAXVALUE 999999 NOCYCLE NOCACHE;insert into course values(couses_seq.nextval,' insert into course values(couses_seq.nextval,' insert intocourse values(couses_seq.nextval,' insert into course values(couses_seq.nextval,' insert into coursevalues(couses_seq.nextval,' insert into coursevalues(couses_seq.nextval,'C commit;insert into stu_couse values(stu_couse_seq.nextval,1,1);insert into stu_couse values(stu_couse_seq.nextval,1,3); insert into stu_couse values(stu_couse_seq.nextval,1,5);--1 n 的描述 1 的表不作处理--1 1 的描述主外键关联 --n n 的描述 中间表实现多对多关联n 的表有 1 表的字段 -- (1 1, 1 n ,n 1 , n n )计算机原理 ');编译原理 '); 数据库原理 ');数据结构 '); 计算机基础 '); 语言初步 ');insert into stu_couse values(stu_couse_seq.nextval,1,5);insert into stu_couse values(stu_couse_seq.nextval,2,1);commit;select * from stu_couse;select * from course;--select s.stu_name,sc.couse_id, c.couser_name from students s,coursec,stu_couse sc where stu_id=1--select couse_id from stu_couse where stu_id=1select cl.classname,s.stu_name,c.couser_name from stu_couse sc, studentss,course c,classes cl where s.id=sc.stu_id and sc.couse_id=c.course_id ands.class_id=cl.id and s.id=1;-- 班级——姓名select c.classname,s.stu_name from students s,classes c where s.class_id=c.id and s.id=2;select * from students s where s.id=2-- 班级——姓名——课程select cl.classname,s.stu_name,c.couse_name from stu_couse sc,studentss,classes cl,couse c where sc.stu_id=s.id and sc.couse_id=c.couse_is.id=26;--sql 语句的写法,现写出关联到的表,然后写出要查找的字段,第三联条件,记住在写关联到的表时先写数据多的表,这样有助于提高效率select c.couser_name,s.stu_name from stu_couse sc,students s,course c where c.course_id=1 and c.course_id=sc.couse_id and sc.stu_id=s.id;select s.stu_name from students s,stu_couse sc where s.id=sc.stu_id bys.id,s.stu_name;select c.classname,count(sc.couse_id) from stu_couse sc,students s,classes c where s.class_id=c.id and s.id=sc.stu_id group by c.classname;select s.stu_name, count(sc.couse_id) from stu_couse sc,studentss,classes cl where s.id=sc.stu_id group by s.id,s.stu_name having and写出关sql 的groupcount(sc.stu_couse_id)>3;班级学生选课数量select cl.classname,count(sc.stu_couse_id) from stu_couse sc,studentss,classes cl where s.id=sc.stu_id and s.class_id=cl.id group by cl.classname;-- 班级学生选课数量select cl.classname,s.stu_name,count(sc.stu_couse_id) from stu_couse sc,students s,classes cl where s.id=sc.stu_id and s.class_id=cl.id group by s.stu_name;select cl.classname,s.stu_name,count(sc.stu_couse_id) from stu_cousesc ,students s,classes cl where sc.stu_id=s.id and s.class_id=cl.id group by s.id;select cl.classname,s.stu_name,count(sc.stu_couse_id) from stu_couse sc,students s,classes cl where sc.stu_id=s.id and s.class_id=cl.id group by s.stu_name;-- 班级学生所选课程id 所选课程名称-- 创建试图目的把表联合起来然后看成一个表,在与其他的联合进行查询create view xsxk as select cl.classname, s.stu_name,c.couse_id, c.couse_name fromstu_couse sc,students s,classes cl,couse c where sc.stu_id=s.id andsc.couse_id=c.couse_id and s.class_id=cl.id;select * from xsxkcreate view classstu as select s.id,c.classname,s.stu_name from students s,classes c where c.id=s.class_id;drop view classstu; -- 删除视图select * from classstu;create view stu_couse_view as select s.id ,c.couse_name from stu_cousesc,students s,couse c where s.id=sc.stu_id and sc.couse_id=c.couse_id; select * from stu_couse_view;create view csc as select cs.classname,cs.stu_name,scv.couse_name from classstu cs,stu_couse_view scv where cs.id=scv.id;select * from csc;select * from classes cross join students; -- 全连接,相当于select * from classes,students;select * from classes cl left join students s on cl.id=s.class_id; -- 左连接不管左表有没有都显示出来select * from classes cl right join students s on cl.id=s.class_id; -- 右连接select * from classes cl full join students s on cl.id=s.class_id; -- 全连接insert into classes values(class_seq.nextval,' create table sales(nian varchar2(4),软件四班');yeji number(5));insert into sales values('2001',200);insert into sales values('2002',300);insert into sales values('2003',400);insert into sales values('2004',500);commit;select * from sales;drop table sale;select s1.nian,sum(s2.yeji) from sales s1,sales s2 where s1.nian>=s2.nian group by s1.nian order by s1.nian desc;select s1.nian,sum(s2.yeji) from sales s1,sales s2 where s1.nian>=s2.nian group by s1.nian;s年年业绩总和2001 2002002 5002003 9002004 1400create table test1();create table org(org_id number(9) not null primary key, org_name varchar2(40) not null, parent_id number(9));create sequence org_seq increment by 1 start with 1 MAXVALUE 999999 NOCYCLE NOCACHE; 华建集团 ',0); 华建集团一分公司 ',1); 华建集团二分公司 ',1); 华建集团财务部 ',1); 华建集团工程部 ',1); 华建集团一分公司财务处 ',2) 华建集团一分公司工程处 ',2) select * from org;-- 不正确 不能实现循环select _id , _name ,b.parent_id from org a,org bwhere _id=7 and a.parent_id=_id;select * from org connect by prior parent_id=org_id start with org_id=7 order by org_id;select * from org connect by prior org_id=parent_id start with org_id=1 order by org_id;create table chengji(cj_id number(9) not null primary key, stu_cou_id number(9) not null, fen number(4,1) );insert into chengji values(1,1,62); insert into chengji values(2,2,90); insert into chengji values(3,3,85); insert into chengji values(4,4,45); insert into chengji values(5,5,68);insert into chengji values(6,6,87); commit; select * from chengji; select * from stu_couse;-- 在 oracle 中好像不适用 alter table chengji change stu_cou_id stu_couse_id;alter table shop_jb change price1 price double;学生姓名 平均分select s.stu_name,avg(cj.fen) from stu_couse sc,chengji cj,students s where s.id=sc.stu_id and sc.stu_couse_id=cj.stu_couse_id group by s.id,s.stu_name;select s.stu_name from students s,stu_couse sc,chengji cj where s.id=sc.stu_id andt_id number(4)drop sequence org_seq;insert into org values(1,' insert into org values(2,' insert into org values(3,' insert into org values(4,'insert into org values(5,' insert into org values(6,' insert into org values(7,'sc.stu_couse_id=cj.stu_couse_id group by s.id,s.stu_name;select s.stu_name,cj.fen from students s,stu_couse sc,chengji cj wheres.id=sc.stu_id and sc.stu_couse_id=cj.stu_couse_id and cj.fen>60;学生姓名科目成绩select s.stu_name,c.couse_name,cj.fen from stu_couse sc,studentss,couse c,chengji cj where sc.stu_id=s.id and sc.couse_id=c.couse_id andsc.stu_couse_id=cj.stu_couse_id and cj.fen>60 order by=;select * from stu_couse;-- 集合运算-- 选择了课程3 的学生union 选择了课程5 的学生并集-- 选择了课程3 或者选择了课程5 的学生select s.stu_name from students s,couse c,stu_couse sc where s.id=sc.stu_id and sc.couse_id=c.couse_id and c.couse_id=3 unionselect s.stu_name from students s,couse c,stu_couse sc where s.id=sc.stu_id and sc.couse_id=c.couse_id and c.couse_id=5-- 选择了课程3,5,2 的学生intersect 选择课程1,2,4 的学生交集-- 求选择了课程2 并且选择了课程3 的学生交集select s.stu_name from students s,couse c,stu_couse sc where s.id=sc.stu_id and sc.couse_id=c.couse_id andc.couse_id=2 intersectselect s.stu_name from students s,couse c,stu_couse sc where s.id=sc.stu_id and sc.couse_id=c.couse_id and c.couse_id=3;-- 选择了课程3,5,8 的学生minus 选择了课程1,7,8 的学生差集-- 求所有课程的成绩都大于60 的学生差集select distinct(s.stu_name) from stu_couse sc,students s,couse c,chengji cj where sc.stu_id=s.id and sc.couse_id=c.couse_id and sc.stu_couse_id=cj.stu_couse_id and cj.fen>60minusselect distinct(s.stu_name) from stu_couse sc,students s,couse c,chengji cj where sc.stu_id=s.id and sc.couse_id=c.couse_id and sc.stu_couse_id=cj.stu_couse_id and cj.fen<60;。