Oracle学习(基础知识)

来源:互联网 发布:尔雅网络课程登录网址 编辑:程序博客网 时间:2024/04/28 13:08

数据库概述

1.数据库管理系统(DBMS)

管理数据库的软件,具有对数据存储,安全,一致性,并发操作,恢复和访问等功能。


2.数据库的发展

<1>手工管理阶段

   应用程序管理数据,数据不保存,不共享,不具有独立性。

<2>文件管理阶段

   文件系统管理数据,数据可长期保存,共享性差,冗余度大,独立性差。

<3>数据库管理阶段

   数据库系统管理数据,数据结构复杂,冗余度小,易扩充,较高独立性,统一数据控制。


3.数据库的特征

数据结构化

实现数据共享

减少数据冗余

数据独立性


4.数据库类型

网状型数据库

层次型数据库

关系型数据库:指一些相关的表和其他数据库对象的集合。


5.关系数据库的数据操作语句

数据库操作语句(DML):SELECT,INSERT,UPDATE,DELETE

数据库定义语句(DDL):CREATE,ALTER,DROP

其他语句:。。。


6.关系数据库的完整性原则

--实体完整性原则

--引用完整性原则

主关键字(primary key):指表中的某一列或多列组合,该列或组合的值唯一标识一行,即主关键字的值必须唯一且不允许为NULL。

外关键字(foreign key):指一个表中的一列或一组列,他们在其他表中作为主键或唯一键而存在。一个表的外键被认为是对另一个表中主键的引用。


Oracle数据库

1.数据库核心文件:

数据文件:存放用户的数据和系统的数据。一个Oracle数据库一般会包含多个数据据文件。重做日志文件:记录了系统改变的日志。主要用于数据库恢复。

控制文件:记录数据库的一些核心配置数据。


2.数据库对象:

表:存放用户数据的对象

约束:设置字段符合一定的规则

视图:虚表,是一个命名查询,用于改变基表数据的显示,简化查询。

索引:构建于表的单字段或者字段组合上,用于加速对表中数据的查询。

序列:产生顺序的不重复的字串,被作为主键约束值得参照

存储过程:用于完成某种特定的功能的PL/SQL程序,存储在数据库中

函数:用于进行复杂计算的PL/SQL函数,返回一个计算结果,存储在数据库中。

触发器:由事件触发而执行的PL/SQL程序用于在特定的时机执行特定的任务,存储在数据库中。

包:一组相关的函数和存储过程的命名集合,存储在数据库中。


3.Oracle内置用户:

SYS:     超级用户   最高权限用户   sys/oracle as SYSDBA

SYSTEM:   管理员                    system/oracle

Scott:    测试连接                  scott/tiger

Hr:    案例使用者                hr/


SQL语言简介

1. SQL称结构化查询语言,是操作和检索关系型数据库的标准语言。


2. SQL语言分类:

DML语句(数据操作语言):Insert / Update / Delete / Merge

DDL语句(数据定义语言): Create / Alter / Drop / Truncate

DCL语句(数据控制语言):Grant/Revoke

事务控制语句:Commit/Rollback/Savepoint


3.SQL语句书写规则:

<1>.不区分大小写

<2>.可以单行来书写,也可以多行来书写。

<3>.关键字不可以缩写,分开及跨行书写

<4>.每条语句需要以分号结尾

<5>.关键字大写其他语法元素小写

<6>.代码适当缩进


4.使用列别名的方法:

<1>.列名  列别名

<2>.列名 AS  列别名

以下三种情况,列别名两侧需要添加双引号(“”):

---列名中包含空格

---列名中要求区分大小写

---列名中包含有特殊字符


5.连接运算符的使用:(||)

SELECT first_name||' '||last_name||'''s phonenumber is '||phone_number "employee Phone number"

FROM employees;


7.DISTINCT关键字的用法:

SELECT DISTINCT department_id  FROM employees;


8.部分SQLPLUS命令介绍:

Alter user scott account unlock;为scott用户解锁

Alter user hr identified by hr account unlock;为hr用户解锁并设置密码为hr

Describe +表名 查看表结构

Alter session set nls_language = “American”;设置oracle环境为美国英语环境

SQL语言查询语句基本句型

1.      selectfrom emp where deptno = 20;

2.      selectemployee_id,last_name,salary  from employeeswhere salary>=12000;

3.      selectlast_name,hire_date from employees where hire_date >=’01-1月-1999’;

特殊比较运算符:

4.      selectemployee_id,last_name,salary  from employees where salarybetween 4200 and 6000;

5.      selectemployee_id,last_name,salary,department_id  from employees where department_id in(10,90,110);

6.      selectemployee_id,last_name,salary from employees where last_namelike ‘S%’;

7.      selectemployee_id,last_name,salary from employees where last_namelike ‘_b%’;

8.      SELECT employee_id, last_name, job_id, salaryFROMemployeesWHERE job_id LIKE  'FI\_%'  ESCAPE  '\';(查询JOB_ID以“FI_”开头的雇员信息,使用ESCAPE标识符来查找带特殊符号的字符号)

9.      Select employee_id,last_name,salary,department_idfrom employees where department_id is null;

逻辑运算符:

10.  selectemployee_id,last_name,salary from employees where salary>=4200and salary<=6000;

11.  SELECT last_name, salary, department_idFROM employeesWHEREsalary>10000 ANDdepartment_id in (60,90);

12.   SELECT last_name,salary, department_id FROM employeesWHERE salary>10000OR department_id in (60,90);

13. SELECT last_name, job_id, salary FROMemployees WHEREjob_id NOT IN('IT_PROG', 'ST_CLERK', 'FI_ACCOUNT');

 运算符优先级

14. select last_name,job_id,salary,department_id fromemployees where job_id = ‘FI_ACCOUNT’ OR job_id = ‘AD_VP’ AND SALARY>16000;(查找职位是FI_ACCOUNT或工资超过16000的职位是AD_VP的员工)

15.SELECT last_name, job_id,salary, department_id FROM employees WHERE (job_id= 'FI_ACCOUNT' ORjob_id= 'AD_VP') AND salary >16000;(查找工作超过16000并且职位是FI_ACCOUNT或是AD_VP的员工)

ORDER BY的使用

15.  Select last_name,job_id,salary,department_idfrom employees order by department_id DESC;(按照员工部门降序排列。)

16.  Select last_name,job_id,salary*12annual,department_id from employees order by annual;(按列别名排序)

17.  Selectlast_name,job_id,salary,department_id from employees order by job_id,salary desc;(多列排序)

18.  Select last_name,job_id,hire_date fromemployees order by salary;(order by 子句可以出现在select子句中没有出现过的列)

19.SELECT last_name, job_id,salary, department_id  FROMemployees ORDER BY 2, 3 desc;( ORDER BY子句后的列名,可以用数字来代替。这个数字是SELECT语句后列的顺序号。)


---oracle中不等于用“<>”表示

---字符及日期类型需要在两端用单引号

---字符类型大小写敏感

---日期类型格式敏感,默认格式“DD-MON-RR”


---Oracle里面通配符有%和_,其中%可以代替任意长度字符(包括长度为零),_可以代替一个字符


---数字升序排列小值在前,大值在后。即按照数字大小顺序由小到大排列。

 ---日期升序排列相对较早的日期在前,较晚的日期在后。例如:’01-SEP-06’在’01-SEP-07’前。

---字符升序排列按照字母由小到大的顺序排列。即由A-Z排列;中文升序按照字典顺序排列。

---空值在升序排列中排在最后,在降序排列中排在最开始。

 


 

原创粉丝点击