本例使用oracle数据库,使用PL/SQL可视化工具:

--查询员工表数据 (emp为pl/sql自带的表,也可自己新建)
select * from emp;

--创建表空间
create tablespace sp_java1608
datafile 'e:\data\data1.mdf' size 100 M;

--修改表空间

--空间变为200M
alter tablespace sp_java1608
add datafile 'e:\data\data2.mdf' size 100 M;

--删除表空间
drop tablespace sp_java1608 including contents and datafiles;

--创建用户(create user username identified by password)设置默认表空间

create user java1608
identified by java1608
default tablespace sp_java1608;

--删除用户
drop user java1608;

--赋予权限:

--connect :可以登录Oracle,不可以创建实体,不可以创建数据库结构。

--session 创建会话的权限

--DBA:拥有全部特权

--RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构

grant create session to java1608;

grant create connect to Java1608;

grant resource to java1608;

--回收权限
revoke resource from java1608;

--rowID,rownum   都是伪列

--rowid在数据库中具有唯一性,在同一个数据库中是不会重复的,而rownum则可以理解为行号。
--常用于数据库分页
--如下例子:3当前是第几页,2代表每页显示几条数据
select * from
(
select rownum as eid,emp.* from emp
) tmp where eid between (3*2)+1 and (3+1)*2;

--单表查询
--select 列名1,列名2,... from 表名 where 条件

select * from emp;

select ename,sal from emp;

select * from emp where empno = 7369;

--distinct 除去列名重复

select distinct job from emp;

--oracle默认是隐式事务
--插入数据
insert into emp values(1000,'张三','CLERK',7698,to_date('2000/01/01','yyyy/mm/dd'),300.5,100.6,20);

insert into emp values(1001,'lisi','CLERK',7698,to_date('2000/01/01','yyyy/mm/dd'),300.5,100.6,20);

--rollback为撤回行为 与之相对的为commit提交事务

rollback;

--计算列
select ename,sal+comm as totalsal from emp where comm is not null;

select * from emp where ename like '%E%';

select * from emp where ename like '%E_';-- _伟%

--连接运算符

--dual 是为了让查询语法完成而存在的关键字
select 'a' || 'b' from dual;

--聚合函数,数据库通用函数 
select min(sal) from emp;

select job, max(sal) from emp group by job having max(sal)>=2000;

select avg(sal) from emp;

select sum(sal) from emp;

select count(*) from emp;

--创建表
create table t_student
(
sno char(10),
name nvarchar2(6),
sex char(1),
address varchar2(200),
birthday date
);

select * from t_student;

insert into t_student(sex) values('m');

--数据完成整性
--修改表/增加列
alter table t_student
add mphone char(11);

--修改表/修改列
alter table t_student
modify mphone char(12) not null;

--修改表/删除列
alter table t_student
drop column mphone;

--表改名
alter table t_student_1
rename to t_student;

--删除表
drop table t_student;

--实体完整性\域完整性\引用完整性(约束来实现)
--主键约束(非空,唯一,聚焦索引)
alter table t_student
add constraint pk_student_sno primary key (sno);

--非空约束
alter table t_student
modify name varchar2(6) not null;

alter table t_student
modify sex not null;

--默认值约束
alter table t_student
modify sex default 'm';

--唯一性约束
alter table t_student
add constraint un_student_name unique (name);

--检查性约束

--between为前后闭区间
alter table t_student
add constraint ck_student_sex check (sex='m' or sex ='f');

alter table t_student
add constraint ck_student_birthday check (birthday between to_date('1900/01/01','yyyy/mm/dd') and to_date('2016/11/27','yyyy/mm/dd'));

--外键约束

--主键(主表);外键 (从表)

alter table t_score
add constraint fk_score_sno foreign key (sno) references t_student(sno);

create table t_score
(
sid int primary key,
math int not null,
chenese int not null,
sno char(10) 
) ;

select * from t_score;

--删除表所有数据

delete from t_score;

--关联表数据一一对应

insert into t_score values(1,20,30,'s001');
insert into t_score values(2,20,30,'s002');
insert into t_score values(3,20,30,'s003');
insert into t_score values(4,20,30,'s004');

insert into t_student(sno,name,sex,birthday) values('s001','zhang','f',to_date('1900/01/01','YYYY/MM/DD'));
insert into t_student(sno,name,sex,birthday) values('s002','li','m',to_date('1900/01/01','YYYY/MM/DD'));
insert into t_student(sno,name,sex,birthday) values('s003','zhao','f',to_date('1900/01/01','YYYY/MM/DD'));
insert into t_student(sno,name,sex,birthday) values('s004','wang','m',to_date('1900/01/01','YYYY/MM/DD'));

select * from t_student;

delete from t_student;

Oracle数据库操作的更多相关文章

  1. 基于OCILIB的oracle数据库操作总结及自动生成Model和Dao的工具

    基于OCILIB的oracle数据库操作总结 1.       类图 2.       基类BaseOCIDao的设计与实现 BaseOCIDao.h头文件 #pragma once /* ----- ...

  2. C# Oracle数据库操作类实例详解

    本文所述为C#实现的Oracle数据库操作类,可执行超多常用的Oracle数据库操作,包含了基础数据库连接.关闭连接.输出记录集.执行Sql语句,返回带分页功能的dataset .取表里字段的类型和长 ...

  3. (转)C# Oracle数据库操作类

    原文地址:http://www.cnblogs.com/haibing0107/p/6143922.html using System;using System.Data;using System.C ...

  4. C# Oracle数据库操作类

    using System; using System.Data; using System.Collections.Generic; using System.Configuration; using ...

  5. 循序渐进Python3(十二) --2--  web框架之django简单实现oracle数据库操作

    在 Django 中构建 Oracle 数据库支持的 Web 应用程序 了解如何配置 Django 以便与 Oracle 数据库交互,并使用 ORM 进行数据库连接.             产能在软 ...

  6. Java从入门到精通——数据库篇之JAVA中的对Oracle数据库操作

    在Java中对Oracle数据库的操作分为两种:一.查询.二.非查询. 下面是我对其进行总结: 一.查询数据 /** * 根据用户代码查询 * @param userId * @return 如果存在 ...

  7. Oracle数据库操作---入门(一)

    由于工作原因,近期可能会开始多复习一些数据库相关的知识了,想深入了解的,也可以一起复习.学习~ 前期先巩固一下基础操作,后期会一点点的加深向运维方向深入.开篇主要介绍一些数据库理论知识,不感兴趣的可以 ...

  8. Oracle数据库操作类及连接方法

    创建DataBaseAccess引用库下面包括DBConnectionString.cs,DBType.cs ,SysName.cs 三个类 DBConnectionString: using Sys ...

  9. oracle数据库 操作clob对象

    clob类型,但对于这个类型处理起来还是比较麻烦的,varchar2长度为4000bytes,如果varchar2能满足楼主的需求,建议使用varchar2,下面提供了在Java 中读取clob类型的 ...

  10. 二十三、java连接oracle数据库操作:jdbc

    1.jdbc 1) 含义:JDBC是java语言连接数据库,Java Date Base Connectivity2) jdbc的本质:在编程时java程序会去连接不同的数据库,而每个数据库的底层的实 ...

随机推荐

  1. Linux-详解inode节点

    Linux inode节点 inode查看命令 stat 功能:列出文件大小,文件所占的块数,块的大小,主设备号和次设备号,inode number,链接数,访问权限,uid,gid,atime,mt ...

  2. java垃圾回收机制

    1 .垃圾回收机制(GC)垃圾回收就是回收内存中不再使用对象:(1)垃圾回收的步骤:1)查找内存中不再使用的对象:2)释放这些对象所占用的内存:(2)查找内存中不再使用的对象方法:1)引用计数法如果一 ...

  3. MFC 创建多层目录

    创建多层目录 BOOL CTestToolCtr::CreateFolder(CString strNewFolder) { /************************************ ...

  4. HP QR Code 实现二维码

    二维码简单点说就是图片中含有数据信息,可以是url链接,也可能是其他的 首先下载该类,(http://download.csdn.net/detail/cgjcgs/9100365) 然后直接引入该类 ...

  5. Android Studio上NDK/JNI开发环境问题

    基础环境: 操作系统 —— Windows 7 Android Studio —— 1.5.1(android-studio-bundle-141.2456560-windows.exe) NDK — ...

  6. CSS--实现小三角形

    <style> html, body { margin: 0; padding: 0; } /*下面用CSS3分别实现向上.下.左.右的三角形*/ .btn-color{ color: # ...

  7. Windows平台手动卸载Oracle Server【完整+干净】

    使用Oracle自带的Universal Installer卸载存在问题: 不干净,不完全,还有一些注册表残留,会影响到后来的安装. 所以,推荐使用手工卸载Oracle. 1.[win+R]-> ...

  8. Swift 获取屏幕宽高

    let screenh = UIScreen.mainScreen().applicationFrame.size.heightlet screenw = UIScreen.mainScreen(). ...

  9. winform进程、线程、TreeView递归加载

    进程: 一般来说,一个程序就是一个进程,不过也有一个程序需要多个进程支持的情况. 进程所使用的类:Process 所需命名空间:System.Diagnostics; 可以通过进行来开启计算机上现有的 ...

  10. iOS Swift 数组 交换元素的两种方法

    swap(&arr[fromIndexPath.row], &arr[to.row]) (arr[fromIndexPath.row],arr[to.row]) = (arr[to.r ...