本教程主要根据慕课网视频:Oracle数据库开发必备利器之SQL基础 整理
不建议选择此页面的数据库客户端界面下载Oracle的Client,因为与数据库版本匹配一致的Client可能没有(主要是oracle11.2.0.1.0的客户端没有,所以想下载客户端请到1.2)
选择11g,点击进入选择数据库页面,注意选择下载的数据库版本
参考文章:
(1)https://blog.csdn.net/qs17809259715/article/details/88782096
(2)推荐:https://www.cnblogs.com/oukele/p/10886217.html
注意:Database Control URL是:https://localhost:1158/em (是https,不是http)
普通管理员:system,密码:设置的口令
超级管理员:用户名:sys,密码:设置的口令
本次使用的是PL/SQL的解压版,无需安装。
PL/SQL解压后,找到plsqldev.exe双击打开,当显示登陆的时候,点击cancel,进入到PL/SQL界面后
然后配置与数据库版本一致的oci.dll,这里的Oracle Home和OCI Library都是可以手动输入的,所以手动输入oci的所在目录,然后点击OK完成配置。
重新启动PL/SQL,然后在登录界面输入
(1)username:用户名
(2)Password:口令
(3)Database:数据库地址,如果PL/SQL和Oracle在同一台电脑上,则不需要输入地址,只输入orcl即可;如果PL/SQL和Oracle不在同一台电脑上,则要加上Oracle所在电脑的IP地址。
(4)Connect as:以什么权限连接,如果是普通用户,Normal;一般默认即可。
用户名和口令,数据库,以什么权限连接
show user;
desc dba_users;
alter user username(用户名) account unlock;
(1)理解表空间:
(2)表空间分类:
(1)dba_tablespaces、user_tablespaces数据表:
//查看数据结构
DESC dba_tablespaces;
select tablespace_name[,status] from dba_tablespaces;
select tablespace_name from user_tablespaces;
(2)dba_users、user_users数据表:用来查询用户。
(3)设置用户的默认或临时表空间:
ALTER USER username DEFAULT|TEMPORARY TABLESPACE tablespace_name;
注意:普通用户没有这个权限,管理员可以修改,也可以为普通用户设置。
(1)创建表空间:
//永久表空间
CREATE TABLESPACE tablespace_name DATAFILE 'xx.dbf' SIZE xx;
//临时表空间
CREATE TEMPORARY TABLESPACE tablespace_name TEMPFILE 'xx.dbf' SIZE xx;
DATAFILE:设置表空间数据文件,xx.dbf是数据文件的名称,最好设置数据文件的所在路径。
SIZE:设置数据文件大小。
//创建永久表空间,数据文件大小可扩展
CREATE TABLESPACE tablespace_name DATAFILE 'xx.dbf' SIZE 10M autoextend on next 50M maxsize unlimited;
追加:
创建用户 随便分配表空间
CREATE USER username IDENTIFIED BY "123456" DEFAULT TABLESPACE TEST profile DEFAULT ACCOUNT UNLOCK;
给用户最高权限
GRANT dba TO username;
查询目录:
SELECT * FROM dba_directories;
创建数据导入/出存储地址
CREATE DIRECTORY mydatas AS 'D:\oracleData';
导入数据:
impdp 用户名/密码@orcl transform=segment_attributes:n directory=mydatas[导入文件所在路径] dumpfile=XX.DMP remap_tablespace=TEST:XX remap_schema=ptuser:ptuser7 logfile=ims20171123.log
注意:transform=segment_attributes:n忽略expdp导出时附带的相关表空间和存储子句约束
注意:remap_schema 前者是导出用户后者是导入用户
注意:remap_tablespace=a:b 前者是导出表空间,后者是导入
导出数据:
expdp 用户名/密码6@orcl schemas=ptuser3 directory=mydatas dumpfile=xx.dmp version=11.2.0.1.0
注意Oracle数据库导入导出时需要保持数据库版本一致,所以在导出数据时,version必须设置对。
(2)查看永久表空间所在路径:
DESC dba_data_files;
SELECT file_name,tablespace_name FROM dba_data_files;
(3)查看临时表空间所在路径:
DESC dba_temp_files;
(4)修改表空间(永久表空间):
①设置在线或离线状态:(默认在线)
//在线
ALTER TABLESPACE tablespace_name ONLINE;
//离线
ALTER TABLESPACE tablespace_name OFFLINE;
②查看表空间的状态:
请看4.4.2查看用户的表空间节内容;
③设置只读或可读写状态:(默认可读写状态)
//只读
ALTER TABLESPACE tablespace_name READ ONLY;
//可读写
ALTER TABLESPACE tablespace_name READ WRITE;
注意:只有表空间是在线状态才能修改此处的状态。
①查看表空间的数据文件:
在 dba_data_files 中可查看
②增加数据文件:
ALTER TABLESPACE tablespace_name ADD DATAFILE 'xx.dbf' SIZE xx;
③删除数据文件:
ALTER TABLESPACE tablespace_name DROP DATAFILE 'xx.dbf';
注意:不能删除默认的数据文件,即表空间中只有一个数据文件时无法删除。
(5)删除表空间:
//删除表空间,不删除表空间里的数据文件
DROP TABLESPACE tablespace_name;
//删除表空间,同时删除表空间里的数据文件
DROP TABLESPACE tablespace_name INCLUDING CONTENTS;
(1)数据表是存储在Oracle数据库的表空间中
(2)表是数据的基本存储单位
(3)二维结构:由行和列组成
(1)字符型
CHAR(n):固定长度的类型,n最大为2000;
NCHAR(n):固定长度的类型,n最大为1000,按照Unicode格式来存放数据【常用来存储汉字】;
VARCHAR2(n):可变长度的类型,n最大为4000;
NVARCHAR2(n):可变长度的类型, n最大为2000;
(2)数值型
NUMBR(p,s):p代表几位有效数字,s代表保留几位小数;
FLOAT(n):保存二进制数据;
(3)日期型
DATE:表示范围—》公元前4712年1月1号到公元9999年12月31号,可以精确到秒;(常用)
TIMESTAMP:时间戳,可以精确到小数秒,比DATE更精确。
(4)其他类型
BLOB:存放二进制的数据,二进制数据一般指的是文件数据,包括音频、视频、文件等。
CLOB:以字符串形式存放二进制的数据;
(1)创建表
同MYSQL的语法,略
(2)修改表
同MYSQL的语法,略
(3)删除表中数据
//删除表中全部数据
TRUNCATE table_name;
(4)删除表
//删除表中全部数据
DROP TABLE table_name;
SELECT 'ALTER TABLE ' || table_name || ' enable CONSTRAINT ' || constraint_name || ';' FROM user_constraints where CONSTRAINT_TYPE = 'R';
SELECT 'DROP table '|| table_name || ';' FROM USER_TABLES ORDER BY TABLE_NAME;