Oracle 第一章 上课代码

本文介绍了一系列SQL操作案例,包括表的创建与修改、数据插入、查询优化等。具体涵盖了查询权限授予、表结构定义、数据插入方法、去重查询、排序、别名使用及表备份等方面的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--赋予查询权限
GRANT SELECT ON Y2165.USERINFO TO yz


--创建数据表
create table studentinfo
(stuno number primary key not null)


alter table userinfo
add (stuage number ,stuname nvarchar2(100));


--添加语句
INSERT INTO "STUDENTINFO" VALUES (1, '微冷的雨', 18);
INSERT INTO "STUDENTINFO" VALUES (2, '彪哥', 58);
INSERT INTO "STUDENTINFO" VALUES (4, '老付', 28);
INSERT INTO "STUDENTINFO" VALUES (5, '迟老师', 68);
INSERT INTO "STUDENTINFO" VALUES (6, 'C哥', 98);
INSERT INTO "STUDENTINFO" VALUES (7, '邵老师', 78);
INSERT INTO "STUDENTINFO" VALUES (8, '张晓光', 38);


--distinct:去除表中重复数据(不重复显示数据)
select DISTINCT "stuname","stuage" from studentinfo


--按照姓名升序,如果姓名相同按照年龄降序排序
SELECT "stuno","stuname","stuage"
          FROM studentinfo
          WHERE "stuage">17
          ORDER BY "stuname"  ASC, "stuage" DESC


--使用别名显示姓 名、年 龄和身份证号列
SELECT "stuname" as "姓  名",
  "stuage" as "年  龄", "stuno" as 身份证号
               FROM studentinfo


--取出stuName,stuAge列不存在重复数据的记录
SELECT "stuname","stuage" 
          FROM studentinfo
          GROUP BY "stuname","stuage" 
          HAVING(COUNT("stuname"||"stuage") <2)    --重复的个数小于2(为1)




--创建学生表的备份表
create table studentbak
as
select * from studentinfo


--删除表中多余的重复记录只留一行id最小的数据
DELETE FROM studentinfo WHERE "stuno" NOT IN
(
SELECT MAX("stuno") FROM studentinfo GROUP BY "stuname","stuage"
)


SELECT "stuno"
FROM studentinfo
INTERSECT --交集(显示共有内容)
SELECT DISTINCT "stuno" from studentbak


SELECT "stuno"
FROM studentinfo
MINUS                       --减集(显示第一个查询减去第二个后的剩余记录)
SELECT DISTINCT "stuno" from studentbak
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值