| 安装数据库:
 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_pctfrom 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 表示无限大
 (编辑:南平站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |