Oracle数据库DML(数据操纵语言)参考代码,简单查询,分组查询,简单增删改操作

撰写人——软工二班——陈喜平
– 实验内容:
– 一、简单查询
– 编写简单查询语句,理解笛卡尔积、选择、投影的概念及其在SQL中的实现
–SQL PL/SQL SQLPLUS
– DDL :CREATE ALTER DROP 数据定义语言
– DML INSERT DELETE UPDATE SELECT 数据操纵语言
– DCL GRANT REVOKE 数据控制语言

– 关系代数无助基本操作
– 行 列 二维表
– 并集 两个同列集合,行相加 UNION
– 差集 两个同列集合,行相减
– 笛卡儿积 两个集合,列相加,行相乘
– 选择 一个集合,减行
– 投影 一个集合,减列

-- set pagesize 150;
-- set linesize 160;
-- SELECT * FROM EMP;
-- SELECT * FROM DEPT;

在这里插入图片描述
– 查询员工表与部门表的笛卡尔积

-- SELECT * 
-- FROM EMP, DEPT
-- WHERE 1=1;
-- 在上述操作的基础上完成连接的选择操作和投影操作
-- SELECT EMP.*,DEPT.dname,DEPT.loc
-- FROM EMP, DEPT
-- WHERE EMP.DEPTNO = DEPT.DEPTNO
-- ORDER BY hiredate desc;
-- 对查询数据进行排序操作
-- SELECT EMP.*,DEPT.dname,DEPT.loc
-- FROM EMP, DEPT
-- WHERE EMP.DEPTNO = DEPT.DEPTNO
-- ORDER BY EMP.DEPTNO,sal desc;

在这里插入图片描述
– ORACLE 查看所有表名:

-- SELECT TABLE_NAME FROM USER_TABLES

– 编写查询语句,完成对员工信息、部门情况等的基本查询
– 查询工资超过2500的员工基本信息

SELECT *
FROM EMP
WHERE sal>=2500;

– 查询月总收入超过2500的员工基本信息

SELECT *
FROM EMP
WHERE sal+comm>=2500;

– 查询工资超过2500的员工的姓名及其所在部门名称

SELECt name,dname
FROM EMP DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO
AND sal>=2500;

– 查询所有员工的工资、奖金、总收入,并按部门编号排序

SELECT sal,comm,sal+nvl(comm,0)
FROM EMP
WHERE 1=1
ORDER BY DEPTNO;

– 查询全公司的平均工资、最高工资、最低工资和总奖金数。

SELECT AVG(SAL) avgsalary,
	   max(sal) maxsalary,
	   min(sal) minsalary,
	   sum(nvl(comm,0)) summaryofcomm
FROM EMP;

– 二、分组查询
– 编写分组查询语句,理解分组查询的意义

– 编写分组查询语句,实现分组查询的应用

– 三、增删改语句
– 添加数据

-- CREATE TABLE student(
-- 	id char(4),
-- 	name varchar(8),
-- 	gender number(1),--1为女 0为男
-- 	height number(6,2),
-- 	weight number(6,2),
-- 	address varchar(10)
-- );

-- INSERT INTO student(id,name,gender,height,weight,address)
-- VALUES(
-- 	'001',
-- 	'Bob',
-- 	1,
-- 	52.1,
-- 	154,
-- 	'LouDi'
-- );

-- SELECT * FROM student;

-- INSERT INTO student(id,name,gender,height,weight,address)
-- VALUES(
-- 	'002',
-- 	'Ana',
-- 	0,
-- 	60.30,
-- 	178,
-- 	'XiangTan'
-- );

-- SELECT * FROM student;

-- INSERT INTO student(id,name,gender,height,weight,address)
-- VALUES(
-- 	'003',
-- 	'Coi',
-- 	1,
-- 	48.92,
-- 	158,
-- 	'ChangSha'
-- );

-- SELECT * FROM student;

-- INSERT INTO student(id,name,gender,height,weight,address)
-- VALUES(
-- 	'004',
-- 	'DAV',
-- 	0,
-- 	62.39,
-- 	180,
-- 	'ShaoYang'
-- );

-- SELECT * FROM student;

-- INSERT INTO student(id,name,gender,height,weight,address)
-- VALUES(
-- 	'004',
-- 	'DAV',
-- 	0,
-- 	63.47,
-- 	183,
-- 	'YonZhou'
-- );

-- SELECT * FROM student;
--  DROP TABLE student;

在这里插入图片描述

– 创建一个相同的表同时将表中所有数据复制过来

-- DROP TABLE student2;
--  CREATE TABLE student2
--  as SELECT * FROM student WHERE 1=1;
--  SELECT * FROM student2;

– -- 删除数据

-- DELETE FROM student2
-- WHERE height=62.39;
--  SELECT * FROM student2;

在这里插入图片描述

– 修改数据

-- SELECT * 
-- FROM student;
-- UPDATE student set address='LouDI' WHERE id='001';

-- SELECT * 
-- FROM student;
-- UPDATE student set height='199' WHERE id='001';  

-- SELECT * 
-- FROM student;
-- UPDATE student set weight='250' WHERE id='001'; 

在这里插入图片描述
–创建一个相同的表但是里面的字段为空值

-- CREATE TABLE student3
-- as SELECT * FROM student WHERE 1=0;

-- ALTER TABLE student3 
-- modify id char(4) default '001';
-- ALTER TABLE student3 
-- modify name varchar(8) default 'XXX'; 
-- ALTER TABLE student3 
-- modify gender number(1) default 1;
-- ALTER TABLE student3 
-- modify height number(6,2) default 168;
-- ALTER TABLE student3 
-- modify weight number(6,2) default 52.00;
-- ALTER TABLE student3 
-- modify address varchar(10) default 'LouDi';

-- SELECT * FROM student3;
-- prompt insert method1
-- INSERT INTO student3(id,name,gender,height,weight,address)
-- VALUES(
-- 	'004',
-- 	'DAV',
-- 	0,
-- 	63.47,
-- 	183,
-- 	'YonZhou'
-- );

猜你喜欢

转载自blog.csdn.net/qq_41518597/article/details/83152384