-- 退出 SQLPLUS
exit;
-- 修改 system(sys) 账号密码
SQLPLUS /NOLOG
CONN /AS SYSDBA
ALTER USER SYSTEM IDENTIFIED BY tarring;
-- 清除 SQLPLUS 屏幕
CLEAR SCREEN;
CL SCR;
-- 查看数据文件位置
SELECT NAME FROM v$datafile;
-- 查看控制文件位置
SELECT NAME FROM v$controlfile;
-- 查看日志文件位置
SELECT MEMBER FROM v$logfile;
-- 建立表空间
CREATE TABLESPACE ts01
DATAFILE 'D:\DataBase\Oracle11g\oradata\orcl\test_db01.dbf'SIZE 100M
AUTOEXTEND ON NEXT 100M MAXSIZE 1024M
DEFAULT STORAGE(INITIAL 10m NEXT 1M)
PERMANENT
ONLINE
LOGGING;
-- 修改表空间
ALTER TABLESPACE ts01
NOLOGGING;
-- 表空间增加数据文件
ALTER TABLESPACE ts01
ADD DATAFILE 'D:\DataBase\Oracle11g\oradata\orcl\test_db02.dbf'SIZE 100M REUSE
AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
-- 删除表空间
DROP TABLESPACE ts01;
-- 删除表空间同时删除数据文件
DROP TABLESPACE ts01 INCLUDING CONTENTS AND DATAFILES;
-- 表空间中建表
CREATE TABLE student(
student_id VARCHAR2(10),
student_name VARCHAR2(20)
)TABLESPACE ts01;
-- 查看表所属表空间
SELECT TABLE_NAME, TABLESPACE_NAME FROM tabs WHERE TABLE_NAME = 'STUDENT';
-- 查看表结构
DESCRIBE student;
DESC student;
-- 增加表注释
COMMENT ON TABLE student IS '学生信息表';
-- 查看表注释
SELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAME = 'STUDENT';
SELECT * FROM ALL_TAB_COMMENTS WHERE TABLE_NAME = 'STUDENT';
-- 表字段增加注释
COMMENT ON COLUMN STUDENT.STUDENT_ID IS '学生编号';
-- 查看表字段注释
SELECT * FROM USER_COL_COMMENTS WHERE TABLE_NAME = 'STUDENT';
SELECT * FROM ALL_COL_COMMENTS WHERE TABLE_NAME = 'STUDENT';
-- 查看用户所有表
SELECT * FROM User_Tables;
-- 查看用户拥有的所有对象
SELECT * FROM User_Objects;
-- 查看用户拥有的 表 试图 序列
SELECT * FROM User_Catalog;
-- 表字段修改
ALTER TABLE student MODIFY(student_id CHAR(15));
-- 表字段增加
ALTER TABLE STUDENT ADD(AGE NUMBER(2));
-- 删除表字段
ALTER TABLE STUDENT DROP COLUMN student_name;
-- 修改表名称
RENAME STUDENT TO STU;
-- 删除表
DROP TABLE STUDENT;
CREATE TABLE student(
s_id Varchar2(10),
s_name varchar2(20),
s_age Number(3),
s_birthday DATE
)TABLESPACE ts01;
-- 增加一条记录
INSERT INTO
student (s_id, s_name, s_age, s_birthday)
VALUES ('S000000001', 'Tarring01', 10, to_date('1982-10-06','yyyy-mm-dd'));
INSERT INTO
student (s_id, s_name, s_age, s_birthday)
VALUES ('S000000002', 'Tarring02', 10, Sysdate);
-- 使用替代变量时,输入字符串字段时一样要写上引号
INSERT INTO
student (s_id, s_name, s_age, s_birthday)
VALUES (&s_id, &s_name, 10, Sysdate);
-- 修改记录
UPDATE student SET s_name = '陶川', s_age = 20 WHERE s_id = 'S000000002';
-- 删除记录
DELETE FROM student WHERE s_id = 'S000000002';
-- 截断表
TRUNCATE TABLE student;
-- 事务处理
COMMIT; -- 提交事务
INSERT INTO student (s_id, s_name) VALUES ('S001', 'tarring1');
ROLLBACK; -- 回滚,回滚到上一次提交过后的点
-- 带恢复点的事务
COMMIT;
INSERT INTO student (s_id, s_name) VALUES ('S001', 'tarring1');
SAVEPOINT firstdate;
INSERT INTO student (s_id, s_name) VALUES ('S002', 'tarring2');
SAVEPOINT seconddate;
DELETE FROM student;
ROLLBACK TO firstdate;
SELECT * FROM student;
-- 约束条件 说明
--------------------------------------------------------------------
-- UNIQUE 指定字段的值,必须是唯一的
-- PRIMARY KEY 主键,会为指定的字段作索引,并且也是唯一的值
-- NOT NULL 不可以是空值【'' NULL】或0(零)
-- CHECK 检查,必须符合指定的条件
-- FOREIGN KEY 外键,用来创建一个参考表之间的关系
-- 建表同时建立唯一约束
CREATE TABLE student(
s_id Varchar2(10),
s_name varchar2(20),
s_age Number(3),
s_birthday DATE,
CONSTRAINT s_name_uk UNIQUE(s_name)
)TABLESPACE ts01;
-- 查看唯一约束
SELECT table_name, constraint_name, constraint_type FROM User_Constraints WHERE table_name = 'STUDENT';
-- 作业:数据字典【分类 常用】
-- 建表同时建立主键
CREATE TABLE student(
s_id Varchar2(10),
s_name varchar2(20),
s_age Number(3),
s_birthday DATE,
CONSTRAINT s_id_pk PRIMARY KEY (s_id)
)TABLESPACE ts01;
-- 查看主键约束
SELECT table_name, constraint_name, constraint_type FROM User_Constraints WHERE table_name = 'STUDENT';
-- 建表同时建立非空字段
CREATE TABLE student(
s_id Varchar2(10),
s_name varchar2(20) NOT NULL,
s_age Number(3),
s_birthday DATE,
CONSTRAINT s_id_pk PRIMARY KEY (s_id)
)TABLESPACE ts01;
INSERT INTO student (s_id, s_name) VALUES ('S001', NULL); -- 插入一个null
-- 查看非空约束
SELECT table_name, constraint_name, constraint_type, search_condition FROM User_Constraints WHERE table_name = 'STUDENT';
-- 建表同时建立检查
CREATE TABLE student(
s_id Varchar2(10),
s_name varchar2(20),
s_age Number(3),
s_birthday DATE,
CONSTRAINT s_age_ck CHECK (s_age BETWEEN 1 AND 100) -- 端点值可以使用
)TABLESPACE ts01;
-- 查看检查约束
SELECT table_name, constraint_name, constraint_type, search_condition FROM User_Constraints WHERE table_name = 'STUDENT';
-- 外键的使用
CREATE TABLE team(
t_id Varchar2(10),
t_name Varchar2(20),
CONSTRAINT t_id_pk PRIMARY KEY (t_id)
)TABLESPACE ts01;
CREATE TABLE student(
s_id Varchar2(10),
team_id VARCHAR2(10),
s_name varchar2(20),
CONSTRAINT s_id_pk PRIMARY KEY (s_id),
CONSTRAINT s_team_id_fk FOREIGN KEY (team_id) REFERENCES team(t_id)
)TABLESPACE ts01;
-- 查看表的外键约束
SELECT table_name, constraint_name, constraint_type FROM User_Constraints WHERE table_name = 'STUDENT';
drop table team; -- 被引用表是不能删除的
insert into team (t_id, t_name) values ('t001', 'lansene');
insert into student(s_id, s_name, team_id) values ('s001','tarring', 't001');
delete from team; -- 被引用的记录是不能删除的
-- 关闭一个约束
ALTER TABLE student DISABLE CONSTRAINT s_team_id_fk;
-- 启用一个约束
ALTER TABLE student ENABLE CONSTRAINT s_team_id_fk;
-- 删除一个约束
ALTER TABLE student DROP CONSTRAINT s_team_id_fk;
-- 已创建的表增加一个约束
ALTER TABLE student ADD CONSTRAINT s_team_id_fk FOREIGN KEY (team_id) REFERENCES team(t_id);
/********************************************************************************************|
| SQL语句5大类型 | 命令 | 说明 |
|********************************************************************************************|
| Data Retrieval数据检索 | select | 查询记录 |
|********************************************************************************************|
| Date Manipulation Language【DML】数据操纵语言 | insert | 添加记录 |
| | update | 修改记录 |
| | delete | 删除记录 |
|********************************************************************************************|
| Data Definition Language【DDL】数据定义语言 | create | 创建 |
| | alter | 修改 |
| | drop | 丢弃【删除】 |
| | rename | 重命名 |
| | truncate | 截断 |
|********************************************************************************************|
| Transaction Control事务控制 | commit | 确认命令 |
| | rollback | 回退至前一次确认的命令或保存点 |
| | savepoint | 设置保存点 |
|********************************************************************************************|
| Data Control Language【DCL】数据控制语言 | grant | 授予权限 |
| | revoke | 撤消权限 |
|********************************************************************************************/
/*************************************|
| 系统权限 | 说明 |
|*************************************|
| create session | 连接数据库 |
|*************************************|
| create table | 创建表 |
|*************************************|
| create sequence | 创建序列 |
|*************************************|
| create view | 创建视图 |
|*************************************|
| create proceduer | 创建程序 |
|*************************************/
/*******************************************************************|
| \ 对象 | 表【table】 | 视图【view】 | 程序【procedure】 |
| 权限 \ | | | |
|*******************************************************************|
| insert | Y | Y | |
|*******************************************************************|
| alter | Y | | |
|*******************************************************************|
| update | Y | Y | |
|*******************************************************************|
| delete | Y | Y | |
|*******************************************************************|
| select | Y | Y | |
|*******************************************************************|
| index | Y | | |
|*******************************************************************|
| execute | | | Y |
|*******************************************************************/
-- 创建用户
CREATE USER u01 IDENTIFIED BY p01;
-- 创建用户并制定默认表空间
CREATE USER u01 IDENTIFIED BY p01 DEFAULT TABLESPACE QUOTA 2M ON ts01; --quota 表空间中可使用的配额
-- 修改用户密码
ALTER USER u01 IDENTIFIED BY p001;
-- 修改用户表空间配额
ALTER USER u01 QUOTA 20M ON ts01;
ALTER USER u01 QUOTA UNLIMITED ON ts01; -- 用户对表空间没有配额限制
-- 回收unlimited tablespace权限
REVOKE UNLIMITED TABLESPACE FROM ts01;
-- 删除用户
DROP USER u01;
-- 切换连接数据库的用户
CONNECT u01/p01;
conn u01/p01;
-- 授权用户连接数据库的权限
GRANT CREATE SESSION TO u01;
-- 授权用户创建序列(sequence)的权限
GRANT CREATE sequence TO u01;
-- 授权用户创建表的权限
GRANT CREATE TABLE TO u01;
--授权用户查表的权限
grant select on ts01.user1 to wangkai;
--授权用户修改表的权限
grant alter on user1 to wangkai;
--授权用户删除表的权限(没有此权限)
grant drop on user1 to wangkai;(错误)
--授权用户对一个表的所有权限
grant all on user1 to wangkai;
--授权所有用户对一个表的所有权限
grant all on user1 to public;
-- 收回用户创建表的权限
REVOKE CREATE TABLE FROM u01;
-- 收回用户查表的权限
REVOKE select on user1 FROM u01;
-- 收回用户修改的权限
REVOKE select on user1 FROM u01;
-- 收回用户对一个表的所有权限
revoke all on user1 from wangkai;
--收回所有用户对一个表的所有权限
revoke all on user1 to public;
-- 创建角色
CREATE ROLE r01;
-- 角色授权
GRANT CREATE SESSION, CREATE TABLE TO r01;
-- 收回角色权限
REVOKE CREATE TABLE FROM r01;
-- 查看角色权限
SELECT ROLE,PRIVILEGE FROM role_sys_privs WHERE ROLE='R01'
-- 角色赋给用户
GRANT r01 TO u01;
-- 查看当前用户角色
SELECT * FROM user_role_privs;
-- 删除角色
DROP ROLE r01;
- 浏览: 22609 次
- 性别:
- 来自: 成都
相关推荐
在这个场景中,我们可以利用批处理文件来简化Oracle数据库的操作,如删除用户、创建用户、创建表和触发器,以及执行其他SQL语句。 首先,我们需要了解如何在批处理文件中连接Oracle数据库。这通常通过Oracle的...
Oracle SQL Profiler,自己设计算法写的一款非常好用的抓取Oracle数据库SQL语句的工具,可以再没有源码的情况下监控ORACLE数据库服务器的v$sqlarea视图抓取出从点击开始按钮到点击结束按钮期间执行过的SQL语句。...
进行Oracle数据库维护,掌握一些常用的SQL语句是必不可少的。本文将深入探讨Oracle数据库维护中的核心SQL语句,帮助你更好地管理和优化数据库。 1. **数据查询(SELECT语句)**:SELECT语句是SQL中最基本的语句,...
Oracle数据库SQL语句跟踪器,通常被称为SQL Monitor,是一种强大的工具,用于监控和分析数据库中的SQL语句执行情况。在Oracle环境中,理解SQL语句的行为是优化数据库性能的关键。SQL Monitor提供实时视图,帮助DBA...
### 基于Oracle数据库的SQL语句优化 #### 引言 Oracle数据库是由甲骨文公司开发的一款关系型数据库管理系统,在当前的数据库市场中占据着重要的地位。它广泛应用于商业、政府等领域,具备强大的数据处理能力和高效...
对ORACLE-SQL进行一些布局优化,更新它的格式
Oracle数据库的SQL语句是数据库管理员和开发人员日常工作中不可或缺的一部分。本文将深入解析Oracle SQL语句的基本操作,帮助初学者更好地理解和应用这些技巧,从而提高数据库查询效率。 首先,理解选择最有效率的...
Oracle数据库Sql语句详解大全,提供给大家快速查询复习哦!
Oracle数据库维护常用SQL语句集合(3)-PLSQL
Oracle数据库SQL语句大全
Oracle数据库是世界上使用最广泛的数据库之一,其SQL语句的性能直接影响到整个系统的运行效率。随着数据量的不断增加,优化SQL语句变得日益重要。本文将对Oracle数据库中的SQL语句优化进行深入探讨,分析其优化目的...
本文将详细介绍Oracle数据库中SQL语句的优化与分析方法。 一、SQL语句执行的基本步骤和执行计划 在Oracle数据库中,执行一条SQL语句涉及多个步骤,每个步骤都可能包括从数据库中物理检索数据行或以某种方法准备...
本文档总结了 Oracle 中常用的 SQL 语句,包括数据库的创建、删除、备份、表的创建、删除、修改、索引的创建、视图的创建等基本操作,以及一些高级查询运算符的使用。 一、数据库操作 * 创建数据库:CREATE ...
### 自动生成Oracle数据库表分析语句 在Oracle数据库管理中,定期进行表分析对于优化查询性能至关重要。通过分析表和索引,Oracle可以更新统计信息,这些信息将被查询优化器用于选择最佳的执行计划。本文将详细介绍...
文章《基于Oracle数据库的SQL语句优化》的作者张学琴来自北方民族大学,该文发表在《电脑知识与技术》期刊上,ISSN为1009-3044,详细介绍了针对Oracle数据库的SQL语句优化技术,以及如何通过优化查询语句来提升性能...
ORACLE数据库常用的SQL语句 ORACLE数据库是目前最流行的关系数据库管理系统之一,SQL语句是数据库管理的基础。本资源提供了ORACLE数据库中常用的SQL语句,包括用户管理、权限管理、表管理等多个方面的操作。 一、...
Oracle 常用 SQL 语句汇总 Oracle 是一个功能强大且复杂的关系数据库管理系统,它提供了多种 SQL 语句来管理和操作数据库。在本文中,我们将详细介绍 Oracle 中常用的 SQL 语句,包括数据控制语句(DML)、数据定义...
基于ORACLE数据库的SQL语句优化分析.pdf