七、其他
1 数据字典
字典:字及对字的解释
数据字典:数据及对数据的解释
(1)系统的数据字典
--主要是数据库对象及对该对象的解释
--是视图 非实际表
user_tables--当前用户下所有表【重要】
dab_tables--数据库管理员管理的表
all_tables--该用户可以看到的所有表
user_tab_columns--当前用户下所有列【重要】
###展示例
select *
from user_tables t
where t.OWNER='ZHANGSAN';
--当前账号下所有表
select *
from dba_tables;
select *
from all_tables t
where t.OWNER='ZHANGSAN';
--是该用户可以看到的所有表
select *
from user_tab_columns t
where t.TABLE_NAME='EMP';
select *
from user_views;
select *
from user_indexes;
select *
from user_tablespaces;
select *
from user_synonyms;
(2)用户的数据字典(码值表)
是用户自建的一个表
一般有三列
type字典类别,key实际值,value对应含义
2 sqlplus
打开命令行窗口输入以下命令
sqlplus scott/scott;
--登录本机的scott账号
sqlplus / as sysdba;
--登录本机的sys账号
sqlplus scott/scott@192.168.1.241/orcl;
-- 登录远程数据库
-- ip+实例名
sqlplus scott/scott@241;
-- 登录远程也可以直接跟tns名
-- tns指oracle自带的Net Mangement中添加的 服务命名
sqlplus -S scott/scott@241;
--静默登录,不显示前面的一些信息
进入后直接在 SQL> 后输入sql语句(一定要有分号)或命令即可
desc emp;
--打印emp的列的信息;
exit;
--退出sqlplus;
登录dba账号后可以执行下列操作
shutdown immediate;
--关闭数据库
startup;
--关闭数据库
3 范式
1.第一范式 1NF
列不可再分
表中如果有一对多关系,要添加中间表
反例:student的home列
2.第二范式 2NF
要求表中的列必须和表有关系,列必须依赖主键
反例:在student添加一列天气
3.第三范式 3NF
要求表中列必须直接依赖主键,而不是其他列
反例:在student表添加一列dormno,因为dormno直接依赖dormid
有时候为了加快查询速度,违反第三范式(增加冗余)也是一种方式
补充信息
1 拟ID数据
insert into building(id) values(sys_guid());
--sys_guid()被成为全球值,每运行一次数据库就会发生变化,可以用来作为主键ID
2 导入dmp数据库数据
工具-导入表-右下角选择-文件-导入-日志
日志:出现只有DBA才能导入DBA错误
登陆sys-sys-sysdba
在SQL界面输入grant dba to scott
在登陆sccot
重新导入即可