C++学习之ORACLE①
目录1.ORACLE数据库简介
2..ORACLE数据库安装
3..ORACLE体系布局
4..ORACLE根本概念
5..ORACLE根本元素
6..ORACLE数据库启动和关闭
7.SQLPLUS登录ORACLE数据库相关操作
8.SQLPLUS的根本操作
9.oracle中上课利用的方案
10.SQL语言分类
11.SQL中的select语句语法和注意事项
12.oracle中查询相关示例
13.课程复习
14.别名和distinct去重
15.算术运算和NULL
16.SQL语句中where中日期格式
17.SQL语句中比较运算符
18.SQL语句中模糊查询
19.SQL语句中逻辑运算
20.SQL语句排序
1.ORACLE数据库简介
https://i-blog.csdnimg.cn/direct/1b7d5d8b44134b7abc88785191413a55.png
2..ORACLE数据库安装
Oracle(甲骨文)公司建立于1977年,总部位于美国加州,是天下领先的信息管理软件开发商,因其复杂的关系数据库产品而著名。Oracle数据库产品为财富排行榜上的前1000家公司所接纳,许多大型网站也选用了Oracle系统,所以Oracle是在数据库领域一直处于领先地位的产品。
Oracle数据库是Oracle公司的核心产品,Oracle数据库是一个适合于大中型企业的数据库管理系统。在全部的数据库管理系统中(比如:微软的SQL Server,IBM的DB2等),Oracle的重要用户涉及面非常广,包括:银行、电信、移动通信、航空、保险、金融、电子商务和跨国公司等。
Oracle公司建立以来,从最初的数据库版本到Oracle7、Oracle8i、Oracle9i,Oracle10g到Oracle11g,Oracle12c 固然每一个版本之间的操作都存在一定的差别,但是Oracle对数据的操作根本上都遵循SQL标准。因此对Oracle开发来说各版本之间的差别不大。
3..ORACLE体系布局
https://i-blog.csdnimg.cn/direct/474188975ea34b7eaec434d17574fecb.png
4..ORACLE根本概念
表空间(users)和数据文件
逻辑概念:表空间由多个数据文件组成。位于实例上,在内存中。
物理概念:数据文件,位于硬盘之上。(C:\app\Administrator\oradata\orcl目录内后缀为.DBF的文件)一个表空间可以包罗一个或者是多个数据文件。1:n(表空间:数据文件)
/home/oracle/app/oradata/orcl
段、区、块
5..ORACLE根本元素
https://i-blog.csdnimg.cn/direct/1df7743d39d14e1ab89ed14e66834932.png
6..ORACLE数据库启动和关闭
scott用户暗码: 11
sys用户的暗码: sys
[*]sqlplus ↙ 用户名 ↙ 暗码 ↙
[*]sqlplus 用户名/暗码↙
[*]sqlplus 用户名/暗码@//ip/实例名 ↙
远程登录oracle服务器方式,如(sqlplus scott/11@//192.168.1.100/orcl)
[*]sqlplus 用户名/暗码@实例别名 ↙(实例别名设置参考附件2:Oracle客户端实例别名设置.docx)
[*]以管理员身份登岸:sqlplus / as sysdba
在Oracle数据库安装时指定了登岸暗码
[*]解锁用户:SQL> alter user scott account unlock
管理员身份登岸,给scott用户解锁。用户默认锁定
[*]修改用户暗码:SQL> alter user scott identified by 新暗码
管理员身份登岸,给scott用户修改暗码
[*]查看当前语言情况:SQL> select userenv('language') from dual
Scott hr sys
7.SQLPLUS登录ORACLE数据库相关操作
[*]
[*]
[*]Linux/Unix上启动数据库服务
$ sqlplus sys/sys as sysdba
Sqlplus: 是一个客户端下令
Sys是超级管理员的用户名
Sys是超级管理员的暗码
As sysdba 表示利用系统管理员的方式登录
关闭数据库:
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
关闭Oracle监听服务(先退出sqlplus)
SQL> quit;
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
$ lsnrctl stop
8.SQLPLUS的根本操作
启动Oracle数据库
SQL> startup
ORACLE instance started.
Total System Global Area 830930944 bytes
Fixed Size 2217912 bytes
Variable Size 616564808 bytes
Database Buffers 205520896 bytes
Redo Buffers 6627328 bytes
Database mounted.
Database opened.
SQL>
启动监听服务:
$ lsnrctl start
启动和关闭利用oracle用户
9.oracle中上课利用的方案
Sqlplus利用管理员登录后
[*]startup
启动数据库实例
[*]shutdown
关闭数据库实例
如果要远程毗连到数据库还得,启动监听服务
在下令行(不是sqlplus中)
[*]lsnrctl start
[*]lsnrctl status
[*]lsnrctl stop
10.SQL语言分类
https://i-blog.csdnimg.cn/direct/7037cfaddfd14da3bd98c51b888cc472.png
11.SQL中的select语句语法和注意事项
其语法格式为:
SELECT*|{ column |expression [alias],...}
FROMtable [TableAlias1 ] [,table2 [TableAlias2 ],…]
[WHERE expression]
[GROUP BY column1[,column2,…]]
[HAVING expression]
[ORDER BY column1[,column2,…]]
语法形貌阐明:
[*]花括号{}括起的部分为必填部分
[*]中括号[]括起来的部分为可选部分
[*]多种形式的语法用竖线|来表示并列单选,或者的意思
12.oracle中查询相关示例
在scott方案中完成以下任务:
[*]查询全部员工的全部纪录
SQL> select * from emp;
SQL> select empno, ename, job, mgr, hiredate, sal, comm, deptno from emp;
※SQL优化: 尽量利用列名代替 * ,由于利用*会先转成列名,这期间斲丧了一点性能 (Oracle 9i之前不同, 之后一样)
[*]查询员工号、姓名、薪水
SQL> select empno, ename, sal from emp;
增长查询年薪:
SQL> select empno, ename, sal, sal * 12
from emp;
“/”实行上一条成功实行的SQL语句。
[*]修改上一条SQL语句:
[*]用c下令来修改(c 即 change)
默认,光标闪灼位置指向上一条SQL语句的第一行。输入 2 则定位到第二行
c /错误关键字/正确关键字 ↙
利用“/”来实行修改过的SQL语句
比方:错误输入了:
SQL> select empno, ename, sal, sal * 12
form emp; (“from”书写错误,该错误位于整条SQL语句的第二行)
13.课程复习
[*]利用ed下令来修改 edit
ed ↙弹出系统默认的文本编辑器,(如记事本)
修改、生存、退出、实行“/”。
设置默认的文编编辑器(gedit)
SQL> define_EDITOR=gedit
别名:as
SQL> select empno as “员工号”, ename “姓名”, sal 月薪, sal * 12 年薪
from emp;
关键字as写与不写没有区别; “”有与没有取决于别名中是否有空格或者关键字。
14.别名和distinct去重
“DISTINCT” 关键字。去除效果集重复的行
SQL> select deptno from emp; → SQL> select DISTINCT deptno from emp;
SQL> select job from emp; → SQL> select distinct job from emp;
SQL> select distinct deptno, job from emp; 会发现没有行减少,由于deptno不重复。
因此得出,DISTINCT的作用范围: distinct作用于反面全部列。
15.算术运算和NULL
[*]乘除的优先级高于加减
[*]优先级雷同时,按照从左至右运算
[*]可以利用括号改变优先级
查询: 员工号、姓名、月薪、年薪、奖金、年收入。
SQL> select deptno, ename, sal, sal * 12, comm, comm+sal*12 from emp;
效果不正确。没有奖金的员工,年收入不正确。
需注意,在程序开发过程中,数据是核心。程序再正确也没有用,必须保证数据不能丢,且正确。对于上面的效果,有对有错的情况是最伤害的。
16.SQL语句中where中日期格式
☆NULL值题目:
1. 包罗NULL值的表达式都为空。
2. NULL != NULL
任何算数运算遇到NULL值都变成NULL,任何逻辑运算遇到NULL值都变成假
解决:滤空函数:nvl(a, b) 如果a为NULL, 函数返回b。所以:sal * 12 + nvl(comm, 0) 年收入。
NULL != NULL举例:
查询奖金为NULL的员工信息:
SQL> select * from emp where comm = NULL; (SQL中倒霉用==)
在SQL中,判断一值是否等于另外一值不用“=” 和“!=”而利用is和is not。
SQL> select * from emp where comm is NULL; (is not)
17.SQL语句中比较运算符
查询10号部门的员工信息:
SQL> select * from emp where deptno=10
查询”KING”的信息:
SQL> select * from emp where ename= 'KiNg ' 未选定行。
注意:字符串大小写敏感。
SQL> select * from emp where ENAME='KING'; 则正确
查询入职日期为1981年11月17日的员工:
SQL> select * from emp where hiredate= '1981-11-17 ' 可以吗?
参看:
SQL> select sysdate from dual 查看系统当前的日期 (注意其格式)。
SQL> select * from emp where hiredate= '17-11月-81 '
获取系统当前日期格式:
SQL> select * from v$nls_parameters (数据字典,雷同于tab)
设置列宽度:
18.SQL语句中模糊查询
改回系统默认格式:SQL> alter session set NLS_DATE_FORMAT = 'DD-MON-RR';
[*]字符和日期要包罗在单引号中。
[*]字符大小写敏感,日期格式敏感。
[*]默认的日期格式是 DD-MON-RR
19.SQL语句中逻辑运算
AND 逻辑与
OR 逻辑或
NOT 逻辑非
如果…..where 表达式1 and 表达式2;
…..where 表达式2 and 表达式1;
这两句SQL语句功能一样吗?效率一样吗?
※SQL优化:
SQL在解析where的时间,是从右至左解析的。
所以: and时应该将易假的值放在右侧
or时应该将易真的值放在右侧
20.SQL语句排序
[*]利用 ORDER BY 子句排序
[*]ASC(ascend): 升序。默认接纳升序方式。
[*]DESC(descend): 降序
[*]ORDER BY 子句在SELECT语句的末端。
SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hiredate ;
查询员工信息,按月薪排序:
SQL> select * from emp order by sal 末端加desc (descending)降序
order by 之后可以跟那些内容呢?
order by + 列名,表达式,别名,序号。 注意:语法要求order by 子句应放在select的末端。
SQL> select ename, sal, sal*12 from emp order by sal * 12 desc
序号:默认:ename→1, sal→2,sal*12→3
SQL> select ename, sal, sal*12, from emp order by 2 desc 按月薪进行排序。
如果:SQL> select * from emp order by deptno, sal
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]