oracle1基本用法:

安装oracle11、plsq

一、开启服务

五个服务,设置为手动,需要使用的时候再手动启动,因为oracle占据内存过大,也可以使用.bat脚本启动:

编写oracle启动脚本:

1.创建记事本文件,输入下面的内容,然后后缀名改为.bat

net start OracleOraDb11g_home1TNSListener

net start OracleServiceORCL

2.编写oracle关闭脚本,将start改为stop即可。

二、oracle的用户:

oracle有三个默认用户:

1、 sys 用户

相当于mysql中root用户,是超级用户,该用户维护系统信息和数据库字典的所有表和视图。数据备份,恢复,上层更改数据操作,一般使用该用户

2.system用户

默认管理员用户,拥有DBA(database admin)权限,管理和使用一些内部表和视图。管理其他用户功能,比如用户的创建修改删除赋权等

3.scott用户

是oracle用来示范的一个用户,用来练习学习。里面有四张示例表,比较常用的有两个,demp部门表和emp员工表。

三、数据类型

1.字符类型:

        char和varchar2()在mysql里是char和varchar,注意区分。varchar2是可变类型,最大长度为4000字节

char类型时固定长度,比如设定 sex char(1),这里最大长度为1,如果姓名设置为char(10)这里因为姓名长度不可变,如果姓名没有占完10个字节,就会导致内存浪费,别的字段不能使用剩余的内存,但是varchar2设置的长度如果字节没有用完,那么其他字段可以接着使用。

2.数值类型:

        number和number()

        number用来表示整形,在oracle里原本是没有int类型的,但是后来加了int类型作为number的子类。

        number(m,n)用来表示浮点型,相当于mysql的double和float,m代表小数的总长度,n代表小数点后的长度。比如salary number(8,2)代表工资的总长度为8。保留两位小数,那么最大值为999999.99。

3.日期类型:

        date普通的日期类型,可以精确到秒,一般的日期类型使用足够了,

        timestamp,可以精确倒秒后六位,在进行精确计算,比如科学研究或者运动会计时时可以用到。

4.大对象类型,

        clob,比如在数据库里需要插入某类新闻时用到,毕竟varhcar2只能存储4000字节,也就是3kb多一点,clob可以存储4g。

        blob,大对象存储,一般用于存储视频、二进制文件等。

四、plsq基本使用,运行汉化程序,一路下一步,然后打开plsq。

        1、

2、在第一次安装plsq时,需要先注册:

3.根据自己的需求登录不同的用户:

        需要练习或演示时使用scott用户

        

五、简单的sql语句操作:

1、文件---新建文件--sql窗口:

       在工具--首选项--sql测试里勾选自动提交sql,自动提交事务,不然做出来的操作,只能在当前窗口生效。

--创建表:
创建年级表
drop table tb_grade;
create table tb_grade(
 id number(3) primary key,--和mysql不同,这里不能设置主键自增。
 name varchar(20) not null,--非空约束,unique唯一约束、
 describe varchar2(30),
 starttime date
);
--创建班级表,并设置外键和年级表做关联。
drop table tb_class;
create table tb_class(
 id number(3) primary key,
 name varchar2(10) not null,
 describe varchar2(30),
 cnum number(3),
 gid number(3),
 constraint fk_id foreign key(gid) references tb_grade(id)
);

 创建完表后,想查看表结构除了右键表名选择编辑以外,可以文件--新建文件--命令窗口。

 更改表结构:

--更改表结构:
 alter table tb_class add startdate date; --为表添加列,
 alter table tb_class modify describe varchar2(15);--更改列类型,如果说列里面已经有数据了,类型不能变,
                                                    --长度也不能变的比已有数据小。
 alter table tb_class drop column startdate;--删除列。
 

增删改查:

 --增删改查:
 --单独插入数据:日期类型需要使用to_date('插入时间','日期格式'),也可以使用sysdate插入当前数据库时间。
 insert into tb_grade values(5,'研究生','出师',to_date('1992-02-04 02:23:33','YYYY-MM-DD HH:MI:SS'));
 --批量插入:
 --注意,dual是虚表,为了让sql语言更完整,拼凑出来的而已,没有实际含义。union是联合查询,union all是过滤重复查询。
 insert into tb_grade
 select 2,'大二','入门',sysdate from dual union
 select 3,'大三','精英',sysdate from dual union
  select 4,'大四','学霸',sysdate from dual;
  --更改和删除和mysql一样:
  update tb_grade set describe ='学渣' where id =1;
  delete from tb_grade where id =5;
 select * from tb_grade;

序列:因为oracle没办法想mysql那样设置主键递增,所以需要我们自己创建序列,使其自增:

 --序列的创建
 create sequence seq_tbgrade_id
 increment by 1 --设置每次序列自增的数值
 start with 5 --自增数值的初始值
 maxvalue 100 --最大的自增数值,默认是27个9
 minvalue 5   --自增的最小值,不能比初始值大
 --一般情况下不需要设置序列的详细信息,按默认值来就好,
 --具体用法:
 insert into tb_grade values(seq_tbgrade_id.nextval,'研究生','出师',sysdate);
 create sequence seq_tbclass_id;
 insert into tb_class values(seq_tbclass_id.nextval,'112','二班',54,3);
 --批量插入序列
 insert into tb_class(id,name,describe,cnum,gid)
 select seq_tbclass_id.nextval,name,describe,cnum,gid from(
 select '113'as name,'三班'as describe,56 as cnum,2 as gid from dual union all
  select '114' as name,'四班'as describe,44 as cnum,1 as gid from dual union all
   select '115' as name,'五班'as describe,12 as cnum,4 as gid from dual
 );

 select * from tb_class;

伪列的使用:和虚表差不多,都不是实际存在的,只是需要用到的时候拉过来凑数而已

--伪列的使用:
 select rowid,rownum from tb_class;--rowid一次给表中的每一行填上对应id ,rownum则添加序号。
 --使用rowid删除表中的重复项:
 --准备工作,先在班级表中添加重复项:
 insert into tb_class values(seq_tbclass_id.nextval,'112','二班',54,3);
 insert into tb_class values(seq_tbclass_id.nextval,'115','五班',12,4);
 

 利用伪列将多余数据删掉:先找出来名字相同的列,并且查到他的伪列最小值,凡是rowid比他大的都删掉就好了。

 delete from tb_class a where rowid>(
  select min(rowid) from tb_class b where b.name =a.name 
 );

利用伪列进行分页:

 --通过伪列分页:
 select * from emp;
 --查询出来第六条到第九条数据,注意,在括号里面的rownum只能写小于号,不能大于。
 select * from(
 select rownum rn,e.* from emp e where rownum <10
 )a where a.rn>5

更改密码过期时限:

初次安装数据库默认密码为180天:

select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;--更改为永不过期。

设置密码不区分大小写:(使用命令窗口)

SQL< alter system set sec_case_sensitive_logon=false;

设置最大会话数:

1.查询数据库当前进程的连接数:
  select count(*) from v$process;
  2.查看数据库当前会话的连接数:
  select count(*) from v$session;

  3.查看数据库的并发连接数:
  select count(*) from v$session where status='ACTIVE';
  4.查看当前数据库建立的会话情况:
  select sid,serial#,username,program,machine,status from v$session;
  5.查询数据库允许的最大连接数:
  select value from v$parameter where name = 'processes';
  或者命令:show parameter processes;
  6.修改数据库允许的最大连接数:
  alter system set processes = 500 scope = spfile;
  (需要重启数据库才能实现连接数的修改)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值