Web阶段–Oracle数据库基础知识点
一、数据库
1.定义
是一个数据存储管理的软件,全称rdbms(关系数据库管理系统),简称数据库(db)
2.为什么需要应用数据库?
1.现有文本文件存放数据缺陷
a.程序复杂,效率低
b.无法体现类型,无法做数据检查
c.无法存储大量数据
d.增删改查不方便
2.作用:对数据进行持久化(persistence)操作的。
3.数据库存储数据的结构
Table(表格)
实际负责数据存储的单元,通常也叫做“实体集”
Column(列)
表示业务数据中的一个具体的属性,也成为“字段”
Row(行)
存放了一组相关业务数据,通常叫做“实体”
主键:(Primary key) :
可以唯一标识一组业务数据,非空,唯一
外键(Foreign Key):
体现两张表数据关系的字段,值必须取自另一个表的主键,
可以为null,可以重复
4.数据库的分类
1.关系型数据库(RDB Relationship DataBase)
Oracle|DB2 MySQL|SQLServer|Postgre
2.对象型数据库
Object DataBase 对象
3.NOSQL数据库
Hbase Rdis MongoDB ...
二、Oracle安装(XE版)
1.需要注意的问题
1.oracle安装路径需要不能含有中文或者空格。
2.安装过程中务必记录安装过程中所提示的信息以及自己填写的信息-----端口号/口令
2.卸载
一旦安装失败,不能使用360等第三方卸载工具卸载,要使用本oracle软件重新修复安装或者卸载
3.测试Oracle安装是否成功
1.查看oracle相关服务是否启动
I:WIN+R-->输入services.msc
II:OracleServiceXE:oracle核心服务,必须启动
III:监听器OracleXETNSListener:允许网络上其他计算机通过1521(默认端口)端口来访问数据库服务
2.打开cmd--sqlplus--输入用户名:sys as sysdba----密码:安装过程中自己设置的密码,查看是否能够登陆成功
3.打开数据库主页:用户名为:sys密码:同上 查看是否能够进入数据库操作页面
4.解锁hr用户
I:sqlplus sys as sysdba
II:输入管理员密码
III:解锁hr用户:alter user hr account unlock;
VI:设置hr的密码: alter user hr identified by 密码;
三、Oracle数据库(访问、工作方式,命令区别)
1.Oracle数据库的访问方式
1.命令行方式访问 sqlplus 访问
2.Web页面访问 isqlplus [oracle11g 开始不再支持]
3.第三方工具
PL/SQL developer 工具
2.oracle数据库工作方式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oLs7I3ET-1589167180702)(C:\Users\ASUS\Desktop\160 班级目录\1.png)]
3.命令区别
1)sql命令 : 结构化的查询语言(重点),不可以缩写,不区分大小写,必须以;结尾
2)plsql命令: oracle数据库方言
3)sqlplus命令:工具自身的命令(可以缩写)
start --- sqlplus命令,执行sql文件
desc --- 描述表结构
四、Oracle命令(重点)
1.查询命令
语法:select 字段名,字段名... from 表名;
1.可以显示该表全部信息或者部分信息
案列:请查询员工的编号,姓名,工资和所在部门编号
Select employee_id,last_name,salary,department_id from employees;
案列:请查询员工的详细信息 (通过*表示所有字段)
Select * from employees;
2.可以对查询的字段做数学运算
案列:请查询员工的编号,姓名,以及年薪
Select employee_id,last_name,salary*12 from employees;
注意:
1.数字类型+-*/
2.字符串类型不能做任何数学运算
3.日期类型值可以加减,以“天”为单位
3.可以为结果里的字段定义“别名”
语法:紧跟在列之后空格接着写,如果含有特殊字符或者需要区分大小写,使用双引号
select employee_id id, last_name, salary*12 “anual salary”from employees;
4.字符串连接操作 : ||
案列:请显示员工编号,姓名,以及完整邮箱地址
Select employee_id,last_name,email||’@zparkhr.com.cn’from employees;
注意:如果在sql命令里使用到了字符串字面值或者日期字面值,需要使用单引号
5.distinct 去除查询结果里的重复数据
案列:请显示我们公司里所有的职位 job_id
Select distinct job_id from employees;
2.Order by排序
语法:
select...from....order by 排序条件asc[默认的](升序)/desc降序
案列:请打印员工详细信息,并按照工资排序
Select * from employees order by salary ;
案列:排序条件可以通过字段名,别名,或者下标指定
Select employee_id,last_name,salary*12 from employees order by 3;
案列:多个排序条件
Select * from employees order by salary,department_id;
案列:先按工资升序,工资相同在按部门升序排列
Select * from employees order by salary,department_id desc; 先升再降
案列:先按工资降序,工资相同在按部门升序排列
Select * from employees order by salary desc , department_id desc;
关于null值 : oracle中null被认定为最大值
3.条件查询(where) — 逐行筛选
语法:
select...from....where筛选条件 order by....
1.等值条件判断 = != 【重点】
案列:请查询30部门的员工信息
Select * from employees where department_id=30;
案列:请查询last_name叫做‘King’的员工信息
Select * from employees where last_name = ‘King’ ;
注意:字符串字面值区分大小写
2.逻辑判断 > >= < <= and or ! 【重点】
案列:请查询工资介于5000到10000的员工信息
Select * from employees where salary>=5000 and salary<=10000 ;
案列:查询last_name大于King的last_name
select * from employees where last_name>=’King’;
3.多条件值查询(枚举) --- in not in 【了解】
案列:请查询30,50,70部门的员工信息
复杂的写法:Select * from employees where department_id=30 or department_id=50 or …
优化的写法:Select * from employees where department_id in(30,50,70);
4.区间查询 --- between …and not between…and 【了解】
案列:请查询工资介于5000到10000的员工信息
Select * from employees where salary between 5000 and 10000; 包括边界值
5.关于null值查询 is null is not null
案列:请查询部门编号为null的员工信息
Select * from employees where department_id is null;
4.模糊查询
语法:
通配符:模糊查询时用来占位的符号:%----0到多个字符 _----有且只有一个字符
案列:请查询last_name是以‘K’开头的员工信息