/****************************表空间 start****************************/

--表空间的作用
/**
1.决定数据库实体的空间分配
2.设置数据库用户的空间份额
3.控制我们数据库部分数据的可用性
4.备份和恢复数据
**/
-- 如何创建表空间 对应的数据库的文件
/*create tablespace 表空间名称
datafile 路径名称
size 大小(默认值)
autoextend on next 大小 (递增的大小)
maxsize 大小(最大值)*/
/****创建一个表空间 jame_tablespace***/
create tablespace jame--数据库的名称
datafile 'E:\oracle\oradata\orcl\jame01.DBF' --路径名称 针对项目的数据库单独放一个路径
SIZE 20M; /***创建一个用户并且指定表空间 Array ***/
create user u_array
identified by u_array
default tablespace jame; /**将 connect resource 角色授权给u_array**/
grant connect,resource to u_array;
/*注意:在工作中,设计数据库的时候,表一定要跟用户放到一个表空间*/ /***查看表空间的名称及大小***/
/**
dba_tablespaces 表空间的信息视图
dba_data_files 表空间对应的文件信息
关系型数据库
**/
select t1.TABLESPACE_NAME,t2.BYTES
from dba_tablespaces t1, dba_data_files t2
where t1.TABLESPACE_NAME = t2.tablespace_name; /***查看物理文件的名称及大小***/
select * from dba_data_files /***查看表空间的使用情况***/
select * from dba_free_space; /**调整表空间**/
alter tablespace jame
add datafile 'E:\oracle\oradata\orcl\jame02.DBF'
size 20m
autoextend on next 2m
maxsize 50m;
--修改数据文件的大小
alter database datafile 'E:\oracle\oradata\orcl\jame02.DBF'
resize 50m; --删除数据文件
alter tablespace jame
drop datafile 'E:\oracle\oradata\orcl\jame02.DBF';
/****************************表空间 end****************************/
/****************************约束 start****************************/
--实现自动化部署自动化上线 自动化升级
/***
约束类型
1.主键约束(Primary)
2.唯一约束(unique)
3.检查约束(check)
4.非空约束(not null) --属于检查约束
5.外键约束(foreign key) ***/
create table t_student_con(
f_id int,
f_name varchar2(30),
f_sex char(2),
f_age int,
f_birth date default sysdate
);
--添加一个字段
alter table t_student_con
add f_email varchar2(30); --添加一个主键约束 不能为null 会自动添加唯一约束
alter table t_student_con
add constraint pk_std_id primary key (f_id); insert into t_student_con values(1,'Jaydy','M',23,to_date('1992-06-01','yyyy-mm-dd'),'jaydy@qq.com') insert into t_student_con values(1,'Jaydy','M',23,to_date('1992-06-01','yyyy-mm-dd'),'jaydy@qq.com')
--添加一个唯一约束
alter table t_student_con
add constraint uq_std_name unique(f_name);
insert into t_student_con values(2,'Jaydy','M',23,to_date('1992-06-01','yyyy-mm-dd'),'jaydy@qq.com')
--添加检查约束 可以自定义数据的完整性,保证字段的数据不存在约束条件之外的数据
alter table t_student_con
add constraint ck_std_sex check(f_sex='M' or f_sex='F') insert into t_student_con values(2,'Jaydy','S',23,to_date('1992-06-01','yyyy-mm-dd'),'jaydy@qq.com') --添加非空约束
/*不是很常用
alter table t_student_con add constraint nnull_std_email check( f_email is not null);
*/
--判断字段是否为null is null 判断是否不为null is not null
alter table t_student_con modify(f_email varchar2(30));
insert into t_student_con values(3,'思程','M',23,to_date('1992-06-01','yyyy-mm-dd'),null) ---外键约束
--考试信息表 100.00 95 95.5 95.55
create table t_student_exam(
e_id int,--主键
e_subject varchar2(30),--科目
e_score number(5,2),--分数
f_id int--学员信息的外键
);
--添加主键
alter table t_student_exam add constraint pk_exam_id primary key(e_id);
--添加外键
alter table t_student_exam add constraint fk_exam_student_id foreign key (f_id)
references t_student_con(f_id)
on delete cascade --在删除学生信息的时候,级联删除从表的成绩信息
; insert into t_student_exam values(2,'JavaSe',100,1);
select * from t_student_exam
--
delete t_student_con where f_id=1 --删除约束
alter table t_student_exam drop constraint fk_exam_student_id; /**在建表时同步加上**/
drop table t_student_con1;
create table t_student_con1(
f_id int primary key,
f_name varchar2(30),
f_sex char(2) check(f_sex='M' OR f_SEX='F'),
f_age int,
f_birth date default sysdate,
constraint ck_std_age check(f_age>=1 and f_age<=60)
);
DROP TABLE T_STUDENT_EXAM1;
create table t_student_exam1(
e_id int,--主键
e_subject varchar2(30),--科目
e_score number(5,2),--分数
f_id int REFERENCES T_STUDENT_CON(F_ID) ON DELETE CASCADE--学员信息的外键
); /****************************约束 end****************************/
alter user scott account unlock; /*简单查询 start*/
--1.查询姓名为SMITH的员工信息
--注意:在Oracle中内容区分大小写。 关键字、表名、字段名不区分大小写
select * from EMP WHERE ENAME='SMITH';
--2.查询20部门的所有员工信息
select * from emp where deptno=20
--3.查询所有JOB为CLERK的员工的员工号、员工姓名和部门号。
select empno,ename,deptno from emp where job='CLERK';
--4.查询奖金(COMM)高于工资(SAL)的员工信息。
select * from emp where comm>sal
--5.查询奖金高于工资的20%的员工信息。
select * from emp where comm>sal*0.2
--6.查询10号部门中JOB为MANAGER和 20部门中JOB为CLERK的员工的信息。
-- 组合条件
select * from emp where (job='MANAGER' and deptno=10) or (job='CLERK' AND DEPTNO=20)
--7.查询所有工种(job)不是MANAGER和CLERK且工资大于或等于2000的员工详细信息。
SELECT * FROM EMP WHERE JOB!='MANAGER' AND JOB!='CLERK' AND SAL>=2000
SELECT * FROM EMP WHERE JOB NOT IN ('MANAGER','CLERK') AND SAL>=2000
--8.查询所有工种(job)是MANAGER和CLERK且工资大于或等于2000的员工的详细信息。
SELECT * FROM EMP WHERE JOB IN ('MANAGER','CLERK') AND SAL>=2000
--10.查询员工名字中包含字母"S"的员工。
SELECT * FROM EMP WHERE ENAME LIKE '%S%';
--11.查询员工名字中不包含字母"S"的员工。
select * from emp where ename not like '%S%';
--12.查询员工姓名的第二字母为"M"的员工信息。
--%代表匹配任何数量的任何字符
--_代表任意单个字符
select * from emp where ename like '_M%'
--13.接收用户输入的员工姓名并且根据姓名查询该员工信息。
select * from emp where ename ='&员工姓名' AND SAL='&工资';
--统计表中所有的job类型
select distinct job from emp
--14.查询员工的姓名和薪水,并且按照薪水从高到低排序 order by 字段名 [desc|asc]
select ename,sal from emp order by sal desc
--15.查询员工的姓名和入职日期,并按入职日期从先到后进行排序。
select ename,hiredate from emp order by hiredate asc
--16.显示所有员工的姓名,工种,工资,和奖金按JOB降序排序,若JOB相同则按工资升序排序。
select ename,job,sal,comm from emp order by job desc,sal asc
/*使用的是scott用户下的emp 和dept表进行操作
1.查询姓名为SMITH的员工信息(注意大小写)
2.查询20部门的所有员工信息
3.查询所有JOB为CLERK的员工的员工号、员工姓名和部门号。
4.查询奖金(COMM)高于工资(SAL)的员工信息。
5.查询奖金高于工资的20%的员工信息。
6.查询10号部门中JOB为MANAGER和 20部门中JOB为CLERK的员工的信息。
7.查询所有工种(job)不是MANAGER和CLERK且工资大于或等于2000的员工详细信息。
8.查询所有工种(job)是MANAGER和CLERK且工资大于或等于2000的员工的详细信息。
9.查询有奖金的员工的不同工种(job)。
10.查询员工名字中包含字母"S"的员工。
11.查询员工名字中不包含字母"S"的员工。
12.查询员工姓名的第二字母为"M"的员工信息。
13.接收用户输入的员工姓名并且根据姓名查询该员工信息。
14.查询员工的姓名和薪水,并且按照薪水从高到低排序
15.查询员工的姓名和入职日期,并按入职日期从先到后进行排序。
16.显示所有员工的姓名,工种,工资,和奖金按JOB降序排序,若JOB相同则按工资升序排序。
*/
/*简单查询 end*/

  

oracle(三)的更多相关文章

  1. qlserver、Mysql、Oracle三种数据库的优缺点总结

    这篇文章主要介绍了sqlserver.Mysql.Oracle三种数据库的优缺点总结,需要的朋友可以参考下   一.sqlserver优点:易用性.适合分布式组织的可伸缩性.用于决策支持的数据仓库功能 ...

  2. MySQL、SqlServer、Oracle 三种数据库的优缺点

    MySQL.SqlServer.Oracle 三种数据库的优缺点 一.MySQL 优点: 缺点: 二.SqlServer 优点: 缺点: 三.Oracle 优点: 缺点: 一.MySQL 优点: 体积 ...

  3. Java JDBC Thin Driver 连接 Oracle 三种方法说明(转载)

    一.JDBC 连接Oracle 说明 JDBC 的应用连接Oracle 遇到问题,错误如下: ORA-12505,TNS:listener does not currently know of SID ...

  4. Oracle三组难缠的hint no_unnest/unnest,push_subq,push_pred--平展化(转)

    经常有人把这三个hint搞混,主如果因为对三种重写道理不清楚.特总结如下.(实验景象为10204)1. no_unnest, unnestunnest我们称为对子查询展开,顾名思义,就是别让子查询孤单 ...

  5. [转载]sqlserver、Mysql、Oracle三种数据库的优缺点总结

    一.sqlserver优点:易用性.适合分布式组织的可伸缩性.用于决策支持的数据仓库功能.与许多其他服务器软件紧密关联的集成性.良好的性价比等:为数据管理与分析带来了灵活性,允许单位在快速变化的环境中 ...

  6. Oracle三个配置文件详解

    先说转自https://www.2cto.com/database/201305/211705.html ORACLE的三个配置文件介绍 在oracle安装目录$HOME/network/admin下 ...

  7. Oracle 三种连接方式 NESTED LOOP HASH JOIN SORT MERGE JOIN

    NESTED LOOP: 对于被连接的数据子集较小的情况,嵌套循环连接是个较好的选择.在嵌套循环中,内表被外表驱动,外表返回的每一行都要在内表中检索找到与它匹配的行,因此整个查询返回的结果集不能太大( ...

  8. oracle三个网络配置文件(listener.ora、tnsname.ora、sqlnet.ora)的作用

    oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME\network\admin目录下. 1.  sqlne ...

  9. oracle三个连接配置文件 listener.ora、sqlnet.ora、tnsnames.ora

    关于PLSQL连接ORACLE配置字符串 首先要讲一下下面的一些知识 1.ORACLE_SID:(ORACLE SYSTEM IDENTIFIER) Oracle实例是由SGA和一组后台进程组成的,实 ...

  10. MySql、SqlServer、Oracle 三种数据库查询分页方式

    SQL Server关于分页 SQL 的资料许多,有的使用存储过程,有的使用游标.本人不喜欢使用游标,我觉得它耗资.效率低:使用存储过程是个不错的选择,因为存储过程是颠末预编译的,执行效率高,也更灵活 ...

随机推荐

  1. ACM学习历程—HDU5476 Explore Track of Point(平面几何)(2015上海网赛09题)

    Problem Description In Geometry, the problem of track is very interesting. Because in some cases, th ...

  2. P1731 生日蛋糕

    题目背景 7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层 生日蛋糕,每层都是一个圆柱体. 设从下往上数第i(1<=i<=M)层蛋糕是半径为Ri, 高度为Hi的圆柱 ...

  3. centos7添加环境变量

    # vim /etc/profile在最后,添加:export PATH="/usr/local/webserver/mysql/bin:$PATH" #添加的路径保存,退出,然后 ...

  4. log4net 使用

    1. 代码中使用配置文件: log4net.Config.DOMConfigurator.Configure(new FileInfo("log4netConfig.xml")); ...

  5. POJ 1664 放苹果(递归或DP)

    一.Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. Input 第一行是测试数据的数目t ...

  6. JAVA 1.5 并发之 ReentrantLock

    在文章里我不打算具体讲Lock的实现,对此有兴趣的请点击这篇博文 http://www.blogjava.net/BucketLi/archive/2010/09/30/333471.html 我是一 ...

  7. oracle--分页过程demo1

    oracle分页过程demo1: --ROWNUM用法 select o.*,rownum rn from (select * from emp) o where rownum<=10; sel ...

  8. python 基础 列表 字符串转换

    1. 字符串转列表 str1 = "hi hello world" print(str1.split(" "))输出:['hi', 'hello', 'worl ...

  9. BluetoothFindFirstRadio 函数

    HBLUETOOTH_RADIO_FIND BluetoothFindFirstRadio( BLUETOOTH_FIND_RADIO_PARAMS* pbtfrp, HANDLE* phRadio ...

  10. python的gzip库使用方法

    解压gzip文件示例: import gzip f = gzip.open('file.txt.gz', 'rb') file_content = f.read() f.close() 创建gzip文 ...