orcale开篇
1.数据库系统和数据库的管理系统
数据库系统=数据库的管理系统+oper操作员+硬件
2.Oracle的版本
8i/ 9i 10g/11g 12c(cloud)
3.实例和数据库的关系
实例:数据库服务启动后,在内存中的单元。
数据库:硬盘上的文件,物理介质硬盘
4.数据库的核心部件
PGA: (提交给SGA)
SGA: (属于实例)
DBWR(数据的读取和写入)
LGWR(日志文件的读取写入)
SMON (清理临时表空间)
PMON (异常中断之后的清理,处理和释放资源)
CKPT (检查点,保证数据库的一致性,这是指将脏数据写入到硬盘,保证内存和硬盘上的数据是一样的;)
5.监听文件的位置
app----->Happy(用户名)----->product--->NETWORK----》ADMIN -----》listener.ora
6.服务的开启顺序
先监听,再数据库服务
@echo
net start OracleOraDb11g_home1TNSListener
net start OracleServiceORCL
@pause
7.数据库用户
sys:超级管理员 管理普通的管理员和普通用户
System:普通管理员
scott:没有解锁
8.数据类型
字符串 Nvarchar2
数字 nubmer
日期和时间:Date
大二进制类型:BLOB
大文本类型 :CLOB 类型SQL SErver中的Text或者是nvarchar(max)
9.Oracle中是根据用户来隔离表的
默认情况下,当前登录的用户只能看到自己创建的表
--创建一个用户
create user happyy2165 identified by happyy2165
--权限
--身份:新员工 100
grant connect to happyy2165
grant RESOURCE to happyy2165
--建立一张数据表
create table userinfo
(id number primary key not null)
##如何查看该用户管理着的所有表
select * from all_tables where owner='HAPPYY2165'
10.伪列 rowid rownum
11.如何查询表中自然排序的第3条记录?
select * from ( select id,rowid,rownum rn from userinfo ) userinfo where rn=3
排名第五的员工信息:
select * from ( select temp2.* ,rownum rn from (
select ename,sal from emp order by sasl desc )
temp2 )
TEMP where rn=5
检索5到10的记录:
select * from (select temp2.*,rownum rn from (
select ename ,sal from emp order by sal desc )
temp2 where rownum<=10 )
TEMP where rn>5
1.用户和模式是等价的
2.创建了一个用户
create table 用户名 identified by 密码
grant connect,resource to 用户名
用户名登陆后。创建表
Create table student
(stuno number primary key not null)
创建一张表,必须隶属于一个表空间,如果不指定隶属于哪个表空间,他默认隶属于users表空间
Create table student
(stuno number primary key not null)TABLESPACE example
STORAGE (INITIAL 8M);
3.表空间
逻辑概念
一个database 下有1个或者 N个表空间
1个表空间有1个或者多个数据文件
如果创建了一张表,不指定表空间,默认使用users表空间
rownum注意事项:
rownum=1可以 ,rownum<N,大于 m没有结果集。如何规避,使用子查询形成别名列。然后再外层查询该列。
rownum=3
5. 用户A(Scott)去访问用户B(happyy2165) 里面的student包
Oracle三大系统角色
connect
resource
dba
方案一:直接授权法
1.用happyy2165登录,之后,授权
grant select on HAPPYY2165.STUDENT to scott
2.用scott登录,用如下代码去访问Student表
select * from HAPPYY2165.student
方式二:通过角色去控制
1.自定义角色 role_testy2165 create role role_testy2165
2.将查询表的权限和角色绑定
GRANT select on HAPPYY2165.STUDENT to role_testy2165
3.给用户分配角色
grant role_testy2165 to SCOTT
revoke select on HAPPYY2165.student from SCOTT 回收权限
6.解锁用户
alter user hr account unlock
7. 删除stuName、stuAge列重复的行(保留一行) 保留学号最大的
(
SELECT "MAX"("stuno") FROM STUDENT GROUP BY "stuname","stuage"
)
算术 +/-
连接|| 连接两个字符串
比较
逻辑 And or
集合
union 合并记录
连接查询:合并列
union all
intersect
select 1+1 from dual
--|| 明天放假但是作业很多
select '明天放假'||'但是作业很多' from dual
select '您的运算结果是'||5 from dual
SELECT deptno
FROM dept
INTERSECT --交集(共有内容)
SELECT DISTINCT deptno FROM emp
SELECT deptno
FROM dept
minus --减集(第一个查询减去第二个后的剩余记录)
SELECT DISTINCT deptno FROM emp
9.SQL函数
单行函数
SELECT LOWER('MR. SCOTT MCMILLAN') "Lowercase"
FROM DUAL;
SELECT UPPER('last_name')
FROM dual;
SELECT initcap('username')
FROM dual;
SELECT CONCAT('begin', 'last') "Job"
FROM dual
SELECT SUBSTR('ABCDEFG',3,4) "Substring"
FROM DUAL;
Sql函数包括:(单行函数)(分组函数)(分析函数)
单行函数:
对于从表中查询出来的每条记录只显示一个数据。单行函数可以出现在select子句中,where子句中。单行函数包括:(字符函数)(数字函数)(日期函数)(转换函数)(其他函数)。
日期函数:对日期进行计算 显示日期类型或者数字类型。
SYSDATE 当前日期 eg:select sysdate from dual;
current_date 返回当前会话时区中的当前日期
current_timestamp 以timestamp with time zone数据类型返回当前会话时区中的当前日期
dbtimezone 返回时区
ADD_MONTHS 加上月数 eg:select add_months(sysdate,1) 下个月, add_months(sysdate,123) "123个月后" from dual
MONTHS_BETWEEN 返回两个日期之间月数 eg:两个日期相差的月数 select (sysdate-hiredate)/30 方式一, months_between(sysdate,hiredate) 方式二 from emp;
--add_months:在指定日期上加上若干个月
LAST_DAY 返回月的最后一天 eg:select last_day(sysdate) from dual;
ROUND 将日期进行四舍五入 eg:select round(sysdate,'MONTH') 月,round(sysdate,'YEAR') from dual;
NEXT_DAY 指定下一个星期几的日期 eg:select next_day(sysdate,'星期-') from dual;
TRUNC 日期的格式转换 eg:select trunc(sysdate,'MONTH') 月,trunc(sysdate,'YEAR') from dual;
EXTRACT 提起日期中指定的部分
字符函数:
Initcap(char) 大写首字母。eg:select INITCAP('hello world') from dual;
Lower(char) 将大写字符变成小写。eg:select lower('Hello World') 转小写, upper('Hello World') 转大写 from dual;
数字函数
Mod(m,n) m/n 的余数。eg:select mod(11,10) from dual;
Power(m,n) m的n次方。eg:select power(2,2),power(-1,2),power(1,0) from dual; POWER(2,2) POWER(-1,2) POWER(1,0)
Round(m,n) m是小数,n是取的小数位数。四舍五入 eg:select round(123.5),round(123.46,1),round(126.45,-1) from dual;
ROUND(123.5) ROUND(123.46,1) ROUND(126.45,-1)
Trunc(m,n) m是小数,n是取的小数位数。不四舍五入 select trunc(999.99),trunc(999.99,1),trunc(999.99,-2) from dual;
TRUNC(999.99) TRUNC(999.99,1) TRUNC(999.99,-2)
转换函数
To_char 转化字符。eg: SELECT TO_CHAR( 'AABBCC' ) FROM dual;
To_date 转换日期。eg:SELECT TO_DATE( 2454336 , 'J' ) FROM dual; SELECT TO_DATE( '2007-8-23 23:25:00' , 'yyyy-mm-dd hh24:mi:ss' ) FROM dual;
To_number 转换数字 eg: SELECT TO_NUMBER('-100.00', '9G999D99') FROM dual;
其他函数
NVL(表达式1,表达式2)
如果表达式1为null,返回表达式2,否则返回表达式1;
如果表达式类型不一致,Oracle将表达式2转换为表达式1的类型
NVL2(表达式1,表达式2,表达式3)
如果表达式1为空,返回表达式3的值,否则返回表达式2的值
NULLIF(表达式1,表达式2)
如果两表达式相等,返回空值,否则返回表达式1
分组函数
Avg ()取平均数。eg:select sum(sal)/count(*) 方式一, avg(sal) 方式二 from emp;
Count ()返回查询出来的数据。select count(*) from emp;
Sum ()取和 eg:select sum(sal)/count(*) 方式一, avg(sal) 方式二 from emp; 求平均
Max ()取最大值 eg:--max和min:求最高工资和最低工资 select max(sal) 最高工资,min(sal) 最低工资 from emp;
Min ()取最小值 eg:--max和min:求最高工资和最低工资 select max(sal) 最高工资,min(sal) 最低工资 from emp;
orcale开篇的更多相关文章
- 一年之计在于春,2015开篇:PDF.NET SOD Ver 5.1完全开源
前言: 自从我2014年下半年到现在的某电商公司工作后,工作太忙,一直没有写过一篇博客,甚至连14年股票市场的牛市都错过了,现在马上要过年了,而今天又是立春节气,如果再不动手,那么明年这个无春的年,也 ...
- ASP.NET Web API 开篇示例介绍
ASP.NET Web API 开篇示例介绍 ASP.NET Web API 对于我这个初学者来说ASP.NET Web API这个框架很陌生又熟悉着. 陌生的是ASP.NET Web API是一个全 ...
- Entity Framework入门系列(1)-扯淡开篇
这是我在Cnblogs上的第一个系列,但愿能坚持下去: 惯例索引 Entity Framework入门系列(1)-开篇兼索引: Entity Framework入门系列(2)-初试Code First ...
- Web jquery表格组件 JQGrid 的使用 - 从入门到精通 开篇及索引
因为内容比较多,所以每篇讲解一些内容,最后会放出全部代码,可以参考.操作中总会遇到各式各样的问题,个人对部分问题的研究在最后一篇 问题研究 里.欢迎大家探讨学习. 代码都经过个人测试,但仍可能有各种未 ...
- web自动化工具-开篇
web自动化工具-开篇 最近几年,前端技术风一样的速度迭代更新,各种框架工具雨后春笋般涌现,作为一个平凡的开发者,也只能在洪流中沉沉浮浮,微不足道,以前前端叫做切图仔.美工,如今改了称号叫前端工程师, ...
- [翻译svg教程]svg学习系列 开篇
目录 [翻译svg教程]svg学习系列 开篇 [翻译svg教程 ]svg 的坐标系统 [翻译svg教程]svg 中的g元素 [翻译svg教程]svg中矩形元素 rect [翻译svg教程]svg中的c ...
- ABP理论学习之开篇介绍
返回总目录 为了和2016年春节赛跑,完成该系列博客,我牺牲了今天中午的时间来完成该系列的第一篇----开篇介绍.开篇介绍嘛,读过大学教材的同学都知道,这玩意总是那么无聊,跟考试没关系,干脆直接跳过, ...
- [.net 面向对象程序设计深入](0) 开篇
[.net 面向对象程序设计深入](0)开篇 [.net 面向对象编程基础]和 [.net 面向对象程序设计进阶]在15年底写完了,群里也加进来不少热爱学习的小伙伴.让我深切感受到在这个 ...
- [.net 面向对象程序设计进阶] (1) 开篇
[.net 面向对象程序设计进阶] (1) 开篇 上一系列文章<.net 面向对象编程基础>写完后,很多小伙伴们希望我有时间再写一点进阶的文章,于是有了这个系列文章.这一系列的文章中, 对 ...
随机推荐
- Tiny4412 LED 硬件服务
1.Android系统中启动框架 2.首先实现驱动程序 #include <linux/kernel.h> #include <linux/module.h> #include ...
- [cf687c]The Values You Can Make(01背包变形)
题意:给定n个硬币,每个硬币都有面值,求每个能构成和为k的硬币组合中,任意个数相互求和的总额种类,然后将所有硬币组合中最后得到的结果输出. 解题关键:在01背包的过程中进行dp.dp[i][j]表示组 ...
- Java核心技术 卷1 基础知识-第一天
基本数据类型 java是一种强数据类的的语言 共有8种基本数据类型 其中: 整型4种 int(4字节) short(2字节) long(8字节) byte(1字节) java中整型的范围与机器无关 长 ...
- JSP有哪些动作?
JSP使用动作来动态的插入文件,实现重定向和对JavaBean的引用等功能.它公有6个基本动作:jsp:include,jsp:useBean,jsp:setProperty,jsp:getPrope ...
- 5.docker的疑难杂症
根据官方文档:https://docs.docker.com/install/linux/docker-ce/centos/搭建docker 1.卸载docker旧版本: sudo yum remov ...
- hdu1068
#include<stdio.h>#include<string.h>const int MAXN=1000;int map[MAXN][MAXN];int n;int lin ...
- 关于layui弹出层的使用
Jquery必须大于1.83 layui必须是all,否则不显示 <script src="../js/jquery-1.8.3.min.js"></script ...
- 浅析C#中的事件
讲过了委托,不得不讲事件. 事件基于委托,为委托提供了一种发布/订阅机制. 在发生其他类或对象关注的事情时,类或对象可通过事件通知它们.发送(或引发)事件的类称为“发行者”,接收(或处理)事件的类称为 ...
- request.form()和request()的区别
Request.Form:获取以POST方式提交的数据(接收Form提交来的数据):Request.QueryString:获取地址栏参数(以GET方式提交的数据)Request:包含以上两种方式(优 ...
- 缓存处理类(MemoryCache结合文件缓存)
想提升站点的性能,于是增加了缓存,但是站点不会太大,于是不会到分布式memcached的缓存和redis这个nosql库,于是自己封装了.NET内置的缓存组件 原先使用System.Web.Cachi ...