黑马oracle_day01:02.oracle的基本操作

01.oracle体系结构

02.oracle的基本操作

03.oracle的查询

04.oracle对象

05.oracle编程

02.oracle的基本操作

PLSQL中文乱码问题解决
1.查看服务器端编码

select userenv('language') from dual;

我实际查到的结果为:AMERICAN_AMERICA.ZHS16GBK
2.执行语句 select * from V$NLS_PARAMETERS; 
查看第一行中PARAMETER项中为NLS_LANGUAGE 对应的VALUE项中是否和第一步得到的值一样。
如果不是,需要设置环境变量。
否则PLSQL客户端使用的编码和服务器端编码不一致,插入中文时就会出现乱码。
3.设置环境变量
计算机->属性->高级系统设置->环境变量->新建
 设置变量名:

NLS_LANG

 变量值:第1步查到的值, 我的是

AMERICAN_AMERICA.ZHS16GBK

4.重新启动PLSQL,插入数据正常。

PLSQL连接数据库报错问题解决

1.解决ERROR-ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务

# listener.ora Network Configuration File: C:\oracle\product\10.2.0\db_1\network\admin\listener.ora

# listener.ora Network Configuration File: C:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = ORCL)
      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
      (GLOBAL_DBNAME = ORCL)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.72.128)(PORT = 1521))
    )
  )

2.解决连接Oracle 11g报ORA-01034和ORA-27101的错误

sqlplus /nolog

conn / as sysdba

startup

04创建表空间、创建用户以及用户授权

 

 

-- 创建表空间
create tablespace itheima
datafile 'c:\oracle\itheima.dbf'
size 100m
autoextend on
next 10m;

-- 删除表空间
drop tablespace itheima;
-- 创建用户
create user marlon
-- 设置用户密码
identified by root
-- 设置所属表空间
default tablespace itheima;
-- 给用户授权
-- oracle数据库中常用角色
connect --连接角色,基本角色
resource --开发者角色
dba --超级管理员
-- 给kangmianfeng授予dba角色
grant dba to kangmianfeng;

-- 切换到kangmianfeng用户下(Session-Logoff-all ---> Session-Logon-kangmianfeng)

-- 查看当前USER_TABLES所属的表空间
SELECT TABLE_NAME,TABLESPACE_NAME FROM USER_TABLES

05数据类型介绍和表的创建

 

-- 创建一个person表
create table person(
    pid number(20),
    pname varchar2(10)

);

 

06修改表结构

-- 修改表结构
-- 添加一列
alter table person add (gender number(1));

 

-- 修改列类型
alter table person modify (gender char(1));-- char长度固定
-- 修改列名称
alter table person rename column gender to sex;
-- 删除一列
alter table person drop column sex;

 

07数据的增删改

-- 查询表中记录
select * from person;
-- 添加一条记录
insert into person (pid, pname) values (110111,'小明');
commit;-- 手动提交事务
-- 修改一条记录
update person set pname='小马' where pid = 110111;
commit;

----三个删除
-- 删除表中全部记录
delete from person;
-- 删除表结构
drop table person;
-- 在数据量大的情况下,尤其在表中带有索引的情况下
-- 该操作效率高
-- 索引可以提高查询效率,但是会影响增删改效率
truncate table person;

 

08序列的使用

----- oracle的序列不真的属于任何一张表,但是逻辑上可以和表做绑定。

----- 序列默认从1开始,以此递增,主要用来给主键赋值使用。

----- dual:虚表,只是为了补全oracle的语法,没有任何意义。

-- 创建一个序列
create sequence s_person;
select s_person.nextval from dual;
select s_person.currval from dual;
-- 添加/插入一条记录
insert into person (pid, pname) values (s_person.nextval,'小明');
commit;-- 提交事务
-- 查询表中记录
select * from person; 

      create sequence 序列名
---- [INCREMENT BY n] 每次增加n(默认增加1)
---- [START WITH n] 从n开始;

 

=========================================

参考资料:

ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

解决连接Oracle 11g报ORA-01034和ORA-27101的错误

ORACLE的CONNECT和RESOURCE角色权限

=========================================

end

posted @ 2019-09-17 07:25  Marlon康  阅读(477)  评论(0编辑  收藏  举报