安装数据库: 1521端口号 oracle的主服务端口号:使用oracle必须开启oracle主服务 8080端口号 oracle监听端口号:使用网页oracle或者使用工具连接oracle需要开启监听服务
localhost:8080/apex--->网页版oracle
oracle基础前导操作: 1.以管理员方式登录oracle sqlplus system/密码 show user:显示当前登录的用户名字
2.创建新用户briup,密码briup create user briup identified by briup; 3.给新用户briup授权 grant connect,resource to briup;
使用网页版oracle 创建用户: 不推荐 推荐:sqlplus:sql命令创建oracle数据库
3.激活用户: alter user briup account unlock; 4.切换至briup用户 conn briup/briup 5.设置当前会话(session)的日期语言格式 alter session set nls_date_language=english; 6.执行sql文件 start e:/table.txt @路径 7.查询当前用户下有哪些表? select table_name from user_tables;
查看表有哪些列? desc 表名
学习阶段主要涉及表: S_EMP :员工表 id id last_name 后名字 姓 first_name 前名字 名 userid 员工内部编号,没用 start_date 入职日期 comments 注释:记录员工的特点 manager_id 经理的id title 职称 dept_id 所在部门id外键 salary 工资 commission_pct 提成
S_DEPT:部门表 id id name 部门名称 region_id 所在地区id的外键
S_REGION :区域表 id id name 区域名
三张表 主键 外键 关系需要很清楚
oracle二维表中列的数据类型:
1,NUMBER[(p,s)] 数值类型 p代表有效位数 精度(总长度), s代表小数点后位数 刻度 eg: NUMBER(6,2): 123456.00 1234.123 1234.12 123.123
NUMBER(3): 123 12.3 0.123 123.00
2,字符类型: 2.1:CHAR(8) 定长字符类型:占用空间固定 00000tom 0000lisi hello world 不能保存
2.2:VARCHAR(8) mysql 变长字符类型:占用空间 跟着输入有关 2.3:VARCHAR2(8) oracle 变长字符类型:占用空间 跟着输入有关 tom lisi hello world 不能保存 oracle中字符串用 ‘‘表示 oracle关键字不区分大小写,但是字符串区分大小写
3,日期类型:DATE 默认:04-9月-17 3.1:日期类型,世纪年月日时分秒都会保存 3.2:中文语言环境: 系统默认:‘DD-MM-YY‘ eg:‘16-7月-17‘ ---> 2017/7/16 3.3:修改当前语言环境: alter session set nls_date_language=english; 3.4:英文语言环境 系统默认:‘DD-MM-YY‘ eg:‘16-JULY-17‘ ---> 2017/7/16 3.5:修改日期显示格式 alter session set nls_date_format=‘yyyy-mm-dd‘; eg:select sysdate from dual;
【写一个长得和日期一样的字符串】
4,CLOB:超级长字符,整本小说的所有字符串 可以保存
5,BLOB:字节数组:可以用于保存文件的二进制字节数组. 字节数组: byte[]
select 语句 :作用:查询数据 1:distinct :消除重复行,有多条重复数据就只会显示一条
语法: select [distinct] {*|(列名1,列名2...)} from table;
* : 所有的列
样例: (1)查询s_dept表中的所有信息 eg:
select * from s_dept;
(2)查询s_emp表中的last_name,salary eg:
SeleCT LAst_NaME,Salary from S_emP;
(3)查看s_emp表id,last_name,salary字段信息(列) eg:
select id,salary from s_emp;
(5) 查询所有部门名 eg: select name from s_dept; (5.1) 去除重复的行
select distinct name from s_dept;
2,起别名:给某一个列 起别名 语法: select 列1 as 新列名字,列2 as 新列名字... from 表 a.使用as
b.空格后直接跟别名 select 列1 别名1,列2 别名2... from 表
c.使用双引号区分大小写
3,算术运算符 + - * /
查询出来的列是可以运算的
当月工资 加 100;
eg:查询 s_emp 中last_name 列和年薪
4,nvl(参数一,参数二):空值函数 参数一 : 可能为空的列, 参数二 : 如果参数一的列为空 就使用参数二的值代替
单纯查工资和提成: egs: select salary,commission_pct from s_emp;
eg: 查询当月工资: 使用nvl空值函数 进行操作
select salary*(1+ nvl(commission_pct,0) ) from s_emp
5,连接符||:可以将多个字符串或者多个字符串列的值进行拼接 作用:可以将多个列的值或者字符串进行拼接 注意:oracle中字符串使用的是单引号 oracle中单引号表示字符串. 语法: select 列||‘你好‘ from s_emp;
eg:1字符串拼接: hello world
select ‘hello‘||‘world‘ from dual;
?
dual表:哑表-->同义词 任何用户都可以使用, 一般使用做测试.
eg:2字符串拼接列: 姓:last_name
eg:3列拼接列: 名:三 姓 :张
sqlplus 命令特点:
运送sql语句) 把sql语句的结果集展示
: 缓存机制: 1.1:sqlplus会保存最近执行过的一条sql语句(可能是多行) 1.2:每次执行的sql语句都会保存在buffer中,但是会覆盖掉之前的sql语句 :命令 l : 显示刚才执行过的sql语句,并且写到缓存中。 语法: l :命令 / : 执行缓存中的sql语句 语法: / 4 :命令 n : 直接输入一个数字 就是选中某一行--->下面用到的[定位]。 语法: n :命令 a[ppend] : 在【定位】的那一行后面追加新的内容 语法: 先定位 a 被追加的字符串
6 :命令 c[hange] : 在【定位】的那一行修改指定的字符串内容 语法: 先定位 c /old/new
:命令 cl[ear] buff[er] : 清除缓存区中的sql语句 语法: cl buff 或 clear buffer
:命令 del : 删除【定位】的那一行 语法: 先定位 del
9 :命令 i[nput] : 在【定位】的那一行的后一行插入新的一行 语法: 先定位 i 把字符串插入下面一行
0 :命令 l[ist] n : 显示第n行内容 语法: l 4 显示第4行内容
11 :命令 n sql语句 : 重写那一行 语法: 2 from s_dept; //重写第二行
总结: 1,需要已经执行过一条sql语句。就是sqlplus缓存中有一条sql语句 2,需要先选中有问题的那一行, 输入n 定位某一行 3,使用下面相应的关键字 操作
2 :命令 SAVE filename : 将缓存中sql语句保存到本地文件 语法: SAVE 文件名 默认位置:C:UsersAdministrator 3 :命令 GET filename : 将文件中sql语句加载到缓存中,但是不执行sql语句 语法: get 文件名
4 :命令 START filename : 将文件中sql语句加载到缓存中,并且执行sql语句 语法: start 文件全路径+文件名
5 :命令 @ filename : 将文件中sql语句加载到缓存中,并且执行sql语句 语法: @ 文件全路径+文件名
6 :命令 edit filename : 以记事本形式打开文件,编辑sql语句,Ctrl+s保存,关闭。 语法: edit 文件全路径+文件名
7 :命令 ed : 将缓存中sql写到文件afiedt.buf并且打开文件 语法: ed
8 :命令 spool filename : 开始保存 sqlplus输入的任何结果,(录控制台) 语法: spool startPlus.text
9 :命令 spool off : 结束 语法: spool off
注意:spool 和spool off必须要一起使用 作用:记录sqlplus中sql操作
20: :命令 col [{column] [option] : 修改列在sqlplus中的显示格式(样式) option : 取值: cle for hea jus 语法: col name for a15;//修改name列在sqlplus显示的长度为15 20.1:for操作字符串和日期:col 列名 for a12; 把这一列的长度定成12字符
20.2:for操作数字类型: col 列名 for 占位符; 补充: 占位符,用来占数字的位置 1) 9 :不强制补全,就是数字占位符一个9占一个数字位,如果数据数字长度大于9占位符长度就还会显示###, col salary for 99999 就是这一列变成5个长度,因为用了5个9来占位 2) 0 :强制补全 col salary for 00099 就是这一列变成5个长度,因为用了三个0个两个9来占位,但是0是自动补全的,所有会在前面补0直到满足5个长度 3) $ :西方的货币符号 货币符号在一列数据中只能出现一个 col salary for $9999 就是用四个9占位,但是在显示的时候回在前面加一个$号 col salary for $0000 4) L :本地货币符号 同上,但是加的是本地的货币符号 5) . :小数点 就是小数点的意思 col salary for 9999.9999 就是一个四位数精确到小数点后四位。
6),:分隔符 col salary for 9,999.99 在那个地方输出一个,号 20.3: col cle : 清除某一个列的格式 语法: col name cle
20.3: clear columns : 清除所有列的格式
使用: L : 查看缓存sql / : 执行缓存sql n sql : 重写缓存第n行的sql语句 c /old/new : 替换当前选中行的值 save 文件名 : 把缓存中是sql保存到某一个文件 get 文件名 @ 文件名 start 文件名 -----------------------------day1------------------------------ 排序 Order by 1,语法:order by 列名 排序,列名 排序; 升序:asc 如果不写 默认为asc 降序:desc eg:
select id,salary,commission_pct from s_emp order by commission_pct;
null 最大 2,特点: 2.1 : order by放在select语句最后一行,最后,最后,最后 2.2 : 默认升序(asc),降序(desc) 2.3 : order by后面可以跟列名、别名、select后面字段名的序号
不写排序规则就是默认升序排序 eg: select id s_id,salary a from s_emp order by s_id;
显示升序排序 eg:
显示降序排序 eg:
select id,commission_pct from s_emp order by commission_pct desc; 字符串排序是按照ASCII值排序 eg:
按照多个列排序 eg: select id,salary from s_emp order by salary desc,id;
?
注意:如果按照多个列进行排序,多个列之间逗号隔开,先按照第一个列的值进行排序,如果第一个列的值相同,那么会按照第二个列的值进行排序。.......以此类推
按照commission_pct进行排序 select last_name,commission_pct from s_emp order by commission_pct asc; 2.4 : null 表示无限大 (编辑:PHP编程网 - 黄冈站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|