oracle基础学习(一)

一、存储数据相关知识

1、内存:存储的速度很快 ;数据比较容易丢失 ;价格贵;

2、文件(硬盘):存储的速度特别慢;数据永久存储;便宜;

3、数据库:它不属于内存和文件之外的存储方式,它只是数据存储时,内存与文件(硬盘)结合的一种解决方案。

二、主流数据库

1、oracle:企业级大型数据库 公司:甲骨文公司

oracle的版本:oracle9i oracle10g oracle11g oracle12c

2、MySQL:小型数据库 开源免费

3、db2:IBM数据库

4、sqlserver:微软数据库

三、搭建数据库环境

1、在oracle在安装时候,会自动根据当前的系统编码格式设置为中文编码,修改成英文环境:

添加系统环境变量:

变量名:NLS_LANG

变量值:american_america.AL32UTF8

执行完毕第三步,可以将第一步的环境变量删除,更改回中文环境:

变量名:temp_NLS_LANG

变量值:american_america.AL32UTF8

2、导入脚本

在SQL >

输入@路径\脚本名称

例如:SQL>@C:\Users\j\destop\课件\guojiao.sql

3、查询是否导入成功,查询脚本中的任意一个表结构,如脚本中有表emp则

在SQL>输入:desc emp;

出现表结构则说明导入成功。

四、如何通过DOS命令访问数据库:

1、访问本机数据库

DOS命令行下输入:sqlplus

sql> 账号 /密码

2、访问其他计算机的数据库(本机需要支持sqlplus命令)

DOS命令行输入:sqlplus

sql>账号/密码@IP地址;

五、常用的数据库命令语句:

1、清除屏幕:host cls

2、显示宽度,调整:col列名for a长度;

六、SQL语句分类

结构化查询语言 大多数的数据库,操作上基本上都一致!

SQL语言的五种分类:

DCL:数据库控制语言:grant、revoke

DDL数据库定义语言:create、drop、alter

DML数据库操作语言:insert、update、delete

TCL事务处理语言:commit、rollback、savepoint

DQL数据库查询语言:select

七、from子句

1、如何查询单个列的值

格式:select 列名 from 表名;

例子:查询员工表格中的员工编号

语句:select ID fromemp;

2、如何查询多个列的值

与查询单个列的方式基本相同,多个列之间使用英文逗号隔开!

格式:select 列名1,列名2。。。列名n from 表名;

案列:查询员工表中的员工编号以及对应的月薪

语句:select ID,salary from emp;

3、设置列显示的长度:

col 列名 for a长度;//不能设置数字列

例如:col last_name for a20;

4、如何查询一个表中的所有列:*

*表示所有(all),与查询单列的方式基本一致,把列名改为*号即可

格式:select * from 表名;

例子:查询员工表格中的所有员工信息

语句:select * from emp;

八、查询时额外的操作

在查询时候,可以对结果进行运算,例如算数运算,字符串拼接,直接在列名处进行运算即可

1、算数运算 + - * /

-案列:计算员工的年薪(salary*16)

语句:select ID,salary*16 from emp;

九、null运算

数据库中所有的类型默认值为null,oracle中null值经过运算后,结果永远为null

1、使用NVL函数运算null值:

格式:nvl(参数1,参数2); 关于数据库中的null值一定要尽早处理。

作用:用来处理null,如果参数1为null,则返回参数2,如果参数1不为null则返回的参数是1.

例如:nvl(salary,0):如果员工有工资,则返回的是工资,如果没有工资则返回0

练习:计算员工的年薪加奖金

语句:select id ,salary*16+16*nvl(commission_pct,0) from emp;

十、列的别名

1、有时候我们在对表格中数据进行查询,数据的列名出现变化,我们需要一个更见名知意的列名来表示数据。

2、格式:select 列名1 别名1,列名2 别名2.。。from 表名;

3、特殊的别名:有时候我们在别名中可能会存在一些特殊的字符,如空格!

解决此问题的方案又叫别名的原样显示:之前别名无论是否大写,显示时候都是大写,通过双引号引住的别名会原样显示(大小写敏感)

例如:select id,last_name,salary*16 "y sal" from emp;

十一、SQL中的字符串

oracle中关于大小写的规则:

在SQL中,只有字符串是大小写敏感的。

例如:String text="你好";

syso(text);

显示:你好

1、Java中:

定义形式:使用双引号引住:“你好”

表现形式:表现形式中引号是不存在的:你好

2、oracle中:

定义形式:使用英文单引号引住:‘你好’

表现形式与Java一致:你好

十二、字符串的拼接

1、字符串的拼接

在oracle中字符串拼接:||

例子:查询员工表中的员工姓$名,并给这个字段起个别名为name;

select e.last_name||'$'||e.first_name name from emp e;

2、如何在字符串中拼接一个单引号

字符串单引号在oracle中编写方式为:''''

练习:查询员工表格中的姓'名

语句:select last_name||''''||frist_name as name from emp;

注意:select '字符串1' ||'字符串2'from dual;  结果: 字符串1字符串2

 

1、select 'select* from emp where no='''||2||'''' from dual;

 

     结果:select* from emp where no='2'    

 

     注意:这个结果是我想要的!!!

 

2、 select 'select* from emp where no='''||2||'' from dual;

 

     结果:select* from emp where no='2

 

     解释:||后面的两个单引号是成对存在的

 

3、 select 'select* from emp where no='''||2||''' from dual;

 

     结果:错误提示:引号内的字符串没有正确结束!

 

      解释:单引号要么成对存在,要么作为转义符存在,||'''中前两个单引号成对存在,第三是孤立的所以报错。

 

4、select 'select* from emp where no='''||2||' from dual;

 

     结果:错误提示:引号内的字符串没有正确结束!

 

     解释:||'中单引号孤立存在。

 

5、  select 'select* from emp where no='||2||'''' from dual;

 

     结果:select* from emp where no=2'

 

解释:'||中的单引号和'select 中的单引号成对存在。

 

6、 select 'select* from emp where no=''||2||'''' from dual;

 

    结果:错误提示:引号内的字符串没有正确结束!

 

解释:''||中的第一个单引号和'select中的单引号成对存在,而第二个单引号孤立的,报错。

 

十三、数据的排重显示

排重关键字:distinct,在查询时编写到字段的前面加空格即可。

-单字段排重

在查询时,如果指定排重的单个字段产生了重复,则忽略此行数据。

-查询员工的薪资

select salary from emp;

-查询员工的薪资,并对薪资进行重复显示

select distinct salary from emp;

-多字段排重

在查询时,如果指定的多个字段出现重复,则忽略掉此行数据。

-查询员工的薪资与领导编号,并对这两个数据进行排重操作!

select distinct salary,manager_id from emp;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值