版权声明:本文为[博主](https://zhangkn.github.io)原创文章,未经博主同意不得转载。https://creativecommons.org/licenses/by-nc-sa/2.5/cn/ https://blog.csdn.net/u011018979/article/details/24196987

前言

1977年提出了关系型数据库,大型的数据库产品有oracle、db2和Sybase。
中型的右SqlServer和mysql;小型的代表为access。

正文

数据库的经常使用术语:dbms是数据库管理系统;
dbms是关系型数据库管理系统和dba是数据库管理员的意识
 
 

关系型数据库和非关系型数据库

数据库是依照数据结构来组织、存储和管理数据的仓库。
 
关系型数据库,是建立在关系模型基础上的数据库。关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。当前主流的关系型数据库有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。

 
NoSQL,指的是非关系型的数据库。随着互联网web2.0站点的兴起,传统的关系数据库在应付web2.0站点。特别是超大规模和高并发的SNS类型的web2.0纯动态站点已经显得力不从心,暴露了非常多难以克服的问题,而非关系型的数据库则因为其本身的特点得到了非常迅速的发展。

 1、High performance - 对数据库高并发读写的需求。

2、Huge Storage - 对海量数据的高效率存储和訪问的需求。
3、High Scalability && High Availability- 对数据库的高可扩展性和高可用性的需求。
 
常见的非关系型数据库:Membase、MongoDB、Hypertable、Apache Cassandra、CouchDB等。
 
常见的NoSQL数据库port:
 MongoDB:27017、28017、27080
CouchDB:5984
Hbase:9000
Cassandra:9160
Neo4j:7474
Riak:8098

 

oracle的安装

安装过程简单略过。

安装好之后有个数据库实例sid,即库名。
1) 连接数据库之前记得开启oracleXXX(SID)TNSListener服务和oracleServiceXXX(SID)这两个服务。
oracleXXX(SID)TNSListener服务。是client监听器
oracleServiceXXX(SID)这两个服务是数据库的server服务。

常使用PlSqlDev.exe等运行sql语句工具。
conn命令用于连接数据库实例。

注:
oracle数据库默认提供Scott/tiger作为測试和学习使用。

默认提供经常使用的emp,dept等測试表。

能够使用desc 表名 来查看表结构。

操作数据 

1.数据的存储方式(索引文件比数据文件更重要)

仪表的形式存储数据,是採用二维表。行是记录。列是字段。

2.操作数据库使用SQL(structure query language) 结构化查询语言。

眼下使用的是1999年指定的国际标准。数据库厂商通用(sql99)

3.依据sql的功能不同分成:

DQL:(数据查询语言,select)用来完毕对数据库中的数据查询。

DDL(数据定义语言,create,drop,truncate截断表)操作表结构。

DML(数据库操作语言,insert,delete,update)操作数据

TCL(事务控制语言,transient control language)commit/rollback/savepoint 操作事务

4.简单的查询语句:
select  [distinct] 字段名称,子都每次 from 表名  --keyword和字段大写和小写不区分。
注:
1).oracle 默认提供scott账户
此账户下有默认的表用于学习和測试使用。

2).在plsql工具上,常使用的命令 :
set pagesize 2 数值;--设置每行显示的列数。
column 字段名 format a9--显示该字段给予9个字长。针对于字符串
column 字段名 format 9999 --用4为字段表示数字。
/ 表示运行存于缓存中的上次命令。
 5.查询过程中取别名 askeyword
 
select 字段名  别名 form 表名;--as能够省略。别名与字段名分开
6.连接字段   ||
select  字段1||字段2 from emp;
7.查询时虽字段进行算数运算 +* - /
select ename ,sal*12 from emp;
1)null与不论什么数据进行操作都为空
 8.desc 表名  查询表结构

显示字段、字段的类型以及长度和约束

9.oracle中经常使用的数据类型

1)number(n)

数字类型。不区分浮点数,n表示长度。

2)number(n,m)

表示总共同拥有n位,小数位为m

3)varchar2 字符串

4)date 日期类型

条件查询语句

select 字段一,字段二 from 表名 where 限定条件

1.採用比較运算符过滤结果 > ,<,=,<>,!=

2.逻辑运算符 and,or ,not 一般与in 和一起使用

select * form emp where sal>100 and comm>100;

3.between 较小的数 and 较大的数

4.值的绑定 &变量名  动态传值

select * from emp where sal between &no1 and &no2

select * from emp where job='&name';--假设不加单引號。能够在输入时加单引號。

5.in 常与not结合使用

select * * from emp where sal in(1500,3000);

7.is null 和is not null

select * from emp where comm is null;

8.like 模糊查询 效率低。通常会全表扫描。

建议不要将%放于查询条件的最前面

通配符%。是匹配随意个的字符。通配符_是匹配一个字符。

select *  from emp where ename  like  'A\_%' escape '\';--escape是用于声明转义字符。假设字段值包括有通配符,那么能够使用escape来设定转义字符。

9.distinct keyword用于除去反复记录。仅仅能紧随select 之后

select distinct deptno from emp;

10.查询排序 order by 默觉得自然顺序。

select *  from emp order by 1;--依照第一个字段排序,还要注意的是年份是依照大小来排序的。

单行函数

返回结果一行。输入參数也是一个记录。

字符函数

dual 虚表,它是一行一列,没有不论什么数据,经常常使用于測试。它是oracle特有的用于做函数測试的。

1.upper(參数) 将目标字符串转换成大写形式

select * from emp where ename=upper(‘&name’);

2.lower(參数)将目标字符串以小写的形式显示

3.length(參数)获取当前字符串的长度

4.substr(mu(目标字符串,截取的起始位置。截取的长度)

select substr('hello',1,2) from dual ;--小标从1開始

5.initcap(參数) 使当前的字符串的单词的首字母大写

select  initcap('hello zhangkunnan') from dual;

6.concat 连接字符串

数字函数

1.round(參数) 四舍五入

2.ceil() --向上取整

3.floor() --向下取整

4.trunc(number,l) --截取小数位。

当l为正数时,表示截取小数点右边的位数;l为负数时,表示过滤小数点左边的位数。当l不写的时候。效果与l=0一样。

 

日期函数

1.sysdate  .获取当前系统时间

column sysdate for a20;==设置字段显示格式

2.next_day(參考日期。字符/数字) 下一个星期几的日期

selectnext_day(sysdate,1); from dual--下一个星期天得日期

select next_day('星期日') from dual 。--前提是要oracle的字符集支持中文

第二个參数为数字,在中英文环境都能够运行。

3.add_months() 在月份上进行加减

select add_months(sysdate,3) from dual;

4.months_between(终止时间。即使时间)  两个时间的月份差

5.last_may() ;获取日期的当月的最后一天的日期

select last_day(sysdate) from dual;

转换函数

1.to_date(字符串。日期格式)函数,将字符串转换成日期类型。

select * from emp where hiredate =to_date('1980-12-17','yyyy-mm-dd');

2.to_char(日期,显示日期的格式)函数,将日期或其它类型转换成字符串

select * from emp where to_char(hiredate,'yyyy-mm-dd')='1980-12-17';

select  to_char(sysdate,'mm/dd/yyyy hh:mi:ss') from dual;

select  to_char(sysdate,'mm/dd/yyyy hh24:mi:ss') from dual;--hh24表示採用24小时制

select  to_char(sysdate,'yyyy-mm-dd day am') from dual;--day表示星期几

 

select to_char(1234) from dual ;

select to_char(1234,'$999.99') from dual ;

select to_char(1234,'l999.99') from dual ;

select to_char(1234,'l0,0099') from dual ;

3.to_number函数 将字符串转换成数字

select to_number('1234','9999.99') from dual ;--999.99为字符串的输入格式

select to_number('1234') from dual ;

select to_number('$1234.56','$999.99') from dual;

select to_number('¥1,234.56',‘L9,999.99’) from dual ;--使用¥或RMB表示金额。详细要看系统採用的表示方式。L9,999.99仅仅能使用0和9。也能够由逗号和点号。

 

通用函数

1.nvl(字段,默认值)

用于推断字段是否为空,假设为空就返回指定的值,否则返回字段本身的值。

select enamel,sal+nvl(comm,0) from emp;

2.decode函数 分支推断

select decode(&no,1,'值1',2,‘值2’) from dual

 

总结

多表查询

select 白哦表名1.字段名1,表名2.字段名2 from  表名1 join 表名2  on 连接条件

select emo.ename,dept.dnaem from emp join dept on emp.deptno=dept.deptno;

简单分析:从主表中取出第一条记录,使用连接条件与从表的记录的对于字段进行匹配,假设匹配成功就组成一个结果放在结果集中;继续与从表的下一条记录进行比較,扫了一遍之后,再拿出主表第二条记录,依次运行。

注:

1)笛卡尔积的长度是主表的全部记录数乘以从表的全部记录数

select * form emp cross join dept;=-笛卡尔积是将主表的每一条记录与从表的全部记录进行连接显示。

 

 

 

sql语法值ORACLE简单介绍的更多相关文章

  1. SQL Server授权购买简单介绍

    SQL Server授权购买简单介绍 之前有同事问我,使用盗版序列号的SQL Server到底有没有性能限制,之前本人一直没有深入研究过,后来经过一番资料搜集和查证,汇总成这篇文章 微软的SQL Se ...

  2. SQL SERVER数据库的简单介绍

    一.数据库技术的发展 数据库技术是应数据管理任务的需求而产生的,先后经历了人工管理.文件系统.数据库系统等三个阶段. 二.关系型数据库 SQL Server属于关系型数据库. 关系模型 以二维表来描述 ...

  3. 特征值提取之 -- TF-IDF值的简单介绍

    首先引用百度百科的话: "TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度.字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料 ...

  4. NoSQL 数据库概览及其与 SQL 语法的比较

    NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用的难题. 本文对NoSQL数据库的定义.分类.特征.当前比较流行的NoSQL数据库系统等进行了简单的介绍,并对N ...

  5. NoSQL数据库概览及其与SQL语法的比較

    [文章摘要] HBase是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统.同一时候也是知名的NoSQL数据库之中的一个.NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤 ...

  6. SQL盲注攻击的简单介绍

    1 简介     1.1 普通SQL注入技术概述     目前没有对SQL注入技术的标准定义,微软中国技术中心从2个方面进行了描述[1]:     (1) 脚本注入式的攻击     (2) 恶意用户输 ...

  7. (转)SQL盲注攻击的简单介绍

    转:http://hi.baidu.com/duwang1104/item/65a6603056aee780c3cf2968 1 简介     1.1 普通SQL注入技术概述     目前没有对SQL ...

  8. [转]Oracle数据库ASH和AWR的简单介绍

    在Oracle数据库中,有时我们可能会遇到这样的术语:ASH和AWR,那么它们是怎样产生的呢?它们的作用又是什么呢?本文我们就来介绍这一部分内容.       1.10g之前 用户的连接将产生会话,当 ...

  9. Phoenix(sql on hbase)简单介绍

    Phoenix(sql on hbase)简单介绍 介绍: Phoenix is a SQL skin over HBase delivered as a client-embedded JDBC d ...

随机推荐

  1. Topshelf+Quartz.net+Dapper+Npoi(一)

    背景 前段时间公司有个需求(每天给业务导出一批数据,以excel的形式通过邮件发送给他).A说:直接写个服务,判断等于某个时间点,执行一下sql语句,生成excel,写个EmaiHelper发送给他不 ...

  2. Delphi 释放数组中的数据

    FillChar(aryTest[Low(aryTest)],    Length(aryTest) * SizeOf(aryTest[Low(aryTest)]), 0);

  3. QQ聊天窗口上的广告与QQ弹窗广告的完美屏蔽去除

    涉及的软件 1. QQ  (笔者的为v8.2版本) 2. Win7 3. ADSafe(3.13.308.9900正式版) 前言 QQ广告十分讨人厌,除了QQ弹窗的广告,让人十分反感外,最近发现QQ聊 ...

  4. PHP amqp扩展安装

    1.安装 rabbitmq-c下载地址:https://github.com/alanxz/rabbitmq-c> mkdir build > cd build> cmake -DO ...

  5. XCODE 4.5 IOS多语言设置 及NSLocalizedString和NSLocalizedStringFromTable的用法。

    前 些天升级到Xcode4.5,现在正在用Xcode4.5+IOS6开发项目,当使用国际化时,遇到了一点问题,之前版本Xcode上新建 Localizable.strings后,添加语言的“+”号不见 ...

  6. goreplay使用

    最新版的发布公告:https://leonsbox.com/goreplay-v0-16-and-4th-anniversary-5408b1fd72e0 主要提到:中间件.报文解压.从kafka读取 ...

  7. 推荐一个好的数据库工具Embarcadero DBArtisan

    最近的项目中用到了DB2数据库,由于DB2数据库客户端在操作操作和控制方面不是很方便,如存储过程的编写.后来我们在数据库的操作都转在DBArtisan上了,最新版好像是8.12.        下面介 ...

  8. 【GLSL教程】(八)纹理贴图 【转】

    http://blog.csdn.net/racehorse/article/details/6664717 简单的纹理贴图(Simple Texture) 为了在GLSL中应用纹理,我们需要访问每个 ...

  9. unity 切圆角矩形 --shader编程

    先上个效果图 制作思路 如上图我们要渲染的就是上图带颜色的部分 步骤: 先获取黄色和蓝绿部分 例如以下图 算法 |U|<(0.5-r)或|V|<(0.5-r) 注意的是模型贴图最大值是1. ...

  10. Spring学习十一----------Bean的配置之基于Java的容器注解@Bean

    © 版权声明:本文为博主原创文章,转载请注明出处 @Bean -@Bean标识一个用于配置和初始化一个由SpringIOC容器管理的新对象的方法,类似于XML配置文件的<bean/> -可 ...