- Plsql连接远程服务器
1、database书写规范
服务器ip地址+“:”+端口号+“/”+数据库名称
2、简化database
1)进入Oracle服务端的安装路径,找到oracle/product/10.2.0/db_1/NETWORK/ADMIN/tnsnames.ora 文件,在客户端Oracle 按装目录新建config文件夹,将tnsnames.ora文件拷贝到里面。
2)将此配置文件配置到环境变量中,新建环境变量TNS_ADMIN粘贴 tnsnames.ora 路径
- Oracle体系结构
1.数据库
Oracle数据库式数据的物理存储,包括和数据文件ora或者dbf等,Oracle数据库是一个操作系统作为一个大库
2.实例
一个Oracle实例有一系列的后台进程和内存结构组成,一个数据库可以有n个实例
3,用户
在实例下建立的,不同实例可以建立相同名字的用户(MySQL的基本单位是库而Oracle的基本单位为用户即一个用户下有几张表)
4.表空间
是Oracle对物理数据库上相关数据文件(ODA或DBF)的逻辑映射,每个表空间包含了在逻辑上相关联的一组结构。每个数据库至少有 一个表空间(称之为system表空间)
5.数据文件(datafile)
是数据库的物理存储单位,数据库的数据是存储在表空间中的,真正试下某一个或者多个数据文件中。每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件。一个数据文件只能属于一个表空间。一旦数据文件被加到某个表空间后就不能删除这个文件,如果要删除某个数据文件,只能删除其所在的表空间
6.整体结构如下
1、创建
2)创建表空间
Create tablespance ‘表空间名’
3)设计数据文件路径
Datafile ‘路径’
4)设置表空间的初始大小(100M)
Size 100M
5)设置当数据库空间满后是否自动扩展
Autoextend on
6)设置自动扩展中每次扩展的大小(10M)
Next 10M
(只有在最后结束时才加上结束符“;”)
2、删除
Drop tablespace 表空间名称 ;
1、创建用户
Create user 用户名
Identified by 密码
Default tablespace 表空间名 --设置此用户所属的表空间
2、授权用户权限
oracle中的常用角色:
Connect 连接角色,基本角色
Resource 开发者角色
Dba 超级管理员角色
Grant 角色类型 to 用户名
3、切换用户
Session-->log off-->All --退出所有用户
Session-->log on -->任意一个 –在登录页面进行登录
- oracle常用的数据类型
1、varchar2
表示一个可变字符varchar2(n),长度为n
2、number
数字类型,有两种表示方法
Number(n)表示一个整数,长度为n
Number(m,n)表示一个整数长度为m-n或者表示一个小数总长度为m小数位长度为n
3、data
日期类型,精确到时分秒
4、clob
大对象,表示大文本数据类型,可存4G
5、blob
大对象,表示二进制数据,可存4G
- 表操作
1、创建表
Crate table tablename(
Pid varchar2(6) name
Pname varchar2(10)
)
Pid为主键的意思
Oracle创建字段的规则为先字段名称后数据类型
2、修改表
- 添加一列
Alter table 表名 add 字段名称 字段类型 ;
2. 添加多列
Alter table 表名 add (字段名称 字段类型), (字段名称 字段类型);
3. 修改列的类型
Alter table 表名 字段名 modify 字段名 新数据类型
4. 修改列的名称
Alter table 表名 rename column 列名 to 新列名
5.删除一列
Alter table tablename drop column 列名
3、数据的增删改查
1.增加一条数据
Insert into table tablename (字段1,字段二) values (自定义的主键序列.nextval,’字段二的值’);
2.删除一条数据
i.Drop 用于删除表结构
ii.Delete 用于逐条删除数据,对于大批量数据来说。删除数据会由索引的限制,导致效率很慢
iii.Truncate 删除表以后再重建表结构,用于大数据的删除。可无视索引的限制
使用规则:truncate table tablename;
3.修改一条数据
4.查询数据
Select * from tablename;
- 序列
1.主要用于设置表的主键。由于主键是唯一的,为防止多人操作同一张表时出现主键重复的情况,故使用序列代替主键
2.默认从一开始自增,不真属于任何一张表,但是逻辑上可以与表做绑定
3.创建序列方法
Create sequence s_绑定的表名;
4.查询序列的当前序列
Select 序列名.currval from dual;
Currval代表当前序号 nextval代表自增以后的序列号
dual 代表虚表,无意义仅用来补全语法
- 用户操作
1.解锁用户
Alter user 用户名 account unlock;
2.解锁用户密码(可用于重置密码)
Alter user 用户名 identified by 密码;
- 函数
1.单行函数(作用于一行返回一个值)
a)字符函数
i.小写转大写
select upper('yes') from dual;
ii.大写转小写
select lower('YES') from dual;
b).数值函数
i.四舍五入函数,2代表保留的位数,负数代表向前保留
Select round(12.35234,2) from dual; à12.35
ii.舍弃函数,-3代表保留的位数
Select trunc(12311.242,-3) from dual; à12000
c)日期函数
- 例1 查询emp表中所有员工入职距离现在几天
Select sysdate-e.hiredate from emp e;
(sysdate获取当前系统时间)
- 例2 算出明天的现在是什么时间
Select sysdate+1 from dual;
- 例3 查询出emp表中所有员工入职距离现在几个月
Select months_between(sysdate,e.hiredate) from emp e;
months_between(a,b)计算a-b中的月数
- 例4 查询出emp表中所有员工入职距离现在几年
Select (sysdate-e.hiredate)/365 from emp e;
- 例5 查询出emp表中所有员工入职距离现在几周
Select round((sysdate-e.hiredate)/7) from emp e;
round((sysdate-e.hiredate)/7)日期四舍五入取整
d)转换函数
- 日期转换字符串
Select to_char(sysdate,’fm yyyy-mm-dd hh24:mi:ss’) from dual;
to_char(a,b)将a的日期转换成字符串格式
- 字符串转换为日期
Select to_date(‘2017-3-21 17:23:12’, ’fm yyyy-mm-dd hh24:mi:ss’) from dual;
to_date(a,b)将字符类型的a转换成日期的格式
e)通用函数
- 算出emp表中所有员工的年薪(月薪+奖金)
Select e.sal*12+nvl(e.comm,0) from emp e;
nvl(a,b)一旦a里面出现空值,则转换为b,以防止进行运算时出现空值
2.多行函数
(更新中。。。。)