/ *
================================================ ===========
|あなたは、ROWID値を表示するには、SELECTステートメントを使用することができます
=============================== =============================
* /
SELECT ROWIDは、ENAME
SCOTT.EMP FROM
WHERE ENAME = 'SMITH';
================================================ ===========
|あなたは、ROWID値を表示するには、SELECTステートメントを使用することができます
=============================== =============================
* /
SELECT ROWIDは、ENAME
SCOTT.EMP FROM
WHERE ENAME = 'SMITH';
/ *
================================================ ===========
| ROWNUMは10件のレコードを使用して抽出し、EMP表の番号が表示され
========================= ===================================
* /
================================================ ===========
| ROWNUMは10件のレコードを使用して抽出し、EMP表の番号が表示され
========================= ===================================
* /
SELECT EMP *、ROWNUM。
SCOTT.EMP FROM
WHERE ROWNUM <11;
SCOTT.EMP FROM
WHERE ROWNUM <11;
/ *
================================================ ===========
|例3:stuInfoテーブルを作成する
================================ ============================
* /
* / -学生情報シート作成- TABLE stuInfo / * CREATE
(
stuname VARCHAR2(20)NOT NULL、 -参加者の名前を、非ヌル(別売)
(学校、非空でなければなりません- stuno CHAR(6)NOT NULL、 )充填
年齢、非ヌル(オプション) - stuAge番号(3,0)NOT NULL、
stuID数値(18,0)、 - 18個の数字を表すID番号、小数点以下が0
stuSeat数値(2 、0) -座席番号
)。
(
stuname VARCHAR2(20)NOT NULL、 -参加者の名前を、非ヌル(別売)
(学校、非空でなければなりません- stuno CHAR(6)NOT NULL、 )充填
年齢、非ヌル(オプション) - stuAge番号(3,0)NOT NULL、
stuID数値(18,0)、 - 18個の数字を表すID番号、小数点以下が0
stuSeat数値(2 、0) -座席番号
)。
/ *
================================================ ===========
|追加:stuName列の定義を変更するので、この列は25個の文字を保持することができます
====================== ======================================
* /
================================================ ===========
|追加:stuName列の定義を変更するので、この列は25個の文字を保持することができます
====================== ======================================
* /
ALTER TABLE stuInfo
MODIFY(stuName VARCHAR2(25))。
MODIFY(stuName VARCHAR2(25))。
/*
===========================================================
| 补充:向stuInfo 表添加stuTel_no 和stuAddress 两个列
============================================================
*/
===========================================================
| 补充:向stuInfo 表添加stuTel_no 和stuAddress 两个列
============================================================
*/
ALTER TABLE stuInfo
ADD (stuTel_no VARCHAR2 (12),
stuAddress VARCHAR2(20));
ADD (stuTel_no VARCHAR2 (12),
stuAddress VARCHAR2(20));
/*
===========================================================
| 补充:从stuInfo表中删除列
============================================================
*/
===========================================================
| 补充:从stuInfo表中删除列
============================================================
*/
ALTER TABLE stuInfo
DROP COLUMN stuTel_no; --删除stuTel_no列
--或者
ALTER TABLE stuInfo
DROP (stuTel_no,stuSeat);--删除stuTel_no和stuSeat列
DROP COLUMN stuTel_no; --删除stuTel_no列
--或者
ALTER TABLE stuInfo
DROP (stuTel_no,stuSeat);--删除stuTel_no和stuSeat列
/*
===========================================================
| 补充:删除stuInfo表
============================================================
*/
===========================================================
| 补充:删除stuInfo表
============================================================
*/
DROP TABLE stuInfo;
/*
===========================================================
| 补充:插入stuInfo表数据
============================================================
*/
INSERT INTO stuInfo VALUES ('张三',1,18,null,1);
INSERT INTO stuInfo VALUES ('李四',2,20,null,2);
INSERT INTO stuInfo VALUES ('王五',3,15,null,3);
INSERT INTO stuInfo VALUES ('张三',4,18,null,4);
INSERT INTO stuInfo VALUES ('张三',5,20,null,5);
COMMIT;
INSERT INTO stuInfo VALUES ('李四',2,20,null,2);
INSERT INTO stuInfo VALUES ('王五',3,15,null,3);
INSERT INTO stuInfo VALUES ('张三',4,18,null,4);
INSERT INTO stuInfo VALUES ('张三',5,20,null,5);
COMMIT;
/*
===========================================================
| 选择无重复的行
============================================================
*/
SELECT DISTINCT stuName,stuAge
FROM stuInfo;
FROM stuInfo;
/*
===========================================================
| 按照姓名升序,如果姓名相同按照年龄降序排序
============================================================
*/
SELECT stuNo,stuName, stuAge
FROM stuInfo
WHERE stuAge>17
ORDER BY stuName ASC, stuAge DESC;
===========================================================
| 按照姓名升序,如果姓名相同按照年龄降序排序
============================================================
*/
SELECT stuNo,stuName, stuAge
FROM stuInfo
WHERE stuAge>17
ORDER BY stuName ASC, stuAge DESC;
/*
===========================================================
| 使用列别名
============================================================
*/
SELECT stuName as "姓 名",stuAge as "年 龄", stuID as 身份证号
FROM StuInfo;
/*
===========================================================
| 利用现有的表创建新表
============================================================
*/
CREATE TABLE newStuInfo1 AS SELECT * FROM StuInfo;
CREATE TABLE newStuInfo2 AS SELECT stuName,stuNo,stuAge FROM StuInfo;
CREATE TABLE newStuInfo3 AS SELECT * FROM StuInfo WHERE 1=2;
SELECT * FROM newStuInfo1;
SELECT * FROM newStuInfo2;
SELECT * FROM newStuInfo3;
/*
===========================================================
| 查看表中行数
============================================================
*/
SELECT COUNT(*) FROM stuInfo;
SELECT COUNT(1) FROM stuInfo;
SELECT * FROM newStuInfo1;
SELECT * FROM newStuInfo2;
SELECT * FROM newStuInfo3;
/*
===========================================================
| 查看表中行数
============================================================
*/
SELECT COUNT(*) FROM stuInfo;
SELECT COUNT(1) FROM stuInfo;
/*
===========================================================
| 取出stuName,stuAge列不完全重复记录
============================================================
*/
SELECT stuName,stuAge
FROM stuInfo
GROUP BY stuName,stuAge
HAVING(COUNT(stuAge||stuAge) <2);
===========================================================
| 取出stuName,stuAge列不完全重复记录
============================================================
*/
SELECT stuName,stuAge
FROM stuInfo
GROUP BY stuName,stuAge
HAVING(COUNT(stuAge||stuAge) <2);
/*
===========================================================
| 删除stuName,stuAge列重复的行(保留一行)
============================================================
*/
DELETE
FROM stuInfo
WHERE ROWID NOT IN(
SELECT MAX(ROWID)
FROM stuInfo
GROUP BY stuName,stuAge
HAVING(COUNT(stuAge||stuAge)>1)
UNION
SELECT max(ROWID)
FROM Stuinfo
GROUP BY stuName,stuAge
HAVING(COUNT(stuAge||stuAge)=1)
);
===========================================================
| 删除stuName,stuAge列重复的行(保留一行)
============================================================
*/
DELETE
FROM stuInfo
WHERE ROWID NOT IN(
SELECT MAX(ROWID)
FROM stuInfo
GROUP BY stuName,stuAge
HAVING(COUNT(stuAge||stuAge)>1)
UNION
SELECT max(ROWID)
FROM Stuinfo
GROUP BY stuName,stuAge
HAVING(COUNT(stuAge||stuAge)=1)
);
SELECT * FROM stuInfo;
/*
===========================================================
| 查看当前用户所有数据量>100万的表的信息
============================================================
*/
SELECT *
FROM user_all_tables a
WHERE a.num_rows>1000000;
/*
===========================================================
| 事务控制语句应用举例
============================================================
*/
select * FROM dept;
===========================================================
| 查看当前用户所有数据量>100万的表的信息
============================================================
*/
SELECT *
FROM user_all_tables a
WHERE a.num_rows>1000000;
/*
===========================================================
| 事务控制语句应用举例
============================================================
*/
select * FROM dept;
--执行步骤一:创建dept 表
CREATE TABLE DEPT
( DEPTNO NUMBER(2) PRIMARY KEY, --部门编号
DNAME VARCHAR2(14) , --部门名称
LOC VARCHAR2(13) --地址
) ;
--执行步骤二:插入数据
INSERT INTO DEPT VALUES (10,'ACCOUNTING','NEW YORK');
INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');
INSERT INTO DEPT VALUES (30,'SALES','CHICAGO');
INSERT INTO DEPT VALUES (40,'OPERATIONS','BOSTON');
--执行步骤三:操作dept 表
INSERT INTO dept VALUES(50,'a',null);
INSERT INTO dept VALUES(60,'b',null);
SAVEPOINT a;
INSERT INTO dept VALUES(70,'c',null);
ROLLBACK TO SAVEPOINT a;
--执行步骤四:查看dept 表,有50、60 号部门
SELECT * FROM dept;
--执行步骤五:回滚
ROLLBACK;--没有50、60 号部门
--执行步骤六:查看dept 表
SELECT * FROM dept;
CREATE TABLE DEPT
( DEPTNO NUMBER(2) PRIMARY KEY, --部门编号
DNAME VARCHAR2(14) , --部门名称
LOC VARCHAR2(13) --地址
) ;
--执行步骤二:插入数据
INSERT INTO DEPT VALUES (10,'ACCOUNTING','NEW YORK');
INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');
INSERT INTO DEPT VALUES (30,'SALES','CHICAGO');
INSERT INTO DEPT VALUES (40,'OPERATIONS','BOSTON');
--执行步骤三:操作dept 表
INSERT INTO dept VALUES(50,'a',null);
INSERT INTO dept VALUES(60,'b',null);
SAVEPOINT a;
INSERT INTO dept VALUES(70,'c',null);
ROLLBACK TO SAVEPOINT a;
--执行步骤四:查看dept 表,有50、60 号部门
SELECT * FROM dept;
--执行步骤五:回滚
ROLLBACK;--没有50、60 号部门
--执行步骤六:查看dept 表
SELECT * FROM dept;