SQL学习心得
《SQL必知必会》读后感

《SQL必知必会》读后感
《SQL必知必会》是一本我在学习数据库管理系统时读过的一本书,它对于初学者来说是一本非常好的入门教材。
通过阅读这本书,我对SQL语言有了更深入的理解,并且能够更加熟练地应用它来进行数据库操作。
首先,我想谈谈这本书的内容安排。
作者在书中将SQL语言的基本概念和语法规则进行了系统地介绍,从简单的查询语句到复杂的数据操作,每一章节都有清晰的结构和逻辑,让读者能够循序渐进地学习。
此外,书中还包含了大量的实例和练习题,这些实例和练习题能够帮助读者更好地理解和掌握SQL语言,提高实际操作能力。
其次,我想说说这本书的语言表达。
作者用简洁明了的语言对SQL语言进行了解释和介绍,避免了过多的专业术语和复杂的概念,使得读者能够轻松理解和消化。
此外,作者还通过生动的例子和图表来说明概念,让读者能够更加直观地理解SQL语言的应用场景和操作方法。
最后,我想总结一下我在阅读《SQL必知必会》这本书时的收获。
通过学习这本书,我不仅对SQL语言有了更深入的了解,还学会了如何设计和管理数据库,提高了自己的数据处理和分析能力。
我相信,在今后的学习和工作中,我会继续运用这些知识和技能,不断提升自己的专业水平。
总的来说,我认为《SQL必知必会》是一本非常优秀的数据库管理系统入门教材,它不仅内容丰富,结构清晰,而且语言简洁,实用性强。
我相信,任何对数据库管理系统感兴趣的人都会从中受益匪浅。
希望更多的人能够阅读这本书,提升自己的数据库管理能力,为自己的学习和工作打下坚实的基础。
sql 心得体会

sql 心得体会SQL(Structured Query Language)是一种用于管理和操作关系型数据库的语言,作为一名软件工程师,我曾经多次使用SQL来编写和优化数据库查询。
通过这些经验,我从中获得了许多心得体会。
首先,SQL的语法简单易懂。
与其他编程语言相比,SQL的语法更加简洁,逻辑也更加直观。
通过使用关键字如SELECT、FROM、WHERE等,我们可以轻松地编写各种查询语句,从数据库中检索所需的数据。
此外,SQL还提供了丰富的聚合函数和操作符,使得我们能够对数据进行各种计算和处理。
其次,SQL的查询效率高。
数据库的设计和索引对查询的性能有着重要的影响,合理地设计和优化数据库结构,可以提升查询的效率。
通过使用适当的索引、联接和聚合函数,我们可以轻松地处理数千万条甚至更多的数据,而且查询的响应时间仍然可以保持在可接受的范围内。
然而,需要注意的是,不合理的查询和缺乏索引等问题可能导致查询性能下降,因此在编写SQL查询时,我们需要注意性能优化的技巧和方法。
此外,SQL还提供了事务处理的支持。
事务是一组对数据库的操作,这些操作要么全部成功执行,要么全部失败回滚。
通过对一系列操作进行事务处理,我们可以确保数据库的一致性和完整性。
例如,在转账操作中,如果某一步操作失败了,我们可以通过事务回滚将数据库恢复到操作之前的状态,从而保证数据的正确性。
虽然SQL有很多优点,但也存在着一些限制。
例如,SQL无法有效地处理复杂的层次结构数据,如JSON和XML。
此外,SQL对于大规模并发访问和高吞吐量的需求也存在一定的挑战。
为了解决这些问题,业界提出了一些解决方案,如NoSQL数据库和分布式数据库,它们在某些特定场景下能够提供更好的性能和扩展能力。
总的来说,SQL是一种强大的数据库查询语言,具有简单易懂、高效和强大的事务处理能力等优点。
通过掌握和灵活运用SQL,我们可以更好地管理和操作数据库,提高数据处理的效率。
SQL实习总结四篇

SQL实习总结四篇SQL实习总结四篇SQL实习总结篇一:为期一周的实训已经结束,从这一周中,有了许多的感悟。
从学到和把握到的东西来说,在书本上学到的东西特别不坚固,然而实训真的让我受益匪浅!实训第一天到教室时,看到老师给我们讲试训的内容与要求,然后告知我们一些要完成的任务与作业,然后依据试训的内容与要求授课,让我们从实践中去体会所学的学问。
说实话,对于SQL Server 数据库,我所学到的学问很不坚固,当时在课堂上听课所记住的也并不多,所以在试训开头时,真的不知道该干些什么?有一种“何去何从”的感觉!但随着老师的教课和讲解,以及和同学的争论,再结合自己所知道的学问和老师所发放下的课程内容,依据这些实际的状况,我对自己将要做的事也有了爱好和信念。
所以在接下来的时间中,我们在老师的关心下开头了数据库相关的实训。
在这次的google订餐系统的设计过程中,我们依据该google 订餐系统的功能,将其分解三大部分来完成,第一部分就是建立数据库和表,并给其添加约束;其次是角色的管理,分为管理员,订餐用户和餐馆;第三就是用编程语言建立管理菜单。
所以试训的内容是从数据库和数据表的创建和修改开头的,表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表属性,有查看表信息,修改表中数据,删除表中的数据以及修改表与删除表的操作。
我们以SQL Server数据库为基础,建立一个google 订餐系统的数据库管理体系,并将数据库与程序连接,用编程语言建立数据库管理菜单。
老师给我们讲了库和表的创建方法,以及约束的内心及其语法结构,让我们知道了不同约束的功能和使用的环境,还给我们说了标识列的使用和作用。
讲了数据库的操作,增删改查。
使我们把握了into,d from,set,以及select*from语句的的相关学问和运用。
其中还学到了分页查询以及多表查询。
从这次试训中让我们更明白了一些学问,表是数据库最重要的一个数据对象,表的创建好坏直接关系到数据库的成败,表的内容是越详细越好,但是也不能太繁琐,以后在实际运用中使用多表,对表的规划和理解就会越深刻。
sql实验体会

sql实验体会
我在学习SQL时进行了一些实验,以下是我的体会:
一、实验环境的搭建
在进行SQL实验前,需要先搭建好实验环境。
我选择使用了MySQL数据库和Navicat数据库管理工具。
在安装过程中,需要注意版本的匹配,以及安装路径的选择。
安装完成后,需要进行一些配置,如设置数据库的字符集、创建数据库和用户等。
二、实验内容的学习
SQL实验的内容包括SQL语句的基本操作、数据表的创建和管理、数据的增删改查等。
在学习过程中,我通过阅读相关的教材和网上的资料,了解了SQL语言的基本语法和常用命令。
同时,我也通过实践操作,加深了对SQL语言的理解和掌握。
三、实验过程中的问题与解决
在进行SQL实验的过程中,我遇到了一些问题,如SQL语句的语法错误、数据表的创建失败等。
针对这些问题,我通过查找资料和请教老师同学等途径,逐一
解决了这些问题。
在解决问题的过程中,我也加深了对SQL语言的理解和掌握。
四、实验的收获与体会
通过进行SQL实验,我收获了以下几点:
1. 对SQL语言有了更深入的理解和掌握;
2. 学会了如何使用数据库管理工具Navicat;
3. 学会了如何创建和管理数据表;
4. 学会了如何进行数据的增删改查等操作;
5. 培养了解决问题的能力和技巧。
总之,通过进行SQL实验,我不仅加深了对SQL语言的理解和掌握,也提高了自己的实践能力和解决问题的能力。
sql必知必会读后感

sql必知必会读后感
摘要:
一、全文概述
二、SQL基础概念与重要性
三、SQL学习的挑战与心得
四、推荐与建议
正文:
【一、全文概述】
在这篇文章中,我们将谈论关于SQL必知必会这本书的读后感。
文章将分为四个部分,分别是SQL基础概念与重要性,SQL学习的挑战与心得,以及推荐与建议。
通过本文,我们希望为广大读者提供有关SQL学习的有用信息和建议。
【二、SQL基础概念与重要性】
SQL(结构化查询语言)是一种用于管理关系型数据库的编程语言。
它具有简洁、高效、可读性强等特点,被广泛应用于各个行业的数据处理和分析工作中。
掌握SQL语言不仅有助于更好地管理数据库,还能提高数据处理效率,为企业带来实际价值。
【三、SQL学习的挑战与心得】
在学习SQL过程中,可能会遇到一些挑战,如理解SQL基础概念、掌握各种查询语句、处理数据类型兼容性问题等。
要克服这些挑战,需要不断学习和实践。
通过实际操作,我们可以更好地理解SQL的原理和应用,从而提高自
己的技能水平。
【四、推荐与建议】
对于想要学习SQL的读者,我们推荐阅读《SQL必知必会》这本书。
该书详细介绍了SQL的基础知识和高级技巧,适合初学者和有经验的开发者阅读。
此外,我们还建议参加在线课程、加入技术社区、阅读相关博客和文章,以便在实践中不断学习和提高。
通过本文,我们希望能够帮助读者更好地了解SQL的学习过程和技巧,为大家在SQL领域的发展提供参考和指导。
sql数据库学习心得体会

sql数据库学习心得体会在学习SQL数据库的过程中,我深刻感受到了它在现代信息技术中的重要性和实用性。
下面,我将分享我对SQL数据库学习的心得体会。
首先,在学习SQL数据库的过程中,我深刻认识到数据库管理系统的重要性。
数据库管理系统是基于计算机的数据管理技术的核心,它能够对数据进行高效地存储、管理和处理。
学习SQL数据库就是学习如何使用数据库管理系统来操作数据,这对于掌握数据管理技术至关重要。
其次,学习SQL数据库要注重理论和实践的结合。
在学习数据库的理论知识的同时,通过实际操作来实践所学的知识。
只有理论和实践相结合,才能更加深入地理解和掌握数据库技术。
另外,学习SQL数据库需要养成良好的习惯。
在编写SQL语句时,要注意规范和简洁。
规范的SQL语句能够提高程序的可读性和效率,减少错误的发生。
同时,还要养成备份和恢复数据的习惯,以防止数据丢失和损坏。
此外,学习SQL数据库还需要不断地扩充知识面。
数据库技术是一个庞大而复杂的领域,需要不断地学习和研究。
在学习的过程中,要善于利用各种资源,如书籍、网络和论坛等,深入研究相关知识,不断提高自己的技术水平。
最后,学习SQL数据库还需要灵活运用所学知识。
数据库技术在实际应用中具有极大的灵活性,可以用于各种需求场景。
学习SQL数据库不仅要了解基本的增删改查操作,还要学会运用更高级的技巧和方法,如数据分析、数据挖掘和性能优化等。
总之,学习SQL数据库是一项极具挑战性和实用性的工作。
在学习的过程中,我们需要注重理论和实践的结合,养成良好的习惯,扩充知识面,灵活运用所学的知识。
只有不断地学习和提高,我们才能在数据库技术领域中有所建树。
相信通过对SQL数据库的学习,我将为将来的工作和研究打下坚实的基础。
SQL语言学习工作总结范文_半年学习工作总结

SQL语言学习工作总结范文_半年学习工作总结半年来,我专注于学习SQL语言,并将其应用于工作中。
通过不断的学习和实践,在半年的时间里,我取得了一些积极的成果。
在学习SQL语言方面,我注重理论与实践相结合。
在理论学习方面,我通读了相关的教材和文档,并深入理解了SQL语言的基本概念、语法和操作方式。
我还参加了相关的在线课程和培训班,通过听讲、做笔记和互动学习,加深了对SQL语言的理解。
在实践方面,我充分利用工作中的SQL数据库,通过编写和执行SQL语句来解决实际问题。
我将学习到的知识运用到项目中,例如创建、修改和查询数据库表,写入和更新数据以及执行复杂的查询和连接操作。
通过实践,我不仅熟悉了SQL语法的应用,还深入了解了数据库的结构和运行机制,对数据库管理有了更全面的认识。
在工作中,我充分发挥了SQL语言的优势,提高了工作效率。
通过编写SQL语句,我成功实现了数据的快速查询、统计和分析,为部门的决策提供了准确的数据支持。
我优化了旧有的SQL语句,提高了查询的速度和效率,减少了系统的响应时间。
我还使用SQL语言进行数据清洗和数据整合,使得数据的质量得到了提高,提供了更准确、可靠的数据基础。
在与团队成员的合作中,我积极传递SQL知识,提升了整个团队的数据处理能力。
我与团队成员分享了SQL语言的学习心得和经验,在日常工作中指导他们更好地使用SQL语言。
在项目中,我与团队合作,给出了SQL解决方案,并与他们共同完成了一些数据库操作和查询任务,为项目的顺利进行做出了贡献。
通过半年的学习和工作实践,我对SQL语言的应用和数据库管理有了更深入的理解。
我熟悉SQL语言的基本概念和语法,并能够独立解决一些数据库问题和查询需求。
在工作中,我充分发挥了SQL的优势,提高了工作效率,并与团队成员共同合作,为项目的顺利进行做出了贡献。
未来,我将继续深化对SQL语言的学习和应用,不断提升自己的数据库管理能力。
sql实验心得

sql实验心得在进行SQL实验的过程中,我积累了一些心得体会。
通过这些实验,我进一步熟悉了SQL语言的使用,学会了如何设计和优化数据库的结构,也提升了自己的数据处理和查询能力。
下面我将分享我在实验中的一些经验和感悟。
一、实验环境的搭建SQL实验需要一个合适的环境来完成。
在开始实验之前,我们需要安装数据库软件并进行相应的配置。
建议选择一款常用的数据库管理系统,例如MySQL、Oracle或者SQL Server。
选择合适的数据库软件可以大大提高实验的效率和便利性。
二、数据库设计在进行SQL实验之前,正确的数据库设计是非常重要的。
好的数据库设计能够提高数据的存储效率、查询效率和数据的安全性。
在设计数据库时,我们需要考虑到数据表之间的关系、主键和外键的设置、字段的类型和长度等方面。
同时,我们还需要注意避免冗余和不一致的数据,保持数据库的结构简洁和规范。
三、SQL语句的书写在书写SQL语句时,我们应该遵循一定的规范。
首先,我们要采用良好的命名规范,保证表名、字段名和索引名的清晰和易于理解。
其次,我们要注意SQL语句的格式,合理的缩进和换行可以提高代码的可读性。
此外,我们还要注意注释的使用,对于复杂的SQL语句,注释可以起到解释和说明的作用。
四、SQL语句的优化SQL查询的性能是一个重要的考量因素。
在编写SQL语句之前,我们应该先考虑查询的效率和性能。
首先,我们要避免在查询中使用通配符,尽可能精确地指定需要查询的字段。
其次,我们要注意索引的使用,通过合理地创建索引可以加快查询速度。
此外,我们还可以采用分页查询、批量操作等方式来提高查询的效率。
五、错误处理和调试在进行SQL实验时,我们难免会遇到一些错误。
当遇到错误时,我们首先要保持冷静,仔细分析错误的原因。
可以通过查阅数据库的文档或者使用搜索引擎来寻找解决方案。
同时,我们可以使用调试工具来定位错误的位置,并逐步排查和修复问题。
六、学习资源和实践机会SQL语言是一门广泛应用于数据库管理和数据处理的语言,因此学习资源是非常丰富的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL(Structured Query Language)--- 结构化查询语言SQL是在关系数据库中执行数据操作,检索,维护所使用的标准语言,可以用来查询数据,操作数据,定义数据,控制数据执行SQL语句时用户只需要知道其逻辑含义,而不需要知道SQL语句的具体执行步骤。
------数据库对象通常包含表,视图,索引,序列【数据定义语言DDL】-->表结构Data Definition Language,用于建立,修改,删除数据库对象,不需要事务的参与,自动提交。
——CREATE:创建表或其他对象的结构CREATE TABLE table_name(column_name datatype [DEFAULT expr],………………………………………………);Eg:--创建表empCREATE TABLE emp(id NUMBER(10),name VARCHAR2(20),gender CHAR(1),birth DATE,salary NUMBER(6,2),job VARCHAR2(30),deptid NUMBER(2));——ALTER:修改表或其他对象的结构修改表名:RENAME old_name TO new_name (新表名不能使数据库中已有的表)增加列:ALTER TABLE table_name ADD(column_name datatype[DEFAULT],……………………………);(新增列只能在表的最后一列追加)删除列:ALTER TABLE table_name DROP(column_name);(删除不需要的列)删除字段需要从每行中删掉该字段占据的长度和数据,并释放在数据块中占据的空间,如果表记录比较大,删除字段可能需要比较长的时间。
修改列:ALTER TABLE table_name MODIFY(column_name datatype[DEFAULT],……………………………);(修改仅对以后插入的数据有效,修改字段前的所有数据不受影响)修改时一般类型不改,改长度,尽量往长里改,因为如果表中已经有数据的情况下,把长度由大改小,有可能不成功——DROP:删除表或其他对象的结构DROP TABLE table_name——TRUNCATE:删除表数据,保留表结构TRUNCATE TABLE table_name可以通过DESC table_name 查看表结构【数据操作语言DML】-->表结构中的数据 Data Manipulation Language,用于改变数据表中的数据,和事务是相关,执行完DML操作后必须经过事务控制语句提交后才真正的将改变应用到数据库中——INSRET:将数据插入到数据表中INSERT INTO table_name[(column[, column…])]VALUES(value[, value…]); (每执行一次增加一条记录)指定向哪些列插入对应的值,没有指定的列:若设有默认值(DEFAULT),那么插入的就是该默认值,否则插入null,若某列设为not null,执行INSERT语句时又没指定该列,那么插入会抛出违反不为空的约束条件,若不写指定的列,默认所有列插入,每一列的值VALUE都不能少——UPDATE:更新数据表中已存在的数据UPDATE table_nameSET column = value[,column = value]……[WHERE condition]; --若不写where子句,全表所有行的column都被更新——DElETE:删除表中的数据DELETE [FROM] table_name[WHERE condition]; --若不写where子句,全表所有行数据都被删除另注意与DDL中的TRUNCATE的区别:* 二者都是删除表记录,DELETE可以有条件的删(WHERE),TRUNCATE是将表数据全部删除 * DELETE是DML,可以回退(ROLLBACK),TRUNCATE是DDL,立即生效,无法回退* 如果删除的是全部表记录,且数据量较大,TRUNCATE速度更快【事务控制语言TCL】Transaction Control Language,用来维护数据的一致性——COMMIT:提交,确认已经进行的数据改变——ROLLBACK:回滚,取消已经进行的数据改变——SAVEPOINT:保存点,使当前事务可以回退到指定的保存点,便于取消部分改变Eg:DDL 范畴,控制表结构不需要TCL参与,自动提交DML 范畴,控制表结构中的数据经TCL确认后,才会真正生效,否则是“假象”【数据控制语言DCL】Data Control Language,用于执行权限的授予和收回操作——GRANT:授予,用于给用户或角色授予权限——REVOKR:用于回收用户或角色已有的权限——CREATE USER:创建用户【数据查询语言DQL】Data Query Language,用来查询需要的语句★补充知识点★数据类型:定义表中每一列可以使用的数据格式和范围,用来保证数据类型的格式和有效性➢字符串操作:Oracle中的字符串是用单引号(‘’)括起来的,注意与Java的区别1.字符串类型:CAHR,VARCHAR2 表示字符串数据类型,用来在表中存放字符串信息几点说明:——在数据库中CHAR,V ARCHAR表示的是字符串,注意与java的区别——CHAR(N),V ARCHAR2(N) 指定的是字节数,不是字符数——V ARCHAR2是Oracle独有的数据类型,和其他数据库中的VARCHAR作用一样,加2 是Oracle为以后新增一个字符类型,而又不改变原有V ARCHAR定义的长远考虑LONG:VARCHAR2 的加长版,也是存储变长字符串,最多可达2GB的字符串数据,LONG有诸多限制:每张表只能有一个LONG类型列;不能作为主键;不能建立索引;不能出现在查询条件中……CLOB:LONG的改进版,存储定长或变长字符串,最多可达4GB的字符串数据,Oracle建议用CLOB替代LONGEg:UTF-8环境下:varchar2英文占1个字节,中文占3个字节,nvarchar2英文占2个字节,中文占2个字节GBK环境下: varchar2英文占1个字节,中文占2个字节,nvarchar2英文占1个字节中文占3个字节2.字符串函数:【补充】虚表dual的概念:在数据库中,我们想要测试某个表达式的结果只能使用SELECT语句来实现DUAL,虚表,没有这么一个表,只是为了满足SELECT的语法要求我们常用虚表来测试表达式的结果当SELECT后没有一张表的字段参与时,FROM后就用虚表a:CONCAT(char 1,char 2):返回char1和 char2连接后的结果相当于Java中的“+”等价操作:连接操作符“||”CONCAT的参数只能有两个,若多个字符串CHAR连接,需嵌套使用,如果char1 和 char2 任何一个为NULL,相当于连接了一个空格SELECT CONCAT('I',CONCAT ('LIKE','Oracle'))FROM dualSELECT 'I'||'LIKE'||'Oracle'FROM dualb:LENGTH(char):获取字符串的长度(字符个数)若字符类型是VARCHAR2,返回字符的实际长度若字符类型是CHAR,长度还有包括补充的空格SELECT ename,LENGTH(ename)FROM emp_yysc:UPPER(char):字符串转大写SELECT upper('asfadg') FROM duald:LOWER(char):字符串转小写SELECT lower('asAAAS') FROM duale:INITCAP(char):将字符串中每个单词的首字母转大写,其他字符小写,单词之间用空格或非字母分隔SELECT initcap('as%NGSY isaT') FROM dualf:TRIM(c2 FROM c1):去掉字符串c1两侧的t2g:LTRIM(c1,[c2]):从c1的左侧截去c2h:RTRIM(c1,[c2]):从c1的右侧截去c2注:TRIM,LTRIM,RTRIM 中,如果没有c2,就截去空格TRIM的c2只能是单一字符,LTRIM,RTRIM中的c2可以是多字符,且多字符不管顺序,只要出现就截若c1中不包含c2,则无法截取,原样输出c1在LTRIM,RTRIM 中,若c2不是c1的最左/右端,则无法截取,原样输出c1SELECT TRIM('1' FROM '1sd1') FROM dualSELECT LTRIM('eaaeeeehaha','ae')FROM dualSELECT RTRIM('aaahaha','o') FROM duali:LPAD(原字符串 , 总长度 , 填充字符串):左补齐j:RPAD(原字符串 , 总长度 , 填充字符串):右补齐要求显示N个字符,若char1的值不足长度,则在L/R补充若干个char2,以达到N个字符,不够则补,刚好则原样,超了则择取到N (都是从左—>右读取(截取)字符,像计算器看到从右—>左的效果,只是在左—>右读取时加空格显示的效果)SELECT LPAD('haha',10,'OK') FROM dualSELECT RPAD(' yys',20,' very good') FROM dualk:SUBSTR(char,[ m[, n]]):将字符串char从第m开始,获取n个长度大小的子字符串,在oracle中字符串的下标从1开始说明:m:若果m = 0,则从首字符开始,m为负数,则从尾部开始(从后往前……,-3,-2,-1),倒数第m个,向后获取n 个字符n:如果没有设置n,或者n的长度超过了char的长度,则取到字符串末尾为止SELECT SUBSTR('abcde', 2, 8) FROM DUALSELECT SUBSTR('abcde', -3, 2) FROM DUALl:INSTR(char1 ,char2,[,n[,m]] :返回字符串char2在源字符串 char1中的位置n,从第几个字符开始找不写默认从第一个开始找 n为负数,从后开始计数,且往前找,注意与SUBSTR 的区别(SUBSTR是从后开始计数,往后截取)m,指定第m次出现不写默认第一次出现如果在char1中没有找到子串char2,返回0 n不能为负数,否则会报错其实找子字符串只是看字符串的第一个字符SELECT INSTR('abc abc abc','abc') FROM DUALSELECT INSTR('abc abc abc','abc',6) FROM DUALSELECT INSTR('abc abc abc','abc',1,3) FROM DUALSELECT INSTR('abc abc abc','abc',-3,2) FROM DUAL充分说明了,找子字符串只是看字符串的第一个字符,往前找前提是必须是abc ,abcd就不包含在源字符串中会返回0m:REPLACE(char, 'm' , '*'):将字符串char中的'm',替换成'*',注意:replace不会替换原始字符串,仅影响显示结果SELECT REPLACE('abc abc abc','b','*') FROM DUAL➢数值操作:1.数值类型:NUMBER(p,s)用来在表中存放数值类型的数据—> p表示数字的总位数,取值为1-38,不写(NUMBEE(*,s)),p默认为38—> s表示小数点后面的位数,不写[,s]只有p 表示纯整数整数部分开头有再多的0,只要除去开头的0不超过p-s就OK小数部分结尾有再多的0,只要除去结尾的0不超过s就OK2.数值函数:a:ROUND(要处理的数字m[,小数位数n]):对数字进行四舍五入 * n必须是整数,为正数,四舍五入到小数点后n位为0,四舍五入到整数位,n缺省,默认为0为负数,四舍五入到小数点前n位n 为0,保留到个位,看小数点后一位n 为-1,保留到十位,看个位n 为-2,保留到百位,看十位………………SELECT ROUND (45.678,2) FROM dualSELECT ROUND (45.678) FROM dualSELECT ROUND(43455.678, -3) FROM dualb:TRUNC(m[,n]):按位截取数字mm,n含义与ROUND的m,n一样,只不过,只舍不进位SELECT trunc(45.678, 2) FROM dualSELECT TRUNC(45.678,-1) FROM dualc:CEIL(n):上取整——天花板,大于等于n的最小整数SELECT CEIL(3248.999) FROM DUALd:FLOOR(n):下取整——地板,小于等于n的最大整数SELECT floor(34564.4343)FROM DUALe:MOD(m , n):取m/n的余数,n若为0,直接返回mSELECT mod(9,0)FROM dual➢日期操作:Oracle中的字符串是用单引号(‘’)括起来的,注意与Java的区别1.日期类型:Date:年月日时分秒,占7字节——保存日期和时间,能表示的日期范围公元前4712年1月1日~公元9999年12月31日TIMESTAMP(timestamp):年月日时分秒.小数秒最高精度可达纳秒(ns)占7或者11字节CREATE TABLE test_1(C1 DATE,C2 TIMESTAMP );2.日期关键字:SYSDATE ,其本质就是一个Oracle内部的函数,返回当前系统时间,精确到秒默认显示格式:DD—MON—RRCREATE TABLE test_2(registerDate DATE DEFAULT SYSDATE);column type defuult exprSELECT SYSDATE FROM DUALSYSTIMESTAMP,返回当前系统时间,精确到毫秒SELECT systimestamp FROM DUAL3.日期转换函数:* TO_DATE(要转换的字符串[,转换格式[,指定的日期语言]]) 将字符串按照指定格式转换为日期类型‘ xxx-xx-xx’‘xxxx/xx/xx’‘ xxxx’’年’’xx”月”’装换格式是按习惯自行编写的,是字符串所以用单引号括起来,若中间非关键字或符号的其他字符时,在把这些字符双引号括起来Eg ‘yyyy“年”mm“月”dd“日”’在日期格式字符串中大小写不区分,其他字符串中大小写区分转化格式的代词SELECT TO_DATE('2014年09月14','YYYY"年"MM"月"DD') FROM dual说明:1.实际上已经按照YYYY"年"MM"月"DD的日期格式,只不过Oracle的控制台输出格式为DD—MON—RR2.需要转换的字符串里出现的非符号字符时,不需要再加“”,只有转换格式字符串中出现的非关键字或符号的其他字符时,才把这些字符用双引号括起来* TO_CHAR(data[,转换格式[,指定的日期语言]])将日期类型数据data按照装换格式输出字符串SELECT TO_CHAR(sysdate,'YYYY"年"MM"月"DD"日" HH24:MI:SS') FROM dual4.日期常用函数:a:LAST_DAY(data):返回给定日期date所在月的最后一天SELECT LAST_DAY(to_date('2014年9月14日','YYYY"年"MM"月"DD"日"')) FROM DUALb:NEXT_DAY(date,char)给定日期离给定日期最近的下一个星期几(char决定)中文环境下,char可写成’星期三‘英文环境下,char可写成‘WEDNESDAY’为避免麻烦,可直接使用数字1-7 表示周日----周六SELECT NEXT_DAY(SYSDATE,'星期三') FROM DUAlSELECT NEXT_DAY('4-9月-14',5)FROM DUAL说明:获取的是距当前时间最近的周四,若给定的时间刚好是周四,及周四以后则获取的是下周周四,周四之前,则获取本周周四注意是按外国的周算一周时间为:日一二三四五六c:ADD_MONYHS(date,i):返回给定日期加上i个月后的日期值i可以是任何数字,大部分时候取正值整数i为小数,会被截取整数后再参与运算i为负数,即减去i个月后的日期值SElECT ADD_MONTHS('14-9月-14',2.6) FROM DUAldate默认格式为DD—MON—RR 所以写‘14-9月-14’d:MONTHS_BETWEEN(date1,data2):获取date1和date2之间隔了多少个月是date1 - date2,若果date2比date1的时间晚,会得到负数除非两个日期之间隔整数月,否则结果会带小数SELECT months_between('1-1月-14','3-3月-14') FROM DUAl e:LEAST(expr1[,expr2[,expr3]]……)GREATEST(expr1[,expr2[,expr3]]……)比较函数,返回结果是参数列表中最大或最小的值参数类型必须一致,或可转(在比较之前,参数列表的第二个参数会被自动转换为第一个参数的数据类型,可以转,则继续比较,不可以转报错)SELECT LEAST(22,99.9)FROM DUALSELECT greatest(sysdate,'1-1月-14')FROM DUAlf:EXTRACT(date FROM datetime):从参数datetime中提取参数date 指定的数据,比如extract(year/month/day from 日期变量) SELECT extract(MINUTE FROM SYSTIMESTAMP) FROM DUAl➢空值操作:* 数据类型未知或暂时不存在* 数据库中字段无论是什么类型,默认值都是NULL* 若使用了DAFAULT关键字指定了默认值,则使用指定的* 在创建表的时候,可以为列添加非空约束,被约束的列在插入数据时必须给值,更新数据时,不能将该列的值设为空* DAFULT 和NOT NULL不约束同一字段* 判断是否为空,不能写= null 要写IS NULL插入值INSERT,更新(UDATE)时,可以写column = null * NULL和任何数字运算结果还是NULL空值函数:NVL(expr1,expr2):若expr1 为空,则取expr2的值(不管expr2是否为空eg NVL(null,null)结果为null )若expr1不为空,则还是expr1,expr2没用expr1和expr2可以是任何数据类型,但这两个参数的类型必须一致SELECT NVL(1,8) FROM DUAlSELECT NVL(null,'Good') FROM DUALNVL2(expr1,expr2,expr3):若expr1为NULL,返回expr3若expr1不为NULL,返回expr2SELECT NVL2(null,'Good','Better') FROM DUALSELECT NVL2('YYS','Good','Better') FROM DUAL【查询语句】SELECT [ALL|DISTINCT][<目标列表达式>[,…n]] ——4FROM <表名或视图名>[,<表名或视图名>,…] ——1WHERE <条件表达式> ——2GROUP BY <列名1>[HAVING <条件表达式>]]——3ORDER BY <列名2>[ASC|DESC],…];——5说明:1.其中SELECT和FROM语句为必选子句,其他子句为任选子句;2.SELECT [ALL|DISTINCT][<目标列表达式>[,…n]]子句指明查询结果集的目标列。