`
mrgood
  • 浏览: 912 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Oracle数据库的初学者适用资料

 
阅读更多

 

    哥也是Oracle数据库的初学者,总结了一份Oracle数据库的的课堂笔记,共享给通道中者。

   一.数据库的定义(DataBase:DB)
1.历史
2.数据库产品
Oracle, DB2(IBM), Sybase(Sybase)
sql server(微软), mysql(Oracle)
access
3.数据库是存放数据/访问数据/维护数据的存储仓库.
4.数据库软件由两部分组成:数据存储的仓库/管理系统(DBMS:Database Managment System)
5.数据库中数据的主要载体: 表(Table)
二维表:横向:行,记录(record)
       纵向:域,列(column)


二.数据库的简单操作
1.连接数据库的方式
1)远程登录到数据库服务器:
C:>telnet 192.168.0.26
   openlab/open123


2)使用数据库的工具sqlplus连接到数据库
$ sqlplus openlab/open123
sqlplus:数据库的客户端命令行工具.
        用户和数据库的沟通工具.

 

2.创建一个用户表,存放考生信息.
SQL> create table users_ninglj(
     id number,
     password char(4),
     name char(20),
     phone char(11),
     email char(30)
     );

1)关键字:create table
2)表名:users_ninglj自定义,不超过30个字符
3)列名:id/password/name/phone/email自定义
4)数据类型:number:数字,char:字符串
5)以分号结束
6)每个列之间用逗号隔开,最后一个列没有逗号.

SQL:Structured Query Language
    结构化查询语言
    和数据库沟通的途径

 

3.增加数据到表users_ninglj中.
insert into users_ninglj
values(1001, '1234', 'liucs',
'13600000000','liucs@tarena.com.cn')
;

insert into users_ninglj
values(1002, '1234', 'zhangwuji',
'13700000000','zwj@tarena.com.cn')
;

insert into users_ninglj
values(1003, '1234', 'zhaomin',
'13800000000','zm@tarena.com.cn')
;

insert into users_ninglj
values(1004, '1234', 'tom',
'13900000000','tom@sina.com')
;

4.查询刚刚增加的数据:
select * from users_ninglj;

5.调整格式:
SQL指令,只在sqlplus工具中有用
SQL>column 列名 format 格式
    column name format a10 --10位字符
    column id format 9999 --四位数字
    col id for 9999 --简写形式

而SQL语句(create / insert / select)
在不同数据库中是通用的.


小结:语句的种类:
1.create: 创建语句
2.insert into 表名 values(列数据);
  插入语句(新增语句)
3.select * from 表名; 查询语句

查询是否有1001/1234的用户:
select name from users_ninglj
where id = 1001 and password = '1234';

常用的数据类型:
数字类型: number
          number(4): 最多4位数字
          number(7,2):共7为,2位小数
                      99999.99

字符类型: char : 定长字符串
          char(10)占据10个长度的空间
          不管数据多长,都占据10个长度
          varchar :变长字符串
          varchar(10):根据字符数据的                实际长度决定空间大小.
          varchar2:变长字符串
             oracle独有的
         
create table myuser(
id number(4),
name char(10),
email varchar(20)
);
insert into myuser
values(1, 'tom', 'tom@sina.com');

 

日期:date 7位日期数据

java取系统时间:
  Calendar.getInstance();

 

oracle取系统时间:
  select sysdate from dual;
默认格式: 08-OCT-11
          DD-MON-RR , 不是YY
 
当前年: 11年(2011年)  
               YY     RR 
        08年  2008   2008
        95年  2095   1995

当前年: 95年(1995年)
        01年  1901   2001
        98年  1998   1998

 

6.创建数据结构,新增数据,为下一步的学习准备数据资料.
CREATE TABLE DEPT_ning (DEPTNO NUMBER(2) PRIMARY KEY,
DNAME VARCHAR2(14) ,LOC VARCHAR2(13) ) ;
INSERT INTO DEPT_ning VALUES(10,'研发部','北京');
INSERT INTO DEPARTMENT_ning VALUES (20,'财务部','上海');
INSERT INTO DEPT_ning VALUES(30,'销售部','广州');
INSERT INTO DEPT_ning VALUES(40,'后勤部','天津');

 

--删除表结构
drop table emp_ning;


--创建表结构
create table emp_ning(
id number(4),
name varchar2(20),
job varchar2(20),
salary number(7,2),
bonus number(7,2),
hiredate date,
mgr number(4),
deptno number(2)
);

insert into emp_ning values(1001, '张无忌', 'Manager', 10000, 2000, '12-MAR-10', 1005, 10);
insert into emp_ning values(1002, '刘苍松', 'Analyst', 8000, 1000,  '01-APR-11', 1001, 10);
insert into emp_ning values(1003, '李翊', 'Analyst', 9000, 1000,  '11-APR-10', 1001, 10);
insert into emp_ning values(1004, '郭芙蓉', 'Programmer', 5000, null, '01-JAN-11', 1001, 10);
insert into emp_ning values(1005, '张三丰', 'President', 15000, null, '15-MAY-08', null, 20);
insert into emp_ning values(1006, '燕小六','Manager', 5000, 400, '01-FEB-09', 1005, 20);
insert into emp_ning values(1007, '陆无双','clerk', 3000, 500, '01-FEB-09', 1006, 20);
insert into emp_ning values(1008, '黄蓉','Manager', 5000, 500, '1-MAY-09', 1005, 30);
insert into emp_ning values(1009, '韦小宝','salesman', 4000, null, '20-FEB-09', 1008, 30);
insert into emp_ning values(1010, '郭靖','salesman', 4500, 500, '10-MAY-09', 1008, 30);


--奖金写错了,应该是800, 写成80
--更新数据的语句:
update emp_ning
set bonus = 800 where id = 1008;

 

--数字数据直接写,不用单引号
--字符和日期,用单引号.

 

--查询表的全部数据:
select * from emp_ning;

SQL>set linesize 300
SQL>set pagesize 100
SQL>col name for a15
SQL>col id for 9999

 

--复制表:
--已有表结构,只复制数据(emp_my表已存在,结构和emp_you相同)
SQL>insert into emp_my
    select * from emp_you;


--复制表结构和数据(emp_myother表不存在)
SQL>create table emp_myother
    as
    select * from emp_you;

 

四.查询语句


1.计算员工的年薪?
  select * from emp_ning;
  select name, salary from emp_ning;
  select name, salary, salary * 12
  from emp_ning;

 

2.计算员工的月收入是多少?
select name, salary, bonus,
salary +

bonus sal_month
from emp_ning;

select name, salary, bonus,
salary + nvl(bonus,0) sal_month
from emp_ning;

nvl(bonus,0)
  ==> (bonus == null) ? 0 : bonus


使用nvl函数,更正空值计算出现的逻辑错误.

--凡是和空值计算的算术表达式,结果为空.
--数据库中任何数据类型都可以取null值
表示这个数据暂时没有.

 

insert into emp_ning values(1011, '余则成', null, null, null, null, null, 10);

java:只有引用类型数据,可以取null值
String name = null; //ok
List list = null;   //ok
int i = null;       //error
boolean f = null;   //error

 

3.员工都分布在哪些部门?
select deptno from emp_ning;

--去除重复记录
select distinct deptno from emp_ning;

员工表中有多少种职位?


select job from emp_ning;--不去重
select distinct job from emp_ning;--去重

 

4.条件查询.
哪些员工的薪水>1w?
select name, salary from emp_ning
where salary > 10000;

 

--哪些员工的薪水在5000-10000之间
--闭区间:[5000, 10000]
select name, salary from emp_ning
where salary <= 10000
and salary >= 5000;
--可以简写为:
select name, salary from emp_ning
where salary between 5000 and 10000;

 

5.把员工按照薪水由低到高排序
--正序排序
select name, salary
from emp_ning
order by salary;

 

--倒序排序(由高到低) desc = descend
select name, salary
from emp_ning
order by salary desc;

空值被视作最大.

 

 

--按员工的入职时间排序,入职越早排在前面
select name, hiredate
from emp_ning
order by hiredate;

 

6.查询部门10或者部门20的员工
select *
from emp_ning
where deptno = 10
or deptno = 20
or deptno = 30
or deptno = 40
or deptno = 50;
--in:在列表中.
select * from emp_ning
where deptno in (10,20,30,40,50);

 

列出职位是Analyst或者Programmer的员工
select * from emp_ning
where job = 'Analyst'
or job = 'Programmer';
--或者写成:
select * from emp_ning
where job in ('Analyst','Programmer');

--SQL语句的大小写不敏感,比如:
 select和SELECT一样
--数据大小写敏感.比如:
 Analyst和analyst不一样

 

--查询所有的分析员:
select name, job from emp_ning
where lower(job) = 'analyst';

 

等价于:
select name, job from emp_ning
where upper(job) = 'ANALYST';

lower(job): job='AnaLyst'
   ==> job = 'analyst

select * from emp_ning
where
lower(job) in('analyst','programmer');

 

7.哪些员工的职位中包含'sales'?
--模糊查询
 select name, job
 from emp_ning
 where job like '%sales%';

 

 

分享到:
评论

相关推荐

    Oracle数据库关键字大全整理

    适用人群:本资源包适用于Oracle数据库初学者、正在寻求深化理解Oracle开发技术的开发者,以及需要快速上手Oracle项目开发的IT从业者。 适合人群 1、Oracle数据库初学者:通过本资源,你可以快速建立起Oracle数据库...

    易语言oracle数据库连接模块源码

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,适用于处理大量数据和并发事务。 Oracle数据库连接模块的核心在于如何建立和管理与Oracle服务器的通信。在这个模块中,通常会用到Oracle的数据访问接口,如...

    oracle数据库简单介绍

    6. **标签“Oracle”**:这个标签表明整个压缩包文件的内容都是关于Oracle数据库的,可能涵盖其基础知识、安装与卸载教程,以及可能的实践练习,适用于初学者或希望深入学习Oracle数据库的人员。 综合以上内容,...

    oracle数据库资料

    这份"Oracle数据库资料"包含的资源可能是为初学者和有经验的DBA(数据库管理员)提供的一系列学习材料,旨在帮助用户从基础知识到深入技术进行系统性的学习。 Oracle数据库的基础知识包括以下几个方面: 1. 数据库...

    oracle数据库11G初学者指南 英文pdf格式电子书

    ### Oracle数据库11G初学者指南 #### 一、书籍简介 《Oracle数据库11G:初学者指南》是一本由Ian Abramson、Michael Abbey、Michael J. Corey和Michelle Malcher共同编著的专业教程,旨在为新手提供Oracle数据库11G...

    Oracle数据库安装组图

    这对于学习和使用Oracle数据库至关重要,无论是初学者还是经验丰富的DBA,都能从中获益。 "安装图片"可能是安装过程中的截图,通过这些图片,您可以直观地了解每个安装步骤的界面和选项,对于那些初次接触Oracle...

    oracle数据库入门书

    综上所述,Oracle数据库是一个功能强大的数据库管理系统,适用于处理大规模的企业级数据。通过学习Oracle,开发者可以掌握数据库的设计、开发、管理和优化等全方位的知识和技能,这对于职业生涯的发展具有重要意义。

    c# 连接oracle数据库和对数据库的基本操作

    在C#中与Oracle数据库进行交互是常见的任务,尤其对于初学者来说,了解这个过程是必要的。本篇文章将深入探讨如何使用C#连接Oracle数据库以及执行基本的数据操作。由于描述中提到这适用于初学者,我们将从基础知识...

    Oracle数据库资料

    ### Oracle数据库基础知识与...通过以上详细介绍,初学者可以更全面地了解Oracle数据库的基础知识,并掌握如何安装和使用Oracle数据库进行简单的数据操作。这对于进一步深入学习和实践Oracle数据库技术具有重要意义。

    Oracle数据库的安装

    Oracle数据库的安装是一个重要的环节,尤其对于初学者来说,它为后续的学习和实践奠定了基础。在Windows操作系统上安装Oracle数据库,首先要访问Oracle官方网站http://www.oracle.com/,找到Downloads区域来下载适合...

    oracle数据库速学

    "Oracle数据库速学"涵盖了从基础操作到实际工作中常见的问题,同时也包括了一些面试中可能遇到的题目,对于初学者来说是一份很好的学习资源。下面我们将详细讨论Oracle数据库的关键知识点。 一、Oracle数据库基础 1...

    远程访问Oracle数据库

    ### 远程访问Oracle数据库 在信息技术领域,数据库管理与数据访问是至关...这些步骤不仅适用于初学者,对于有经验的开发者来说也是很好的参考指南。希望本文能帮助大家更好地理解和掌握Oracle数据库的远程访问技术。

    Oracle数据库安装配置完全实战手册

    无论你是初学者还是经验丰富的数据库管理员,这份手册都能提供有价值的信息,帮助你更好地理解和掌握Oracle数据库的使用技巧。通过遵循手册中的步骤,你可以快速建立起一个稳定、高效的数据库环境,满足企业级应用的...

    Oracle练习题初学者适用

    这份"Oracle练习题初学者适用"的压缩包提供了一系列的DOC文件,旨在帮助初学者系统地学习和巩固Oracle的相关知识。 首先,我们可以从“Oracle习题”这个文件名推测,这些文档可能包含了各种类型的题目,如选择题、...

    Oracle数据库学习文档(详细)

    Oracle数据库的学习是一个复杂而深入的过程,这篇文档作为初学者的入门指南,提供了一个全面的学习框架,帮助初学者逐步掌握Oracle数据库的开发和管理技能。随着实际操作的深入和实践经验的积累,学习者可以逐渐掌握...

    plsql 连接oracle数据库工具

    1. SQL Developer:Oracle官方提供的免费开源工具,功能全面,适合初学者和专业开发者。 2. Toad:Quest Software的产品,专业且强大,特别适合数据库管理员和高级开发人员。 3. DBeaver:一个跨平台的通用数据库...

    Oracle数据库入门学习课件ppt

    这份“Oracle数据库入门学习课件ppt”提供了全面的基础知识,适合初学者系统学习。以下是根据提供的PPT文件名称和描述整理出的核心知识点: 1. **数据库基础知识**: - 数据库的概念:存储和管理数据的系统。 - ...

    Oracle公司内部数据库培训资料

    Oracle公司内部数据库培训资料是一份...无论你是初学者还是有经验的DBA,这份资料都将帮助你深入理解和掌握Oracle数据库系统的精髓。通过细致地研读和实践,你将能够有效地管理和维护Oracle数据库,提升你的专业技能。

Global site tag (gtag.js) - Google Analytics