sql
文章平均质量分 62
sql语法与原理
m0_73505947
这个作者很懒,什么都没留下…
展开
-
视图的使用
这时就可以为这一模块创建一个视图,开发人员只能看到和操作通过这一视图所看到的数据,虽然这些数据是来自不同的表,但对于开发人员来说这些数据就好像来自一个表一样。当模块的功能变化需要不同的数据时,需要改变的只是相应的视图而不需要改变真正的表。研究表明:虽然随着用户的需求的变化,模块的变化几乎是不可避免的,但是信息系统中的数据却几乎是不变的(数据的排列可能会变化)。因为接下去的工作已经很轻松了,只要将这个图中的实体转换成关系数据库的表,将实体与实体之间的关系转换成关系数据库的约束即可。可以限制数据库的访问。原创 2023-04-12 11:31:42 · 670 阅读 · 0 评论 -
索引与约束的使用
约束是加在表上的,因为只有表中存有数据。例13-10的结果表明:在组合索引EMPCON JOB SAL IDX 中最左边的索引关键字(列)JOB的COLUMN POSITION 的值为1,而组合索引 EMPCON JOB_SAL_IDX中左边第二位的索引关键字(列)SAL的COLUMN_POSITION的值为2。由于图书目录是按一定的顺序排放的,会很快地找到所需要的书的记录,在该记录中标有此书存放的准确位子,这时您就可直奔存书的地方了。与一般的索引不同的是,基于函数的索引中的索引关键字是表达式而不是列。原创 2023-04-09 17:27:42 · 941 阅读 · 0 评论 -
数据的维护
当有人对数据库中的数据进行任何写操作(即DML操作)时,Oracle 数据库系统首先将原始的数据复制到回滚段中,之后才做相应的操作,在事务处理结束之前其他的用户可以读这些数据,但读的是回滚段上的数据。Oracle 数据库系统的这一设计确实大大地提高了大型的商业数据库的效率,但这一设计也会产生数据的不一致,因为在同一时刻,同一个数据可能会有两个不同的值。注意:|在使用UPDATE 语句来修改表中的记录时,如果WHERE子句中的条件写错了,就会造成该修改的记录没改而不该修改的记录都改了。原创 2023-04-08 16:14:20 · 538 阅读 · 0 评论 -
替代变量的使用
为了以后的演示方便,您可以先将例11-7的SQL语句存入一个叫JOB的脚本文件,如例11-8。由于我们已经使用例11-19的SQL语句将替代变量v.job赋为CLERK,所以Oracle 系统已经记住了这次的输入值并不再提示输入而是直接把CLERK作为变量v_job的值来使用。用这样的方法开发的软件用户是很难满意的。当运行例11-2的SQL语句时,Oracle系统会给出:"输入v_salary的值:"的提示,此时可以输入任何您感兴趣的工资值,如1600,按回车键之后,您就会得到所需要的结果。原创 2023-04-07 16:09:12 · 490 阅读 · 0 评论 -
创建表的语句和例子
假设您的公司在其他国家或城市有许多个分公司,这些分公司的一些分析员要使用统计软件对 emp 表中的一些列进行大规模的统计分析,这些分析可能需要反复查询 emp 表,假设 emp 表存有一百多万行数据,如果这些分析员都访问总公司的 Oracle 服务器上的表emp的话,网络的流量可能会非常大,这样对网络压力和对总公司的Oracle服务器的压力都会很大,系统的整体效率会大幅度下降。所谓的数据库设计就是表的设计。LONG数据类型的列最多可以存储2G的数据,而LOB数据类型的列最多可以存储4G的数据。原创 2023-04-06 14:23:18 · 3265 阅读 · 0 评论 -
数据字典和数据字典视图
考虑到系统效率,Oracle服务器以最简捷(最快)的方式来操作数据字典的基表,所以,数据字典的基表中所存的数据就像天书一样,几乎是没什么人能看得懂。它们包括了用户名、用户的权限、对象名、约束和审计等方面的信息。如果您刚被某公司聘为Oracle数据库管理员,想知道您所管理的Oracle数据库的名字和创建日期等信息,可使用数据字典vSdatabase来得到有关的信息。ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息再加。USER_*:有关用户所拥有的对象的信息,即用户自己创建的对象的信息。原创 2023-04-05 19:57:18 · 507 阅读 · 0 评论 -
控制SQL*PLUS的环境和数据字典简介
可以使用例9-17 的SQL*PLUS命令把标题LOC设置为Location,之后再重新输入与例9-16完全相同的查询语句,如例9-18。可以使用如例9-15的SQL*PLUS命令来把该列的宽度设置为9个字符,之后再重新输入与例9-12完全相同的查询语句,如例9-16。如果已经记不清它们的格式了,可以使用例9-21和例9-22的SQL*PLUS命令来得到所需的信息。从例9-25 显示的结果很难看出工资(SAL)的单位到底是什么,可以先使用例9-26 的SQL*PLUS命令来格式化SAL列。原创 2023-04-05 19:49:00 · 298 阅读 · 0 评论 -
子询查操作
因此写查询语句的人一定要保证子查询中的WHERE子句的条件成立并返回惟一的值。在例8-5中的子查询中一定不能含有GROUP BY子句,因为该子句将使子查询返回多值如果在子查询中加入了GROUP BY子句,Oracie会返回错误信息,如例8-6的查询语句。例8-3中括号内的查询叫子查询(Subquery)或内查询(Inner query),括号外的查询叫主查询(Main query)或外查询(Outer query)。例8-3的查询语句包含了一个子查询,它与例8-2显示的结果完全相同。原创 2023-03-29 11:37:05 · 118 阅读 · 0 评论 -
多表连接使用
尽管例7-11的查询结果与例7-7自连接(Selfjoin)的查询结果完全一样,但这样做需要多创建一个表manager,而表 manager 的内容全部来自表 emp。实际上例7-25相当于例7-26的查询语句。例7-22的查询语句是用SQL:1999语法的一个多表连接,它所显示的结果与例7-12 的相等连接的结果完全相同。显然,例7-23显示的结果与例7-22的完全一样,查询语句中只要把例7-22的关键字WHERE换成了AND就行了。例7-20所显示的结果与例7-1的相等连接的结果完全相同。原创 2023-03-28 19:33:03 · 363 阅读 · 0 评论 -
表规范化过程
这样就把最初的一个表分拆成了图7-7、图7-8、图7-9的3个表。仔细分析图7-3所示的Order表您就会发现,我们只要知道了某一商品的商品号就能知道该商品的全部信息,即商品其他部分的信息只依赖于商品号。消除重复组(Repeating Groups)和部分依赖的表为第二范式(2NF)的表,因此图7-5 (Order)所示的表已经是第二范式(2NF)的表了。因此产生的数据的冗余已经大大地减少。如果一个表是第一范式(1NF)的表,并且它的主键由一列(单一属性)组成,那么该表自动地成为第二范式(2NF)的表。原创 2023-03-28 15:15:27 · 255 阅读 · 0 评论 -
综合数据和分组函数
从例6-7的显示结果可以看出,查询的结果是按GROUPBY子句中列的由小到大的顺序排列(升序排序),这也是使用GROUP BY子句时Oracle默认的排序方式。可以使用例6-9的查询语句来得到按职位(job)分类(job并没有包含在SELECT子句中)的每类员工的平均工资,并且显示的结果是按职位(job)由小到大的顺序排列的(升序)。可以使用例6-8的查询语句来得到按职位(job)分类的每类员工的平均工资,并且显示的结果是按平均工资(average salary)由大到小的顺序排列(降序)。原创 2023-03-25 11:12:38 · 255 阅读 · 0 评论 -
NULL 值的处理、逻辑操作和函数嵌套
(1)算术运算符→(2)连接运算符→(3)比较(关系)运算符→(4)IS NULL,IS NOT NULL,LIKE,NOT LIKE,IN,NOT IN 运算符→(5)BETWEEN,NOT BETWEEN 运算符→(6)NOT逻辑运算符→(7)AND逻辑运算符→(8)OR逻辑运算符。按照运算符的优先级,Oracle 首先执行由黑体部分组成的条件,即找出所有的文员(CLERK)和推销员(SALESMAN),接下来找出工资在1300元或以上的员工;它的值是没有定义的、未知的、不确定的。原创 2023-03-21 10:55:04 · 409 阅读 · 0 评论 -
RR 日期格式的算法和实例
(2)如果当前年份的最后两位数(即不包括世纪)为0~49,并且指定的年份的最后两位数为50~99,则返回的日期为上一世纪。(4)如果当前年份的最后两位数(即不包括世纪)为50~99,并且指定的年份的最后两位数也为50~99,则返回的日期在本世纪。(3)如果当前年份的最后两位数(即不包括世纪)为50~99,并且指定的年份的最后两位数为0~49,则返回的日期为下一世纪。(1)如果当前年份的最后两位数(即不包括世纪)为0~49,并且指定的年份的最后两位数也为0~49,则返回的日期在本世纪。原创 2023-03-20 09:59:45 · 128 阅读 · 0 评论 -
不同数据类型之间的显式转换
为了能在一行中显示日期数据HIREDATE,可以使用例4-47的SQL*PLUS命令将HIREDATE的输出宽度加长为60个字符。之后,可以使用例4-48的查询语句以得到员工的名字(Name),工资(Salary)和雇用日期(HIREDATE)的信息。您还可以使用SP和TH,它们分别为数字的英文表示和数字的序数表示。其中例4-45中的'DD/MM/YY'为日期模式,它们必须用单引号括起来。该函数的这种格式把日期型数据转换成变长字符串,其中,fmt为日期模式。YYYY:完整的年份数字表示(如2001);原创 2023-03-16 09:58:01 · 105 阅读 · 0 评论 -
不同数据类型之间的隐含转换
数字型(NUMBER)的数据与日期型(DATE)的数据之间不能进行直接转换。在将字符类型的数据转换为日期型时,要保证字符型数据为有效的日期,否则转换不能成功。■ 将变长字符型(VARCHAR2)或定长字符型(CHAR)转换成数字型(NUMBER);■ 将变长字符型(VARCHAR2)或定长字符型(CHAR)转换成数字型(NUMBER);■ 将变长字符型(VARCHAR2)或定长字符型(CHAR)转换成日期型(DATE);■ 将变长字符型(VARCHAR2)或定长字符型(CHAR)转换成日期型(DATE)。原创 2023-03-14 11:04:22 · 195 阅读 · 0 评论 -
ROUND和TRUNC函数用于日期型数据
ROUND和TRUNC函数用于日期型数据原创 2023-03-14 10:58:15 · 253 阅读 · 0 评论 -
日期函数的使用
日期函数的使用原创 2023-03-14 10:39:02 · 128 阅读 · 0 评论 -
【日期型数据的处理】
日期型数据的处理原创 2023-03-12 16:11:52 · 106 阅读 · 0 评论 -
常用的数字型函数
因为300比400小,不够除,所以余数就为300。应该记住Oracle的这一规定。该函数将列名或表达式所表示的数值四舍五入到小数点后的n位。该函数将列名或表达式所表示的数值截取到小数点后的n位。该函数将m除以n并取余数。原创 2023-03-10 10:56:16 · 203 阅读 · 0 评论 -
使用单行字符型函数的实例
使用单行字符型函数的实例原创 2023-03-10 10:42:42 · 38 阅读 · 0 评论 -
单行函数的使用
单行函数的使用原创 2023-03-09 11:06:01 · 64 阅读 · 0 评论 -
常用的SQL*PLUS命令
常用的SQL*PLUS命令原创 2023-03-06 11:56:17 · 310 阅读 · 0 评论 -
限制性查询和数据的排序
限制性查询和数据的排序原创 2023-03-04 17:32:18 · 46 阅读 · 0 评论 -
简单查询SELECT
简单查询SELECT原创 2022-08-31 20:18:24 · 204 阅读 · 0 评论 -
sql编码规则
编码规则原创 2022-08-31 12:48:11 · 157 阅读 · 0 评论 -
sql编程工具
sql编程工具原创 2022-08-31 12:45:24 · 322 阅读 · 0 评论 -
sql常见定义
sql常见定义原创 2022-08-31 12:43:14 · 306 阅读 · 0 评论 -
SQL语言
sql语言原创 2022-08-31 12:31:37 · 217 阅读 · 0 评论 -
SQL的发展史
sql发展史原创 2022-08-31 12:23:46 · 1455 阅读 · 1 评论