oracle命令与数据库连接.docx
- 文档编号:3674815
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:15
- 大小:20.60KB
oracle命令与数据库连接.docx
《oracle命令与数据库连接.docx》由会员分享,可在线阅读,更多相关《oracle命令与数据库连接.docx(15页珍藏版)》请在冰豆网上搜索。
oracle命令与数据库连接
sqlplus/nolog
descuser_tables;(遍历此表)
setsqlblanklineson
select*
from
dept
;
setsqlblanklinesoff
colmgrformata5;
select*fromemp;
colmgrformat9999;
selectsysdatefromdual;
select2*3fromdual;
violated违规validate使有效,确认
select*
from
emp
2
*from
change/ro/or
change/or/or
list
/执行以上修改的那条语句
SQL>select
2
3*form
4emp;
*form
*
ERRORatline3:
ORA-00923:
FROMkeywordnotfoundwhereexpected
SQL>3
3**form
SQL>change/*form/*from
3**from
SQL>list
1select
2
3*from
4*emp
SQL>/
EMPNOENAMEJOBMGRHIREDATESALCOMM
-------------------------------------------------------------------------
DEPTNO
----------
7369SMITHCLERK790217-12月-80800
20
7499ALLENSALESMAN769820-2月-811600300
30
7521WARDSALESMAN769822-2月-811250500
30
EMPNOENAMEJOBMGRHIREDATESALCOMM
-------------------------------------------------------------------------
DEPTNO
----------
7566JONESMANAGER783902-4月-812975
20
7654MARTINSALESMAN769828-9月-8112501400
30
7698BLAKEMANAGER783901-5月-812850
30
EMPNOENAMEJOBMGRHIREDATESALCOMM
-------------------------------------------------------------------------
DEPTNO
----------
7782CLARKMANAGER783909-6月-812450
10
7788SCOTTANALYST756619-4月-873000
20
7839KINGPRESIDENT17-11月-815000
10
EMPNOENAMEJOBMGRHIREDATESALCOMM
-------------------------------------------------------------------------
DEPTNO
----------
7844TURNERSALESMAN769808-9月-8115000
30
7876ADAMSCLERK778823-5月-871100
20
7900JAMESCLERK769803-12月-81950
30
EMPNOENAMEJOBMGRHIREDATESALCOMM
-------------------------------------------------------------------------
DEPTNO
----------
7902F_FORDANALYST756603-12月-813000
20
7934MILLERCLERK778223-1月-821300
10
14rowsselected.
SQL>select
2*form
3emp;
*form
*
ERRORatline2:
ORA-00923:
FROMkeywordnotfoundwhereexpected
SQL>2
2**form
SQL>change/or/ro
2**from
SQL>/
EMPNOENAMEJOBMGRHIREDATESALCOMM
-------------------------------------------------------------------------
DEPTNO
----------
7782CLARKMANAGER783909-6月-812450
10
7788SCOTTANALYST756619-4月-873000
20
7839KINGPRESIDENT17-11月-815000
10
14rowsselected.
SQL>spooloff
select*fromempwheredeptno=20andjob=‘MANAGER’;
出现norowsselected的原因有:
字符大小写不匹配另外就是表中确实不存在
select*fromempwheredeptno=&no;
之后提示输入no
1
/
以上三行用着方便,查过一个之后,再按相通关键字类型可一不用重复输入
SQL>select*fromempwheredeptno=&no;
Entervalueforno:
20
old1:
select*fromempwheredeptno=&no
new1:
select*fromempwheredeptno=20
EMPNOENAMEJOBMGRHIREDATESALCOMM
-------------------------------------------------------------------------
DEPTNO
----------
7876ADAMSCLERK778823-5月-871100
20
7902F_FORDANALYST756603-12月-813000
20
SQL>1
1*select*fromempwheredeptno=&no
SQL>10
SP2-0226:
Invalidlinenumber
SQL>/
Entervalueforno:
10;
old1:
select*fromempwheredeptno=&no
new1:
select*fromempwheredeptno=10;
select*fromempwheredeptno=10;
*
ERRORatline1:
ORA-00911:
invalidcharacter
SQL>1
1*select*fromempwheredeptno=&no
SQL>/
Entervalueforno:
10
old1:
select*fromempwheredeptno=&no
new1:
select*fromempwheredeptno=10
EMPNOENAMEJOBMGRHIREDATESALCOMM
-------------------------------------------------------------------------
DEPTNO
----------
7782CLARKMANAGER783909-6月-812450
10
7839KINGPRESIDENT17-11月-815000
10
7934MILLERCLERK778223-1月-821300
10
SQL>1
1*select*fromempwheredeptno=&no
SQL>/
Entervalueforno:
30
old1:
select*fromempwheredeptno=&no
new1:
select*fromempwheredeptno=30
EMPNOENAMEJOBMGRHIREDATESALCOMM
-------------------------------------------------------------------------
DEPTNO
----------
7499ALLENSALESMAN769820-2月-811600300
30
7521WARDSALESMAN769822-2月-811250500
30
7654MARTINSALESMAN769828-9月-8112501400
30
6rowsselected.
追加
a(ppend)所要追加的东西
删除
del(delete)所要删除的东西,可以删除多项,中间隔空格
用save保存命令一组语句以/结束:
save路径名(路径名中不带斜杠)
@路径名(此路径名有斜杠)
select*fromempwheredeptno=20;
select*fromempwheredeptno=10;
/多了此斜杠会多执行一遍最后一个句子;
edit会自动弹出一文件当文件关闭时才能继续往下写
insufficientprivileleges没有足够的权限constraint约束
授权之后必须连接才能使用此用户
javascript是怎么执行的:
有时候是顺序执行,有时候不是,就想写一函数,有时候调用时采用,则此是不是顺序执行
数据库:
1:
缓存
软盘
硬盘离cpu越近运行越快
new出来的对象放在堆里
DBDatabase数据库
DBAdatabaseadministrator数据管理员
DBMSdatabasemanagementsystem数据库管理系统
DBSdatabasesystem数据库系统
LOG日志文件
DBF数据库文件
CTL控制文件
非归档日志文件归档日志文件
数据库的加载顺序:
先加载控制文件接着有控制文件打开日志文件,有控制文件控制数据文件和日志文件
参数文件调用控制文件,用控制文件
SGAsystemglobearea系统全局区
如果一普通用户创建表时出现错误:
没有权限进入users表空间,就给他授权resource或dba给此普通用户
对一普通用户授权DBA之后便可以操作进行所有的操作
grantdbatotom;
解除授权
revokedbafromtom;
conn/assysdba
grantunlimitedtablespacetotom;
grantunlimitedtablespacetopp;
不等号的写法有两种:
!
=<>
altertablebook1addconstraint字符unique(字段名);
试一下这条语句在有主键和无主键的情况下有什么不同;(在有主键和无主键的情况下都能用,只是在用这句话之前表里面必须没有数据)
0不是null空值
in关键字用来求指定的字段中拥有值的所有注意其与between。
。
。
and的区别
inconsistent不一致的
缺少逗点misssingcomma(因为print_date为日期,数据类型应该为date)
instr(字段名,指定的东西)查寻在某一表中的给定字段中是否有指定的东西
select*fromuser_role_privs;用来查询当前用户都有什么权限;
表:
字段:
很多属性:
块
数据文件
如果想查找一普通用户创建的所有表该怎么做:
selecttable_namefromuser_tables;
escape用来定义那个字符为转义符
自己连接自己:
也就是说把一张表当两张表用
having用时必须与groupby一起吗?
groupby可以与where连用吗?
当一张表中含有外键,当插入数据时,外间的值必须在另外一张表中存在;才能插入
integrityconstraint外键约束
两张表连接的两种方式
+表时左联接以那个表所做的查询放在那
外键用来做什么(数据库的三范式)?
第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。
如果出现重复的属性,就可能需要定义一个新的实体,
新的实体由重复的属性构成,新实体与原实体之间为一对多关系。
在第一范式(1NF)中表的每一行只包含一个实例的信息。
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。
第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分。
为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。
数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字。
假定选课关系表为SelectCourse(学号,姓名,年龄,课程名称,成绩,学分),关键字为组合关键字(学号,课程名称),因为存在如下决定关系:
(学号,课程名称)→(姓名,年龄,成绩,学分)
这个数据库表不满足第二范式,因为存在如下决定关系:
(课程名称)→(学分)
(学号)→(姓名,年龄)
即存在组合关键字中的字段决定非关键字的情况。
由于不符合2NF,这个选课关系表会存在如下问题:
(1)数据冗余:
同一门课程由n个学生选修,"学分"就重复n-1次;同一个学生选修了m门课程,姓名和年龄就重复了m-1次。
(2)更新异常:
若调整了某门课程的学分,数据表中所有行的"学分"值都要更新,否则会出现同一门课程学分不同的情况。
(3)插入异常:
假设要开设一门新的课程,暂时还没有人选修。
这样,由于还没有"学号"关键字,课程名称和学分也无法记录入数据库。
(4)删除异常:
假设一批学生已经完成课程的选修,这些选修记录就应该从数据库表中删除。
但是,与此同时,课程名称和学分信息也被删除了。
很显然,这也会导致插入异常。
把选课关系表SelectCourse改为如下三个表:
学生:
Student(学号,姓名,年龄);
课程:
Course(课程名称,学分);
选课关系:
SelectCourse(学号,课程名称,成绩)。
这样的数据库表是符合第二范式的,消除了数据冗余、更新异常、插入异常和删除异常。
另外,所有单关键字的数据库表都符合第二范式,因为不可能存在组合关键字。
第三范式(3NF)是要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。
例如,存在一个
部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。
那么在图3-2的员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。
如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。
简而言之,第三范式就是属性不依赖于其它非主属性。
满足第三范式(3NF)必须先满足第二范式(2NF)。
第三范式(3NF):
在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。
所谓传递函数依赖,指的是如果存在"A→B→C"的决定关系,则C传递函数依赖于A。
因此,满足第三范式的数据库表应该不存在如下依赖关系:
关键字段→非关键字段x→非关键字段y
假定学生关系表为Student(学号,姓名,年龄,所在学院,学院地点,学院电话),关键字为单一关键字"学号",因为存在如下决定关系:
(学号)→(姓名,年龄,所在学院,学院地点,学院电话)
这个数据库是符合2NF的,但是不符合3NF,因为存在如下决定关系:
(学号)→(所在学院)→(学院地点,学院电话)
即存在非关键字段"学院地点"、"学院电话"对关键字段"学号"的传递函数依赖。
它也会存在数据冗余、更新异常、插入异常和删除异常的情况,读者可自行分析得知。
把学生关系表分为如下两个表:
学生:
(学号,姓名,年龄,所在学院);
学院:
(学院,地点,电话)。
这样的数据库表是符合第三范式的,消除了数据冗余、更新异常、插入异常和删除异常。
视图:
安全,方便,与原有表相符视图不能带参数
sequence保证不会有重复的
DDL定义语言:
create
DCL控制语言:
授权grant撤销revoke
DML操作语言insertupdatedeleteselect
事务的完整性和一致性,隔离性;commit与rollback提交之后就不能回来了
锁的机制
减少对于oracle核心的访问,降低网络责任
数据库数据类型
————单行注释
/**/多行注释
三种异常类型:
nodatafound
manyvalues
游标是plsql的控制结构
存储过程未完
怎么从一个用户下解除其他用户所能对其中表的操作?
JDBC的用途
简单地说,JDBC可做三件事:
与数据库建立连接、发送SQL语句并处理结果。
下列代码段给出了以上三步的基本示例:
jsp连接Oracle8/8i/9i数据库(用thin模式)
testoracle.jsp如下:
<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.sql.*"%>
<%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
Stringurl="jdbc:
oracle:
thin:
@localhost:
1521:
orcl";
//orcl为你的数据库的SID
Stringuser="scott";
Stringpassword="tiger";
Connectionconn=DriverManager.getConnection(url,user,password);
Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
Stringsql="select*fromtest";
ResultSetrs=stmt.executeQuery(sql);
while(rs.next()){%>
您的第一个字段内容为:
<%=rs.getString
(1)%>
您的第二个字段内容为:
<%=rs.getString
(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
二、jsp连接SqlServer7.0/2000数据库
testsqlserver.jsp如下:
<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.sql.*"%>
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
Stringurl="jdbc:
microsoft:
sqlserver:
//localhost:
1433;DatabaseName=pubs";
//pubs为你的数据库的
Stringuser="sa";
Stringpassword="";
Connectionconn=DriverManager.getConnection(url,user,password);
Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
Stringsql="select*fromtest";
ResultSetrs=stmt.executeQuery(sql);
while(rs.next()){%>
您的第一个字段内容为:
<%=rs.getString
(1)%>
您的第二个字段内容为:
<%=rs.getString
(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
六、jsp连接MySQL数据库
testmysql.jsp如下:
<%@pagecontentType="text/html;charset=gb2312"%>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 命令 数据库连接