黑马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:oracleproduct10.2.0db_1 etworkadminlistener.ora

# listener.ora Network Configuration File: C:oracleproduct10.2.0db_1
etworkadminlistener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:oracleproduct10.2.0db_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = ORCL)
      (ORACLE_HOME = C:oracleproduct10.2.0db_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:oracleitheima.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

部分内容来自于学习编程期间收集于网络的免费分享资源和工作后购买的付费内容。
原文地址:https://www.cnblogs.com/MarlonKang/p/11531336.html