发表于: 2017-07-29 20:10:04
1 803
这两天的一些笔记
------
sqlplus的基本命令:
登录普通用户
sqlplus 用户名/密码
sqlplus -->用户名-->密码
sqlplus 用户名 -->密码
退出
exit
如何使用管理员用户
登录:sqlplus / as sysdba;
管理员用户 通常来设置普通用户的权限问题
解锁:alter user 用户名 account unlock;
加锁:alter user 用户名 account lock;
修改密码
alter user 用户名 identified by 新密码;
切换用户
connect 用户名/密码;
conn 用户名/密码;
显示当前登录的用户
show user;
切换到dba用户:
conn/as sysdba;
查看表结构:
desc 表名;
查看emp表的表结构:
desc emp;
操作数据库选择
1.cmd 2.plsql developer工具 3.oracle自带的plsql 开始->所有程序->orcle->sql plus
建议使用 plsql developer
如何连接远程数据库
使用ip定位
oracle服务和监听
windows services.msc 查看服务
oracle服务
数据库使用的基础 只有服务启动才能操作数据
oracle监听
监听服务 监听服务 服务正常的启动 才能使用客户端进行连接操作
2 sql
查看当前用户下有哪些表
select * from tab;
sql和sqlplus
sqlplus是一种命令,关键字可以简写(缩写) 不可以修改表结构以及表数据
sql 是一种语言,关键字不可以简写 可以修改表结构表数据
增删改查
难点在于查询 单表查询 多表查询
scott用户的表 以及表结构
注释的写法
单行注释 --
多行注释 /* */
sql语句大小写不敏感
EMP 代表的是员工表
DEPT 部门表
BONUS 收入
SALGRADE 薪资等级
-------------------
先学习查询
plsql 代码
些存储过程 存储函数 触发器
jdbc
操作sql
调用存储过程 存储函数
sql语句使用封号结束
别名如果是使用中文 或者严格区分大小写 需要加双引号
使用as来进行连接类名和别名 但是也可以省略
在实际的开发中 别名不要使用中文
提示快捷键 F6
关于空值的处理
空值是null,不等于0,只要算数运算中有空值,那么结果都为空
空值处理可以使用NVL函数进行处理
关于如何连接字符串
1.可以用||来连接,但是如果连接了中文,那么需要换成单引号
2.使用concat()函数,但是其参数只能写两个
distinct
修饰的是多列,返回值的组合是没有重复的,所以达到了一个去重的效果
过滤
比如 查询薪水等于800的员工信息
select * from emp where sal = 800;
!= 和 <>都是不等于的意思
如果有多个条件 需要使用and来进行连接
模糊查询
like
1.以s开头的员工 like 's%';
2.第二个字母是m的员工 '_m';
3.s为结尾的员工 '%s';
排序
order by 列名
ASC是升序
DESC是降序
默认是升序
函数
单行函数 作用于一行数据 返回值为一个
多行函数 作用于多行 返回值一个
日期相关函数
日期默认格式 DD-MM-RR
oracle中 日期可以和字符串进行相互转化,日期需要用单引号''
字符串相关的函数
LOWER()转化小写
UPPER()转化成大写
INITCAP()将首字母大写
CONCAT()
数学相关
ROUND(99,351,1) 四舍五入
TRUNC(X,X) 截断
子查询
当不能一步求解,可以分成多步
子查询注意的点:
子查询包含在小括号中
将子查询方法放在比较运算符的右边
单行操作符对应单行子查询;多行操作符对应多行子查询
-----------
数组是对象,string类型要指向常量池
-----------
单表查询
格式
select 列名1,列名2。。。from 表名
where
group by
having
order by
集合运算
并集 union
交集 intersect
差集 minus 在第一个集合减去第二个集合与之重合的部分
多表查询
比如说查询员工信息 以及 员工所在的部门编号 部门名称
笛卡尔积
表与表之间的创建关系
oracle 连接关系:
等值连接
不等值连接
外连接
左外连接
右外连接
自连接:
非等值连接
员工的姓名 薪水 以及 薪资的等级
select ename,sal,grade
from emp e,salgrade s
where sal between losal and hisal ;
oracle常用的数据类型
number(x) 代表数据类型 数字的长度最多为x
如果是number(x,y),那个y如果是正数,表示小数点后面多少位,负数代表小数点前有多少位
char(n) 字符 字符创储存的长度为n
varchar(n) 如果n=10,他的最大长度为10,但是会在存储数据的时候根据实际的内容长度创建空间
建议使用varchar2(n),因为这个是oracle自己的数据类型
评论