INSERT INTO Users (UserId, UserName, UserType, UserPwd) VALUES ( 1, 'Admin', 1, 'Admin'); COMMIT; 4、 修改数据
UPDATE语句的基本使用方法如下所示:
UPDATE <表名> SET 列名1 = 值1, 列名2 = 值2, …, 列名n = 值n WHERE <更新条件表达式>
例4、将用户Admin的密码修改为111111: UPDATE Users
SET UserPwd='111111'
WHERE UserName='Admin'; COMMIT WORK; 5、 删除数据
DELETE命令删除表中的数据: DELETE <表名>
WHERE <删除条件表达式>
例5、删除表Users中列UserName等于空('')的数据: DELETE FROM Users WHERE UserName = ''; COMMIT WORK; 6、 查询数据
(1)SELECT语句的基本语法结构如下: SELECT子句 [ INTO 子句 ] FROM 子句
[ WHERE 子句 ] [ GROUP BY 子句] [ HAVING 子句 ] [ ORDER BY 子句 ]
SELECT语句中各子句的说明: SELECT子句 SELECT子句 INTO 子句 FROM 子句 WHERE 子句 HAVING 子句 UNION运算符 COMPUTE子句 指定由查询返回的列 创建新表并将结果行插入新表中 指定从其中检索行的表 指定查询条件 指定组或聚合的搜索条件 将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中的所有查询的全部行 生成合计作为附加的汇总列出现在结果集的最后。当与BY一起使用时,COMPUTE子句在结果集内生成控制中断和分类汇总。可在同一查询内指定COMPUTE BY和COMPUTE FOR子句用于指定BROWSE或XML选项 描述 GROUP BY 子句 指定查询结果的分组条件 ORDER BY 子句 指定结果集的排序 FOR子句 OPTION子句 应在整个查询中使用指定的查询提示。每个查询提示只能指定一次,但允许指定多个查询提示。用该语句只可能指定一个OPTION子句。查询提示影响语句中的所有运算符。如果主查询中涉及UNION,则只有涉及UNION运算符的最后一个查询可以有OPTION子句。 例6、在SELECT语句中查询指定的列名 COL EMP_NAME FORMAT A20 COL SEX FORMAT A10 COL TITLE FORMAT A10
SELECT Emp_name, Sex, Title FROM dhb.Employees; (2)使用ROWNUM
(3)使用LIKE关键字实现模糊查询 Oracle的通配符及其含义 % _ ? # [] 包含零个或多个任意字符的字符串 任意单个字符 任意单个字符 表示0——9的数字 指定范围或集合中的任意单个字符 查询所有身份证号中包含ddd的员工记录
例7、SELECT EMP_NAME, TITLE, IDCard FROM DHB.Employees WHERE IDCard LIKE 'Yd%';
(3)在SELECT中使用DECODE函数 DECODE函数语法如下:
DECODE(<输入值>,<值1>,<结果1>,[,<值2>,<结果2>…][,<默认结果>])
如果<输入值>等于<值1>,则DECODE函数返回<结果1>;如果<输入值>等于<值2>,则DECODE函数返回<结果2>,以此类推。如果参数列表中没有与<输入值>相等的值,则DECODE函数返回<默认结果>
例8、SELECT Emp_name, DECODE(Sex, '男', '先生', '女', '女士', '未知') AS Sex FROM DHB.Employees;
(4)在SELECT中使用CASE函数
CASE函数还可以根据不同逻辑表达式是否成立来决定函数的返回值,语法如下: CASE
WHEN <逻辑表达式1> THEN <结果1> [WHEN <逻辑表达式2> THEN <结果2> …] [ELSE <默认结果>] END
例9:在Employees中,将员工工资分3个级别,工资小于等于3000的级别为低,工资大于3000且小于5000的级别为中,工资大于等于5000的级别为高。
SELECT Emp_name, Wage, CASE WHEN Wage<=3000 THEN '低' WHEN Wage>3000 AND Wage<5000 THEN '中' WHEN Wage>=5000 THEN '高' END AS GRADE FROM DHB.Employees;
(5)保存查询结果
在CREATE TABLE语句中使用SELECT子句可以将查询结果集填充到新建的表中。新表的
结构由选择列表中列的特性定义。语法如下: CREATE TABLE <新表名> AS
例10:将办公室的所有员工的姓名和职务信息保存到表Office中: CREATE TABLE DHB.Office AS SELECT e.Emp_Name, e.Title
FROM DHB.Employees e, DHB.Departments d
WHERE e.Dep_id = d.Dep_Id AND d.Dep_Name = '办公室';
思考题:
1、创建用户,指定密码、表空间。用户名命名以本人姓名的缩写+_+学号后两位命名。 2、创建如下表,将表保存到自己的用户方案中。 学生表:student
字段名称 字段类型 约束 sno varchar2(10) 主键 sname varchar2(20) sage number(2) ssex varchar2(5)
CREATE TABLE student
(sno varchar2(10) Primary Key, sname varchar2(20), sage number(2),
ssex varchar2(5));
教师表:teacher
tno varchar2(10) 主键 tname varchar2(20)
CREATE TABLE teacher
(tno varchar2(10) Primary Key, tname varchar2(20));
课程表:course
cno varchar2(10) 与tno联合做主键 cname varchar2(20) tno varchar2(20)
CREATE TABLE course
(cno varchar2(10), cname varchar2(20), tno varchar2(20), Primary Key(cno,tno));
成绩表:sc
sno varchar2(10) 与cno联合做主键 cno varchar2(10) score number(4,2)
create table sc( sno varchar2(10), cno varchar2(10), score number(4,2), primary key (sno,cno) );
3\\为各表输入数据。
insert into student values ('s001','张三',23,'男'); insert into student values ('s002','李四',23,'男'); insert into student values ('s003','吴鹏',25,'男'); insert into student values ('s004','琴沁',20,'女'); insert into student values ('s005','王丽',20,'女'); insert into student values ('s006','李波',21,'男'); insert into student values ('s007','刘玉',21,'男'); insert into student values ('s008','萧蓉',21,'女'); insert into student values ('s009','陈萧晓',23,'女'); insert into student values ('s010','陈美',22,'女'); commit;
insert into teacher values ('t001', '刘阳'); insert into teacher values ('t002', '谌燕'); insert into teacher values ('t003', '胡明星'); commit;
insert into course values ('c001','J2SE','t002'); insert into course values ('c002','Java Web','t002'); insert into course values ('c003','SSH','t001'); insert into course values ('c004','Oracle','t001');
insert into course values ('c005','SQL SERVER 2005','t003'); insert into course values ('c006','C#','t003');
insert into course values ('c007','JavaScript','t002'); insert into course values ('c008','DIV+CSS','t001'); insert into course values ('c009','PHP','t003'); insert into course values ('c010','EJB3.0','t002'); commit;
insert into sc values ('s001','c001',78.9);
insert into sc values ('s002','c001',80.9); insert into sc values ('s003','c001',81.9); insert into sc values ('s004','c001',60.9); insert into sc values ('s001','c002',82.9); insert into sc values ('s002','c002',72.9); insert into sc values ('s003','c002',81.9); insert into sc values ('s001','c003','59'); commit;
4、 查询每门课程被选修的学生数。
SELECT cno,count(sno) FROM sc GROUP BY cno Order by cno;
5、 查询出只选修了一门课程的全部学生的学号和姓名。
SELECT sc.sno,student.sname FROM sc,student
Where sc.sno= student.sno
GROUP BY sc.sno,student.sname HAVING count(cno)=1 ;
6、查询男生、女生人数。 7、查询姓“张”的学生名单。
8、查询同名同姓学生名单,并统计同名人数。 9、1981 年出生的学生名单。
10、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列。
11、查询平均成绩大于85 的所有学生的学号、姓名和平均成绩。 12、统计每门课程的学生选修人数(超过10 人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
13、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分。 14、按各科平均成绩从低到高和及格率的百分数从高到低顺序。
15、统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60]。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库oracle实验指导书之全本(3)在线全文阅读。
相关推荐: