黑马oracle_day01:02.oracle的基本操作
02.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.ZHS16GBK4.重新启动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的错误
=========================================
end