데이터 베이스 MySQL 튜토리얼 【Oracle入门系列】第03章

【Oracle入门系列】第03章

Jun 07, 2016 pm 03:37 PM
c oracle 시작하기 만들다 지침 작동하다 단순한 시리즈

简单的表操作 指令 : 创建简单表 : 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);--返回部门编号没有出现在该集合中的人的信息

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

클릭 한 번으로 PPT를 생성해보세요! 키미: 'PPT 이주노동자'가 먼저 대중화되게 해주세요 클릭 한 번으로 PPT를 생성해보세요! 키미: 'PPT 이주노동자'가 먼저 대중화되게 해주세요 Aug 01, 2024 pm 03:28 PM

클릭 한 번으로 PPT를 생성해보세요! 키미: 'PPT 이주노동자'가 먼저 대중화되게 해주세요

Oracle 데이터베이스 로그는 얼마나 오래 보관됩니까? Oracle 데이터베이스 로그는 얼마나 오래 보관됩니까? May 10, 2024 am 03:27 AM

Oracle 데이터베이스 로그는 얼마나 오래 보관됩니까?

CVPR 2024 시상식 전체가 발표되었습니다! 약 10,000명이 오프라인으로 컨퍼런스에 참석했으며 Google의 중국인 연구원이 최우수 논문상을 수상했습니다. CVPR 2024 시상식 전체가 발표되었습니다! 약 10,000명이 오프라인으로 컨퍼런스에 참석했으며 Google의 중국인 연구원이 최우수 논문상을 수상했습니다. Jun 20, 2024 pm 05:43 PM

CVPR 2024 시상식 전체가 발표되었습니다! 약 10,000명이 오프라인으로 컨퍼런스에 참석했으며 Google의 중국인 연구원이 최우수 논문상을 수상했습니다.

베어메탈부터 700억 개의 매개변수가 있는 대형 모델까지 튜토리얼과 바로 사용할 수 있는 스크립트가 있습니다. 베어메탈부터 700억 개의 매개변수가 있는 대형 모델까지 튜토리얼과 바로 사용할 수 있는 스크립트가 있습니다. Jul 24, 2024 pm 08:13 PM

베어메탈부터 700억 개의 매개변수가 있는 대형 모델까지 튜토리얼과 바로 사용할 수 있는 스크립트가 있습니다.

AI 활용 | AI가 혼자 사는 소녀의 생활 브이로그를 만들어 3일 만에 수만 개의 좋아요를 받았습니다. AI 활용 | AI가 혼자 사는 소녀의 생활 브이로그를 만들어 3일 만에 수만 개의 좋아요를 받았습니다. Aug 07, 2024 pm 10:53 PM

AI 활용 | AI가 혼자 사는 소녀의 생활 브이로그를 만들어 3일 만에 수만 개의 좋아요를 받았습니다.

Oracle 데이터베이스 서버 하드웨어 구성 요구 사항 Oracle 데이터베이스 서버 하드웨어 구성 요구 사항 May 10, 2024 am 04:00 AM

Oracle 데이터베이스 서버 하드웨어 구성 요구 사항

오라클에는 얼마나 많은 메모리가 필요합니까? 오라클에는 얼마나 많은 메모리가 필요합니까? May 10, 2024 am 04:12 AM

오라클에는 얼마나 많은 메모리가 필요합니까?

RAG의 12가지 문제점을 카운트다운하는 NVIDIA 수석 아키텍트가 솔루션을 가르칩니다. RAG의 12가지 문제점을 카운트다운하는 NVIDIA 수석 아키텍트가 솔루션을 가르칩니다. Jul 11, 2024 pm 01:53 PM

RAG의 12가지 문제점을 카운트다운하는 NVIDIA 수석 아키텍트가 솔루션을 가르칩니다.

See all articles