search
HomeDatabaseMysql Tutorial【Oracle入门系列】第03章
【Oracle入门系列】第03章Jun 07, 2016 pm 03:37 PM
coraclegetting StartedcreateinstructionoperateSimpleseries

简单的表操作 指令 : 创建简单表 : create table student(name varchar2(20),age number(3)); 插入新记录 : insert into student values ('stone',24); 查看表结构 : desc student; 查询记录 : select * from student; 删除表 : drop table student;

简单的表操作
指令创建简单表createtable student(name varchar2(20), age number(3) );
             插入新记录insert into studentvalues('stone',24);
             查看表结构desc student;
             查询记录select * from student;
             删除表drop table student;
             删除表中的数据delete from studentwhere 条件;
说明SQLPlusWorksheet中用“--”作为单行注释标记。varchar2(20)标明可变长度的字符串,上限为20
             number(3)标明age为不包含小数点的3位的整数。如果只定义成number,则系统默认为10位的整数
             单引号引起来的字符是SQL语言中字符串常量的表示方式。SQL语言中的关键字大小写不敏感
             数据库开发人员喜欢使用大写关键字。应用程序开发人员多数使用小写的,以实现良好的可读性
             插入记录后,其实并没有在数据库中立即永久生效,这时可以使用commit;提交数据的更新操作

 

 

 

简单的Select语句
语法格式SELECT *|{字段名>,...} FROM 表名>;--字段间用逗号隔开。在逗号后面添加空格可以增强可读性
                     例如select * from emp;select empno, ename, sal from emp;
显示效果Sql*plus的默认显示:Date和character型数据左对齐,Numeric型数据右对齐,列标题默认显示为大写
                     iSql*plus的默认显示:列标题默认显示为大写,列标题缺省居中对齐

 

 

 

使用算术表达式
概述:在Select语句中,对NUMBER型数据可以使用算术运算符(+-*/)创建表达式
举例:select empno, ename, sal, sal*12 from emp;--查询emp中员工的编号姓名工资和年薪
             select empno, ename, sal, sal*12+1000 from emp;
             select empno, ename, sql, sal*(12+1000) from emp;--可以使用括号更改计算顺序

 

 

 

连接运算符
概述:即“||”可以把列与字符或其它表达式连接在一起,得到一个新的字符串,实现“合成”列的功能
举例:select ename || ' is a ' || job from emp;
             select empno, ename ||'''s annual salary is'|| sal*12 from emp;
说明:用一个单引号代表字符串常量的分隔标记。用两个单引号代表字符串常量中出现的一个单引号字符
             在查询的时候,也不需要转义符,直接用两个单引号代表字符串常量中出现的一个单引号即可

 

 

 

使用字段别名
概述:重命名查询结果中的字段,以增强可读性。如果别名中使用特殊字符或强制输出大小写时需使用双引号
格式SELECT 字段名>|表达式> [[AS]字段别名>],... FROM表名>;
举例:select empno, ename "Ename", sal*12 "年 薪" from emp;
             select empno as 员工编号, ename 员工姓名, sal*12 "年薪" from emp;
说明:as可以不加。别名可以用双引号引起来。如果别名中不包含特殊字符,双引号可以省略
             如果别名中包含了空格,如"年 薪",就必须加双引号,否则将被解析成两个成份,导致语法上出问题
             如果Ename不加双引号,那么执行后会显示为ENAME。只有给它加上双引号之后,才会遵重大小写来显示

 

 

 

空值
概述:空值是无效的,未指定的,未知的或不可预知的值。空值不等同于0空格
举例:select empno, ename, sal, comm from emp;--执行后某些记录的comm属性会显示一片空白,即空值
             insert into student(age) values(24);--插入数据时,如果没有指定name值,那么默认的name就是空值
补充:算术表达式中如果出现空值,则整个表达式结果为空
             连接表达式中出现的空值被当作一个空的(长度为零的)字符串处理
             如select ename, sal, comm, ename || ' - ' || comm, sal+comm from emp;
             在算术表达式中如果涉及到空值的话,可以使用相应的函数对可能存在空值的字段进行缺省值的设置
             经过判断之后,如果它是空值,则返回0,如果不是空值,则返回它真正的值,然后再进行算术运算

 

 

 

去除重复行
概述:缺省情况下,查询结果中显示所有符合条件的记录行,包括重复行。可以使用DISTINCT可以清除重复行
             DISTINCT的作用范围是后面所有字段的组合,即后面的多个字段的组合不出现重复就可以了
举例:select deptno from emp;--本意是查询部门编号的种类,显示的却是所有的编号,包括重复编号
             select distinct deptno from emp;--清除查询结果中重复的部门编号
             select distinct deptno, job from emp;--只要deptno和job组合后的结果不重复,那么就都显示输出
说明:通常把极为简单的数据处理,包括数据的查询、组合、过滤或转换类型等操作,均交给数据库进行处理
             比如分组统计、求和、求平均值、过滤空值、过滤重复值、数据开头和结尾的空格过滤、字符串转日期型等等
             而对于复杂些的业务逻辑,或者与商业逻辑相关的内容,建议在应用程序中处理。这样也就实现了松散的耦合

 

 

 

查询结果排序
概述:查询结果缺省按照记录的插入顺序进行排列。可以使用ORDER BY子句对查询结果进行排序
             排序方式包括升序(ASC缺省)和降序(DESC)两种。也可以使用字段别名排序或按多字段排序
举例:select empno, ename, sal from emp order by sal;--按sal进行升序排列,ASC可以省略不写
             select empno, ename, sal from emp order by sal desc;--按sal进行降序排列
             select empno, ename, sal*12 annsal from emp order by annsal;
             select deptno, empno, ename, sal from emp order by deptno, sal;
说明:多字段排序时,先按照deptno排序,如果在得到的排列结果中存在重复的deptno记录的话
             就将重复的deptno记录再按照sal排序。至于具体的排序方式,则需要对两个字段进行单独指定
             如deptno,sal表示二者均按升序排列。deptno,sal desc表示deptno按升序排列,sal按降序排列
             如deptno desc,sal表示deptno按降序排列,sal按升序排列。依此类推
             这种逻辑适合由数据库在查询阶段进行处理。在应用程序中通过代码来实现的话,就会困难一些

 

 

 

条件查询
说明:在查询语句中或查询条件中使用字符串或日期的时候,字符串和日期值要用单引号括起来
             字符串大小写敏感。日期值格式敏感,缺省的日期格式是DD-MON-RR
注意:凡涉及到字符串内容的比较,大小写都是敏感的
格式SELECT *|{[DISTINCT]字段名>|表达式>[别名>],...} FROM表名> [WHERE 查询条件>];
举例:select * from emp where ename='SMITH';--这里所要查询的SMITH严格区分大小写
             select * from emp where hiredate='02-4月-81';--系统会自动将符合约定格式的字符串转换成Date型
             select sysdata from dual;--以缺省的日期格式获取当前的系统时间
说明:表dual中只有一行一列,它本身并不保存系统时间,sysdate永远代表当前的系统时间
             通常在进行简单的查询或运算的时候,dual表起一个媒介的作用,使得形式上看起来像是查询
             dual的好处在于只有一行记录,它一般用在练习时测试某些指令。一般不在真实的开发使用它
             比如select 3+2 from dual;返回5。又如select 3+2 from emp;则会返回很多行的5
             它会对emp中每一行记录都查询,但查的不是真正保存的内容,而是逐行的计算一遍3+2
             再把得到的5作为一个唯一的结果,也是唯一的一个字段返回来,所以结果就是10多行的5
             对于Oracle数据库,即使是想让它做一个简单的常量表达式的运算,也要采用问答的形式
             即便此时所有的数据都在用户的手中,那也要装作是查询,给它一个指令,令其返回结果

 

 

 

关系运算符
符号BETWEEN...AND...:界于两值之间,包括边界,并且必须把小的数值放在前面
             IN(set):出现在集合中。判断是否存在某字段等于集合中的值的记录
             LIKE:模糊查询,也叫通配查询
             IS NULL:判断空值
示例:select * from emp where sal between 1600 and 2900;--查询工资界于1600和2900之间的员工的信息
             select * from emp where ename in('SMITH','KING','King');--返回姓名为set中的元素的值的记录
             select * from emp where comm is null;--返回所有comm字段的值为空的记录
             select * from emp where comm is not null;--返回非空的。注意0和空是不同的
注意:凡涉及到字符串内容的比较,大小写都是敏感的。即in()中的值需要与ename值完全匹配方可查询出记录
LIKE%代表零或多个字符。_代表一个字符。可以使用ESCAPE标识特殊符号
             select * from emp where ename like 'S%';--查询以S开头的姓名的记录。这里S仍然是大小写敏感的
             select * from emp where ename like '_A%';--查询第二个字母是A的姓名的记录
             select * from emp where ename like '%\_%' escape '\';--返回姓名存在下划线的记录
             这里的escape标明“\”起到转义符的作用。在真实的开发中,这种转义符用的并不多
             Oracle中的转义符可以随便定义,所以例句中的“\”也可以换成其它的符号,如“K
说明:用一个单引号代表字符串常量的分隔标记。用两个单引号代表字符串常量中出现的一个单引号字符
             在模糊查询的时候,也不需要转义符,直接用两个单引号代表字符串常量中出现的一个单引号即可

 

 

 

逻辑运算符
概述:优先级由NOTANDOR
举例:select * from emp where deptno=20 and sal>2000;--返回部门编号为20而且工资大于2000的记录
             select * from emp where deptno=20 or sal>2000;--返回部门编号为20的人或者工资大于2000的记录
             select * from emp where deptno not in(20,30,40);--返回部门编号没有出现在该集合中的人的信息

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
oracle怎么查询所有索引oracle怎么查询所有索引May 13, 2022 pm 05:23 PM

方法:1、利用“select*from user_indexes where table_name=表名”语句查询表中索引;2、利用“select*from all_indexes where table_name=表名”语句查询所有索引。

什么是oracle asm什么是oracle asmApr 18, 2022 pm 04:16 PM

oracle asm指的是“自动存储管理”,是一种卷管理器,可自动管理磁盘组并提供有效的数据冗余功能;它是做为单独的Oracle实例实施和部署。asm的优势:1、配置简单、可最大化推动数据库合并的存储资源利用;2、支持BIGFILE文件等。

oracle全角怎么转半角oracle全角怎么转半角May 13, 2022 pm 03:21 PM

在oracle中,可以利用“TO_SINGLE_BYTE(String)”将全角转换为半角;“TO_SINGLE_BYTE”函数可以将参数中所有多字节字符都替换为等价的单字节字符,只有当数据库字符集同时包含多字节和单字节字符的时候有效。

Oracle怎么查询端口号Oracle怎么查询端口号May 13, 2022 am 10:10 AM

在Oracle中,可利用lsnrctl命令查询端口号,该命令是Oracle的监听命令;在启动、关闭或重启oracle监听器之前可使用该命令检查oracle监听器的状态,语法为“lsnrctl status”,结果PORT后的内容就是端口号。

oracle怎么删除sequenceoracle怎么删除sequenceMay 13, 2022 pm 03:35 PM

在oracle中,可以利用“drop sequence sequence名”来删除sequence;sequence是自动增加数字序列的意思,也就是序列号,序列号自动增加不能重置,因此需要利用drop sequence语句来删除序列。

oracle怎么查询数据类型oracle怎么查询数据类型May 13, 2022 pm 04:19 PM

在oracle中,可以利用“select ... From all_tab_columns where table_name=upper('表名') AND owner=upper('数据库登录用户名');”语句查询数据库表的数据类型。

oracle查询怎么不区分大小写oracle查询怎么不区分大小写May 10, 2022 pm 05:45 PM

方法:1、利用“LOWER(字段值)”将字段转为小写,或者利用“UPPER(字段值)”将字段转为大写;2、利用“REGEXP_LIKE(字符串,正则表达式,'i')”,当参数设置为“i”时,说明进行匹配不区分大小写。

Oracle怎么修改sessionOracle怎么修改sessionMay 13, 2022 pm 05:06 PM

方法:1、利用“alter system set sessions=修改后的数值 scope=spfile”语句修改session参数;2、修改参数之后利用“shutdown immediate – startup”语句重启服务器即可生效。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software