您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > Oracle数据库第2讲
oracle第2讲0.数据库的一些基本概念1.表的管理2.基本查询3.复杂查询4.创建数据库实例主讲李珩oracle数据库基本概念--数据库服务器、数据库和表的关系OracleDBDB表表Client所谓安装数据库服务器,只是在机器上装了一个数据库管理程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体的数据。数据库服务器、数据库和表的关系如图所示:表主讲李珩oracle数据库基本概念--数据在数据库中的存储方式id=1name=“lisi”age=23User对象idnameage1lisi232wang24User表id=2name=“wang”age=24行(row)列(column)表的一行称之为一条记录表中一条记录对应一个java对象的数据User对象主讲李珩oracle数据库表的管理--创建表(基本语句)CREATETABLEtable_name(field1datatype,field2datatype,field3datatype,)field:指定列名datatype:指定列类型注意:创建表时,要根据需保存的数据创建相应的列,并根据数据的类型定义相应的列类型。例:user对象idintnamestringpasswordstringbirthdaydateIdNamePasswordbirthday主讲李珩oracle数据库表的管理—oracle常用数据类型分类数据类型说明文本、二进制类型CHAR(size)char(20)VARCHAR(size)varchar(20)nchar(n)nvarchar2(n)clob(characterlargeobject)blob(binarylargeobject)定长最大2000字符变长最大4000字符Unicode数据类型,定长最大2000字符Unicode数据类型,变长最大4000字符字符型大对象,最大8tb二进制数据可以存放图片/声音8tb数值类型number(p,s)p为整数位,s为小数位.范围:1=p=38,-84=s=127保存数据范围:-1.0e-130=numbervalue1.0e+126保存在机器内部的范围:1~22bytes时间日期dateTIMESTAMP(n)包含年月日,时分秒。默认格式:DD-MM-YYYY。从公元前4712年1月1日到公元4712年12月31日的所有合法日期n的取值为0~9.表示指定TIMESTAMP中秒的小数位数。N为可选。如果n为0,timestamp与date等价[不推荐]◇number可以理解成是一个可变的数值类型,比如number(12),你放一个小整数,它占用的字节数就少,你放一个大整数,它占用的字节数就多,很好!主讲李珩oracle数据库oracle表的管理--oracle支持的数据类型■数值型NUMBER[(precision[,scale])]NUMBER(p,s)范围:1=p=38,-84=s=127保存数据范围:1.0e-130=numbervalue1.0e+126(正区间)-1.0e+126number=-1.0e-130(负区间)保存在机器内部的范围:1~22bytes有效位:从左边第一个不为0的数算起的位数。s0精确到小数点右边s位,并四舍五入。然后检验有效位是否=p。s0精确到小数点左边s位,并四舍五入。然后检验有效位是否=p+|s|。s=0等价于NUMBER(p)此时NUMBER表示整数。主讲李珩oracle数据库oracle表的管理--oracle支持的数据类型■数值型看几个案例:number(5,2)表示一个小数有5位有效数,2位小数。范围-999.99~999.99如果数值超出了位数限制就会被截取多余的位数。但在一行数据中的这个字段输入575.316,则真正保存到字段中的数值是575.32。number(5)=number(5,0)表示一个五位整数,范围-99999~99999。输入57523.316,真正保存的数据是57523主讲李珩oracle数据库oracle表的管理--oracle支持的数据类型■数值型(小练习)ActualDataSpecifiedAsStoredAs----------------------------------------123.89NUMBER123.89123.89NUMBER(3)124123.89NUMBER(6,2)123.89123.89NUMBER(6,1)123.9123.89NUMBER(4,2)exceedsprecision(有效位为5,54)123.89NUMBER(6,-2)100.01234NUMBER(4,5).01234(有效位为4).00012NUMBER(4,5).00012.000127NUMBER(4,5).00013.0000012NUMBER(2,7).0000012.00000123NUMBER(2,7).00000121.2e-4NUMBER(2,5)0.000121.2e-5NUMBER(2,5)0.00001ActualDataSpecifiedAsStoredAs----------------------------------------123.2564NUMBER123.25641234.9876NUMBER(6,2)1234.9912345.12345NUMBER(6,2)Error(有效位为5+26)1234.9876NUMBER(6)1235(s没有表示s=0)12345.345NUMBER(5,-2)123001234567NUMBER(5,-2)123460012345678NUMBER(5,-2)Error(有效位为87)123456789NUMBER(5,-4)1234600001234567890NUMBER(5,-4)Error(有效位为109)12345.58NUMBER(*,1)12345.60.1NUMBER(4,5)Error(0.10000,有效位为54)0.01234567NUMBER(4,5)0.012350.09999NUMBER(4,5)0.09999主讲李珩oracle数据库oracle表的管理—创建表■建表--学生表--班级表包含:班级编号,班级名称字段字段类型Id整形name字符型sex字符型brithday日期型fellowship小数型resume大文本型主讲李珩oracle数据库oracle表的管理—修改表使用ALTERTABLE语句添加,修改,或删除列的语法.ALTERTABLEtablenameADD(columnnamedatatype);ALTERTABLEtableMODIFY(columnnamedatatype);ALTERTABLEtableDROPcolumncolumn;--删除一个字段ALTERTABLEtableDROP(column1,…);--删除多个字段修改表的名称:rename表名to新表名主讲李珩oracle数据库oracle表的管理—修改表练习○练习1.给学生表添加班级编号2.学生姓名变成varchar2(30)3学生姓名变成char(30)4.删除学生表的fellowship字段5.把学生表名student修改成stu6.删除学生表主讲李珩oracle数据库oracle表的管理—crud(create/retrieve/update/delete)Insert语句(增加数据)Update语句(更新数据)Delete语句(删除数据)Select语句(查找数据)主讲李珩oracle数据库oracle表的管理—添加数据INSERTINTOtable[(column[,column...])]VALUES(value[,value...]);使用INSERT语句向表中插入数据。插入的数据应与字段的数据类型相同。数据的大小应在列的规定范围内,例如:不能将一个长度为80的字符串加入到长度为40的列中。在values中列出的数据位置必须与被加入的列的排列位置相对应。字符和日期型数据应包含在单引号中。插入空值,不指定或insertintotablevalue(null)主讲李珩oracle数据库oracle表的管理—添加数据•练习:使用insert语句向表中插入三个学生的信息。注意:字符和日期要包含在单引号中。字段字段类型Id整形name字符型sex字符型brithday日期型fellowship小数型resume大文本型主讲李珩oracle数据库oracle表的管理—添加数据■插入部分字段■插入空值INSERTINTOtable[(column[,column...])]VALUES(value[,value...]);主讲李珩oracle数据库oracle表的管理—修改数据UPDATEtbl_nameSETcol_name1=expr1[,col_name2=expr2...][WHEREwhere_definition]使用update语句修改表中数据。UPDATE语法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要给予哪些值。WHERE子句指定应更新哪些行。如没有WHERE子句,则更新所有的行。(特别小心)主讲李珩oracle数据库oracle表的管理—修改数据练习■改一个字段根据学号修改性别.■修改多个字段根据学号修改性别和生日■修改含有null值的数据要求将所有学生薪水修改为5000元。将姓名为’zs’的学生薪水修改为3000元。将’lisi’的薪水在原有基础上增加1000元。将没有奖学金同学的奖学金改成10元主讲李珩oracle数据库oracle表的管理—删除数据deletefromtbl_name[WHEREwhere_definition]使用delete语句删除表中数据。如果不使用where子句,将删除表中所有数据。Delete语句不能删除某一列的值(可使用update)使用delete语句仅删除记录,不删除表本身。如要删除表,使用droptable语句。同insert和update一样,从一个表中删除记录将引起其它表的参照完整性问题,在修改数据库数据时,头脑中应该始终不要忘记这个潜在的问题。主讲李珩oracle数据库oracle表的管理—删除数据■删除数据deletefrom表名;删除所有记录,表结构还在,写日志,可以恢复的,速度慢droptable表名;删除表的结构和数据deletefromstudentwherexh='A001';删除一条记录truncatetable表名;删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快主讲李珩oracle数据库oracle表基本查询—介绍■介绍在我们讲解的过程中我们利用scott用户存在的几张表(emp,dept,salgrade)为大家演示如何使用select语句,select语句在软件编程中非常的有用,希望大家好好的掌握主讲李珩oracle数据库oracle表基本查询—介绍SELECT[DISTINCT]*|{column1,column2.column3..}FROMtable[where{条件}];Select指定查询哪些列的数据。column指定列名。*号代表查询所有列。From指定查询哪张表。where是条件DISTINCT可选,指显示结果时,是否剔除重复数据基本select语句主讲李珩oracle数据库oracle表基本查询—简单的查询语句■查看表结构sqldesc表名;■查询所有列select*from表名;■查询指定列select列1,列2…from表名;■如何取消重复行selectdistinctdeptno,jobfromemp;?查询SMITH的薪水,工作,所在部门主讲李珩ora
本文标题:Oracle数据库第2讲
链接地址:https://www.777doc.com/doc-12530 .html