Oracle資料庫DML(資料操縱語言)參考程式碼,簡單查詢,分組查詢,簡單增刪改操作
阿新 • • 發佈:2018-11-15
撰寫人——軟工二班——陳喜平
– 實驗內容:
– 一、簡單查詢
– 編寫簡單查詢語句,理解笛卡爾積、選擇、投影的概念及其在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'
-- );