sql语法值ORACLE简介

前言

1977年提出了关系型数据库,大型的数据库产品有oracle、db2和Sybase;

中型的右SqlServer和mysql;小型的代表为access。

正文

数据库的常用术语:dbms是数据库管理系统;

dbms是关系型数据库管理系统和dba是数据库管理员的意识

oracle的安装

安装过程简单略过。

安装好之后有个数据库实例sid,即库名。

1) 连接数据库之前记得开启oracleXXX(SID)TNSListener服务和oracleServiceXXX(SID)这两个服务。

oracleXXX(SID)TNSListener服务,是客户端监听器

oracleServiceXXX(SID)这两个服务是数据库的服务器服务。

常使用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 表名  --关键字和字段大小写不区分。

注:

1).oracle 默认提供scott账户

此账户下有默认的表用于学习和测试使用。

2).在plsql工具上,常使用的命令 :

set pagesize 2 数值;--设置每行显示的列数。

column 字段名 format a9--显示该字段给予9个字长,针对于字符串

column 字段名 format 9999 --用4为字段表示数字。

/ 表示执行存于缓存中的上次命令。

 5.查询过程中取别名 as关键字

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 关键字用于除去重复记录,只能紧随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简介

时间: 2024-10-24 10:10:11

sql语法值ORACLE简介的相关文章

ORACLE分页查询SQL语法——最高效的分页

--1:无ORDER BY排序的写法.(效率最高)--(经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!) SELECT * FROM (SELECT ROWNUM AS rowno, t.* FROM emp t WHERE hire_date BETWEEN TO_DATE ('20060501', 'yyyymmdd') AND TO_DATE ('20060731', 'yyyymmdd') AND ROWNUM <= 20) table_

PL/SQL语法简介(匿名PL/SQL块)

PL/SQL PL/SQL是Oracle在关系数据库结构化查询语言SQL基础上扩展得到的一种过程化查询语言. SQL与编程语言之间的不同在于,SQL没有变量,SQL没有流程控制(分支,循环).而PL/SQL是结构化的和过程化的结合体,而且最为重要的是,在用户执行多条SQL语句时,每条SQL语句都是逐一的发送给数据库,而PL/SQL可以一次性将多条SQL语句一起发送给数据库,减少网络流量 SQL执行 PL/SQL执行 匿名Pl/SQL块 – 动态构造,只能执行一次 一次性完成,没有名字 存储过程,

Oracle SQL语法系列(一)

一.结构化查询语言(SQL) 1.数据操作语言(DML) INSERT UPDATE DELETE 2.数据定义语言 CREATE ALTER DROP RENAME TRUNCATE 3.事务控制(TC) COMMIT ROLLBACK SAVEPOINT 4.数据控制语言(DCL) GRANT REVOKE 附录:Linux下执行SQL脚本 @/tmp/create_table.sql 二.创建数据库 create database xiaoxu user sys identified by

ORACLE分页查询SQL语法——高效的分页

--1:无ORDER BY排序的写法.(效率最高)--(经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!) SELECT * FROM (SELECT ROWNUM AS rowno, t.* FROM emp t WHERE hire_date BETWEEN TO_DATE ('20060501', 'yyyymmdd') AND TO_DATE ('20060731', 'yyyymmdd') AND ROWNUM <= 20) table_

网络安全从入门到精通 (第二章-2) 后端基础SQL—MySQL数据库简介及SQL语法

本文内容: 什么是数据库 常见数据库 数据库的基本知识 基本SQL语法 1,什么是数据库? 数据库就是将大量数据保存起来,通过计算机加工,可以高效访问的数据聚合. 数据库就是长期存储在计算机内,有组织.可共享的集合. 2,常见的数据库: Oracle Database 甲骨文公司 SQL Server  微软公司 DB2   IBM公司 POSTGRESQL     开源 MySQL 开源 Access 微软公司 注意:虽然数据库各种各样,但是数据库语句之间具有相同之处. 3,数据库基本知识:

SQL Server,MySQL,Oracle三者的区别

Oracle Oracle 能在所有主流平台上运行(包括Windows).完全支持所有的工业标准.采用完全开放策略.可以使客户选择最适合的解决方案.对开发商全力支持,Oracle并行服务器通过使一组结点共享同一簇中的工作来扩展Windows NT的能力,提供高可用性和高伸缩性的簇的解决方案.如果Windows NT不能满足需要,用户可以把数据库移到UNIX中.Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度.Oracle获得最高认证级别的ISO标准认证.Oracle性能最

sql server 与 oracle的区别(转)

--1.数据类型不同.      --sql server 的数据类型:int ,smallint ,char,varchar,nchar,nvarchar,ntext,datetime,smalldatetime,money,decima,      --float,bit……                  --oracle 的数据类型:number(p,s),char,varchar2,Date,LOB               --注意:insert into table_name

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

NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用的难题. 本文对NoSQL数据库的定义.分类.特征.当前比较流行的NoSQL数据库系统等进行了简单的介绍,并对NoSQL和SQL语法进行了简单的比较,为大家对NoSQL数据库的学习提供了有益的参考. 一.NoSQL的出现 关系型数据库系统多年来在解决数据存储.服务和处理问题方面取得了巨大的成功.一些大型的公司使用关系型数据库建立了自己的系统,如联机事务处理系统和后端分析应用系统.联机事务处理(OLTP)系统用

sql优化(oracle)

永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! sql优化(oracle) 目录 第一部分知识准备                            第二部分 常用sql用法和注意事项                                第三部分  sql优化总结 1.  sql执行过程  1. exists 和 in                                                      1. 优化一般原则 2.  sql 共享