版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实施人员技能四期培训提纲(SQL语句)2022年1月目 录第一章 数据库设计- 1 -第二章 T-SQL 程序设计- 12 -第四章 简单查询- 18 -第五章 高级查询- 20 -第七章 视图- 23 -第八章 存储过程- 24 -第十章包 (包头和包体)- 26 -第十一章 PL/SQL使用- 27 - 沈阳汉华软件有限公司第一章 数据库设计1.1 数据库设计与建模1.1.1 数据库设计的目的与意义要开发一个基于数据库的应用系统,其中最关键的一步就是整个系统所依据的数据库的建模设计,从逻辑的到物理的,一个环节疏于设计,整个的应用系统便似建立在危房之上,随着开发过程的不断深入,它要随时面临着
2、各种难以预料的风险,开发者要为修改或重新设计没有设计好的数据库系统而付出难以预料的代价。所以,一个良好的数据库设计是高效率的系统所必须的。 1.1.2 与数据库设计有关的内容逻辑建模 数据库设计的方法因具体数据库而异,但是建模阶段的相同的,所以可以用一些通用的工具来进行,如Rational rose,PowerDesigner等,这一阶段主要是依据系统的需求,获取与分析要实现的应用系统信息,进行数据内部以及外在关系的分析,从而有效地建立整个系统的数据结构(在关系数据库中通常称为表结构),在此基础上对数据库的数据量、数据流量、及响应速度的估算分析,这样数据模型就
3、产生了。具体的操作准则是数据库的几个范式、用户的具体需求和分析者的经验,从数据库的性能、安全、方便管理、易于开发等方面出发,具体方法因分析员的喜好和习惯而异,可以不用工具,最好使用工具,能让分析过程简便,最主要是能生成一些图,如E-R图,让分析过程一目了然。 物理设计 此步设计和系统将具体使用的数据库有关,也和数据库所运行的硬、软件平台有关,目的是尽量合理地给数据库分配物理空间,这一步在数据库设计中很重要,关系到数据库数据的安全和数据库的性能,具体的来说,这一步包括相应表空间的数据文件在磁盘上的分配,还要根据数据量的大小确定redolog文件、rollbac
4、k段的大小,然后进行分配,这些文件的分配要遵循一些原则,本着利于备份,利于性能优化的原则,原则如下(以ORACLE数据库为例): 1、为表和索引建立不同的表空间,禁止在系统表空间中放入非核心oracle系统成分的对象,确保数据表空间和索引表空间位于不同的磁盘磁盘驱动器上。 2、了解终端用户怎样访问数据,如果可能,将经常同时查询和频繁查询的对象放在不同的物理磁盘上。 3、当数据库包含允许用户并行访问不同数据元素的大对象时,将对象分割存放在多个磁盘上是有好处的。可以采用分区。在某个操作系统平台上定义拥有数百万行的表时,则更需小心,因为数据库文件的大小受到限止,这种限制
5、是由操作系统而不是由oracle引起的。 4、在独立的各盘上至少创建两个用户定义的rollback表空间,以存放用户自己的rollback段。在初始化文件中安排rollback段的次序,使它们在多个磁盘之间进行切换。 5、将redo log文件放在一个读写较少的盘上。对于每个oracle实例要建立两个以上的redo log组,同组的两个成员放在不同的设备上。 6、确立表和索引的大小,这决定了保存它们所需的表空间的尺寸,也决定了哪些表空间物理地装在哪些盘上和哪些表空间可以结合在一起。具体的估算方法可以按照oracle一些公式,这里还要按照各个表的具体特性,用途,定义
6、它的存贮参数如(pctfree,pctused)。 1.2 数据库设计的一些概念1.2.1 数据字典 数据字典层次结构 数据字典是Oracle数据库中最重要的部分之一,数据字典是一系列只读的表,用来提供数据库的信息。数据字典是数据库元数据的储存库。数据库元数据是用于描述数据库的数据术语。所有有关表、视图、PL/SQL 包、触发器、同义词和索引的信息都存储在数据字典中。简而言之,数据字典提供以下信息: · 有关用户的信息 · 授予每个用户的权限和角色 · 模式对象(如表、视图、索引、同义词、序列、过程、函数、程序包和触发器等)的名称及结构 · 有
7、关完整性约束的信息 · 列的默认值 · 数据库对象当前使用的已分配空间 跟踪信息 Oracle 用户 SYS 拥有数据字典的所有基表和用户可访问的视图。因此,任何其他 Oracle 用户都不应改变 SYS 模式中包含的任何对象,因为这样做可能导致数据库的永久性损坏。 数据字典中包括两部分信息:基表和提供给用户访问的视图。所有的数据字典都保存在SYSTEM表空间中。所有的数据字典属于SYS用户。 数据字典主要有三种用途: Oracle访问数据字典来获取用户、方案对象和存储结构等信息; 一旦有DDL语句发出,Oracle会相应的修改数据字典; 任何数据库用户可以把数据字典当做一
8、个只读的参考,来获取数据库的信息。 Oracle中的数据字典有静态和动态之分。静态数据字典主要是在用户访问数据字典时不会发生改变的,但动态数据字典是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的。以下分别就这两类数据字典来论述。 1 静态数据字典这类数据字典主要是由表和视图组成,应该注意的是,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*、 all_*、 dba_*。user_* 该视图存
9、储了关于当前用户所拥有的对象的信息。(即所有在该用户模式下的对象)all_*该试图存储了当前用户能够访问的对象的信息。(与user_*相比,all_* 并不需要拥有该对象,只需要具有访问该对象的权限即可)dba_*该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限)从上面的描述可以看出,三者之间存储的数据肯定会有重叠,其实它们除了访问范围的不同以外(因为权限不一样,所以访问对象的范围不一样),其他均具有一致性。具体来说,由于数据字典视图是由SYS(系统用户)所拥有的,所以在却省情况下,只有SYS和拥有DBA系统权限的用户可以看到所有的视图。
10、没有DBA权限的用户只能看到user_*和all_*视。如果没有被授予相关的SELECT权限的话,他们是不能看到 dba_*视图的。由于三者具有相似性,下面以user_为例介绍几个常用的静态视图:user_users视图主要描述当前用户的信息,主要包括当前用户名、帐户id、帐户状态、表空间名、创建时间等。例如执行下列命令即可返回这些信息。select * from user_usersuser_tables视图主要描述当前用户拥有的所有表的信息,主要包括表名、表空间名、簇名等。通过此视图可以清楚了解当前用户可以操作的表有哪些。执行命令为:select * from user_tablesuse
11、r_objects视图主要描述当前用户拥有的所有对象的信息,对象包括表、视图、存储过程、触发器、包、索引、序列等。该视图比user_tables视图更加全面。例如, 需要获取一个名为“package1”的对象类型和其状态的信息,可以执行下面命令:select object_type,statusfrom user_objectswhere object_name=upper(package1);这里需注意upper的使用,数据字典里的所有对象均为大写形式,而PL/SQL里不是大小写敏感的,所以在实际操作中一定要注意大小写匹配。user_tab_privs视图该视图主要是存储当前用户下对所有表的
12、权限信息。比如,为了了解当前用户对table1的权限信息,可以执行如下命令:select * from user_tab_privs where table_name=upper('table1')了解了当前用户对该表的权限之后就可以清楚的知道,哪些操作可以执行,哪些操作不能执行。前面的视图均为user_开头的,其实all_开头的也完全是一样的,只是列出来的信息是当前用户可以访问的对象而不是当前用户拥有的对象。对于dba_开头的需要管理员权限,其他用法也完全一样,这里就不再赘述了。2 动态数据字典Oracle包含了一些潜在的由系统管理员如SYS维护的表和视图,由于当数据库运行的
13、时候它们会不断进行更新,所以称它们为动态数据字典(或者是动态性能视图)。这些视图提供了关于内存和磁盘的运行情况,所以我们只能对其进行只读访问而不能修改它们。Oracle中这些动态性能视图都是以v$开头的视图,比如v$access。下面就几个主要的动态性能视图进行介绍。动态性能视图由前缀V_$标识。这些视图的公用同义词具有前缀V$。数据库管理员或用户应该只访问V$对象,而不是访问V_$对象。动态性能视图由企业管理器和Oracle Trace 使用,Oracle Trace 是访问系统性能信息的主要界面。建议: 一旦实例启动,从内存读取数据的V$视图就可以访问了。从磁盘读取数据的视图要求数据库已经
14、安装好了。警告:给出动态性能视图的有关信息只是为了系统的完整性和对系统进行管理。公司并不承诺以后也支持这些视图。 下面按类别列出一些ORACLE用户常用数据字典的查询使用方法。 一、用户 查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; 查
15、看当前用户的角色 SQL>select * from user_role_privs; 查看当前用户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 二、表 查看用户
16、下所有的表 SQL>select * from user_tables; 查看名称包含log字符的表 SQL>select object_name,object_id from user_objects where instr(object_name,'LOG')>0;
17、; 查看某表的创建时间 SQL>select object_name,created from user_objects where object_name=upper('&table_name'); 查看某表的大小 SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segm
18、ents where segment_name=upper('&table_name'); 查看放在ORACLE的内存区里的表 SQL>select table_name,cache from user_tables where instr(cache,'Y')>0; 三、索引
19、60; 查看索引个数和类别 SQL>select index_name,index_type,table_name from user_indexes order by table_name; 查看索引被索引的字段 SQL>select * from user_ind_columns where index_name=upper('&index_name'); 查看索引的大小
20、SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&index_name'); 四、序列号 查看序列号,last_number是当前值 SQL>select * from user_sequences; 五、视图
21、 查看视图的名称 SQL>select view_name from user_views; 查看创建视图的select语句 SQL>select view_name,text_length from user_views; SQL>set long 2000;说明:可以根据视图的text_length值设定set long 的大小
22、 SQL>select text from user_views where view_name=upper('&view_name'); 六、同义词 查看同义词的名称 SQL>select * from user_synonyms; 七、约束条件
23、 查看某表的约束条件 SQL>select constraint_name, constraint_type,search_condition, r_constraint_name from user_constraints where table_name = upper('&table_name'); SQL>select c.constra
24、int_name,c.constraint_type,cc.column_name from user_constraints c,user_cons_columns cc where c.owner = upper('&table_owner') and c.table_name = upper('&table_name') and c.owner = cc.owner and c.constraint_name = cc.
25、constraint_name order by cc.position; 八、存储函数和过程 查看函数和过程的状态 SQL>select object_name,status from user_objects where object_type='FUNCTION'&
26、#160; SQL>select object_name,status from user_objects where object_type='PROCEDURE' 查看函数和过程的源代码 SQL>select text from all_source where owner=user and name=upper('&plsql_name');
27、160; 九、触发器 查看触发器 set long 50000; set heading off; set pagesize 2000; select 'create or replace trigger "' |
28、 trigger_name | '"' | chr(10)| decode( substr( trigger_type, 1, 1 ), 'A', 'AFTER', 'B', 'BEFORE', 'I', 'INSTEAD OF
29、9; ) | chr(10) | triggering_event | chr(10) | 'ON "' | table_owner | '"."' | &
30、#160; table_name | '"' | chr(10) | decode( instr( trigger_type, 'EACH ROW' ), 0, null, 'FOR EACH ROW' ) | chr(10) , trigger_bo
31、dy from user_triggers;例 : 如何修改ORACLE 10g 的进程数?Select * from v$parameter;alter system set sessions=335 scope=spfile;重新启动数据库Show parameter processes <参考资料>几个常用视图的说明 v$lock v$sqlarea v$session v$sesstat v$session_wait v$process v$transaction v$sort_usage v$sysstat 九个重要视图 1)v$loc
32、k 给出了锁的信息,如type字段, user type locks有3种:TM,TX,UL,system type locks有多种,常见的有:MR,RT,XR,TS等。我们只关心TM,TX锁。 当TM锁时,id1字段表示object_id;当TX锁时,trunc(id1/power(2,16)代表了回滚段号。 lmode字段,session持有的锁的模式,有6种: 0 - none 1 - null (NULL) 2 - row-S (SS) 3 - row-X (SX) 4 - share (S) 5 - S/Row-X (SSX) 6 - exclusive (X) request字段
33、,process请求的锁的模式,取值范围与lmode相同。 ctime字段,已持有或等待锁的时间。 block字段,是否阻塞其它锁申请,当block=1时说明这个session阻塞了别的session。 2)v$sqlarea 共享池中存储的sql和一些相关的信息,如累计的执行次数(executions),逻辑读(buffer_gets),物理读(disk_reads)等统计信息。 根据address和hash_value可以定位一条sql。sql_text字段存的这个sql的前1000个字符。查找整个的sql还需去v$sqltext或者v$sqltext_with_newlines。 3)v
34、$session 所有当前session的信息,包括一些用户信息如username,terminal,program,logon_time等,command字段表示session执行的什么命令。 通过v$session.paddr=v$process.addr跟process相关,通过v$session.taddr=v$transaction.addr跟trancation相关。 通 过sid可以到相关视图中查询与这个session相关的各种信息,如v$sesstat中有session的统计信息,v$sess_io中有 session的io统计信息,v$session_wait中有sessio
35、n的等待信息,v$session_event中有session在一段时 间内所等待的各种事件的信息。 根据lockwait字段可以查询当前正在等待的锁的相关信息: select * from v$lock where kaddr in (select lockwait from v$session where sid=&sid); (sql_address,sql_hash_value),(prev_sql_addr,prev_hash_value) 根据这两组字段, 可以查询到当前session正在执行的或最近一次执行的sql语句的详细信息: select * from v$sqlt
36、ext where address = &sql_address and hash_value = &sql_hash_value; 4)v$sesstat 根据session id可以得到这个session的统计信息: select ,b.value from v$statname a,v$sesstat b where a.STATISTIC#=b.STATISTIC# and b.sid=&sid and b.value <>0 order by b.value; 5)v$session_wait 根据session id可以得到这个ses
37、sion的等待情况。 event字段表示等待事件。 p1、 p2、p3告诉我们等待事件的具体含义,如果wait event是db file scattered read,p1=file_id/p2=block_id/p3=blocks,然后通过dba_extents即可确定出热点对象;如果是latch free的话,p2为闩锁号,它指向v$latch。 P1RAW,P2RAW,P3RAW列对应P1,P2,P3的十六进制值;P1TEXT,P2TEXT,P3TEXT列对应P1,P2,P3列的解释。 -求等待事件及其对应的latch col event format a32 col name for
38、mat a32 select sid,event,p1 as file_id, p2 as "block_id/latch", p3 as blocks, from v$session_wait sw,v$latch l where event not like '%SQL%' and event not like '%rdbms%' and event not like '%mon%' and sw.p2 = l.latch#(+); -求等待事件及其热点对象 col owner format a18 col s
39、egment_name format a32 col segment_type format a32 select owner,segment_name,segment_type from dba_extents where file_id = &file_id and &block_id between block_id and block_id + &blocks - 1; -综合以上两条sql,同时显示latch及热点对象(速度较慢) select sw.sid,event,,de.segment_name from v$session_wait sw
40、,v$latch l,dba_extents de where event not like '%SQL%' and event not like '%rdbms%' and event not like '%mon%' and sw.p2 = l.latch#(+) and sw.p1 = de.file_id(+) and p2 between de.block_id and de.block_id + de.blocks - 1; -如果是非空闲等待事件,通过等待会话的sid可以求出该会话在执行的sql select sql_text fr
41、om v$sqltext_with_newlines st,v$session se where st.address=se.sql_address and st.hashvalue=se.sql_hash_value and se.sid =&wait_sid order by piece; 其中 STATE 列 的描述如下(参考 Oracle Database Reference 10g Release 1 Part Number B10755-01): 0 - WAITING (当前等待的 Session) -2 - WAITED UNKNOWN TIME (最后等待持续时间未知
42、) -1 - WAITED SHORT TIME (最后的等待 <1/100 秒) >0 - WAITED KNOWN TIME (WAIT_TIME = 最后等待持续时间) 6)v$process 根据session id可以查到操作系统进程的信息: select * from v$process where addr in (select paddr from v$session where sid=&sid ); spid字段是操作系统进程号,可以用来进行 kill -9 spid 这么一个操作。 可以找到 unix命令 top 出来的最耗cpu资源的pid,根据pi
43、d最耗资源的sql: SELECT /*+ ORDERED */ sql_text FROM v$sqltext a WHERE (a.hash_value, a.address) IN ( SELECT DECODE (sql_hash_value, 0, prev_hash_value, sql_hash_value ), DECODE (sql_hash_value, 0, prev_sql_addr, sql_address) FROM v$session b WHERE b.paddr = (SELECT addr FROM v$process c WHERE c.spid =
44、39;&pid') ORDER BY piece ASC 7)v$transaction 根据session id可以查到当前session正在执行的事务信息: select * from v$transaction where addr in (select taddr from v$session where sid=&sid ); 看下面这两个字段可以看到事务进行到什么程度了: USED_UBLK NUMBER Number of undo blocks used USED_UREC NUMBER Number of undo records used 重复查询这
45、两个值,可以看到变化,可以估计事务的进度,尤其是长时间的回滚操作,当这两个值为0,回滚也就完成了。 8)v$sort_usage temp表空间的使用情况,当temp表空间变得巨大的时候,根据session_addr可以得到session id,根据sqladdr和sqlhash可以得到正在执行的sql: select se.username,se.sid,su.extents,su.blocks*to_number(rtrim(p.value) as Space,tablespace,segtype,sql_text from v$sort_usage su,v$parameter p,v$
46、session se,v$sql s where ='db_block_size' and su.session_addr=se.saddr and s.hashvalue=su.sqlhash and s.address=su.sqladdr order by se.username,se.sid; 9)v$sysstat 所有instance的统计信息。第二章 T-SQL 程序设计SQL全称是“结构化查询语言(Structured Query Language)”SQL(Structured Query Language)是一种数据库查询和程序设计语言,用于存取
47、数据以及查询、更新和管理关系数据库系统。T-SQL是标准 SQL 程式设计语言的增强版,它是用来让应用程式与 SQL Server 沟通的主要语言。T-SQL 提供标准 SQL的DDL 和 DML 功能,加上延伸的函数、系统预存程序以及程式设计结构(例如 IF 和 WHILE)让程式设计更有弹性。补充:你可以理解成T-sql是SqlServer支持的sql语法2.1 标识符标识符:是用户编程时使用的名字。我们指定某个东西、人,都要用到它,他或她的名字;在数学中解方程时,我们也常常用到这样或那样的变量名或函数名。同样的道理,在电脑语言中,对于变量,常量,函数,语句块也有名字,我们统统称之为标识符
48、。标识符必须是统一码(Unicode)2.0标准中规定的字符,以及其他一些语言字符。如汉字. 标识符后的字符可以是(除条件一)“_”、“”、“#”、“$”及数字。 标识符不允许是Transact-SQL的保留字(关键字)。 标识符内不允许有空格和特殊字符。补充: Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求2.2 数据类型Char 用于描述定长的字符型数据,长度<=2000字节 varchar2 用于描述变长的字符型数据,长度<=4000字节 nchar
49、用来存储Unicode字符集的定长字符型数据,长度<=1000字节 nvarchar2 用来存储Unicode字符集的变长字符型数据,长度<=1000字节 number (10, 2)用来存储整型或者浮点型数值 Integer 一个整型数据用来存储整数,整数包括正整数,负整数和零。 整型常量采用十进制整数表示。如 1991,0,-123等等都是整型常量。而52.0或131.4都不是整型常量。 Integer 变量存储为最接近编译环境的长度,例如在32位的编译环境下,Integer为32位,其范围为 -215 到 215-1 之间。Date 用来存储日期数据 Long 用来存储最大长
50、度为2GB的变长字符数据 Raw 用来存储非结构化数据的变长字符数据,长度<=2000字节 Long raw 用来存储非结构化数据的变长字符数据,长度<=2GB rowid 用来存储表中列的物理地址的二进制数据,占用固定的10个字节, ORACLE数据表中的一个伪列,它是数据表中每行数据内在的唯一的标识。Select rowid from yhda ;LOB 数据类型存储非结构化数据,比如二进制文件,图形文件,或其他外部文件。LOB 可以存储到4G字节大小。数据可以存储到数据库中也可以存储到外部数据文件中。LOB数据的控制通过DBMS_LOB 包实现。BLOB, NCLOB, 和C
51、LOB 数据可以存储到不同的表空间中,BFILE存储在服务器上的外部文件中。LOB数据类型有以下几种:BLOB: 二进制数据用来存储多达4GB的非结构化的二进制数据CLOB: 字符型数据用来存储多达4GB的字符数据 BFILE: 二进制文件用来把非结构化的二进制数据存储在数据库以外的操作系统文件nclob 用来存储多达4GB的Unicode字符数据 urowid 用来存储表示任何类型列地址的二进制数据 float 用来存储浮点数例: 选择一个表 编辑看字段的类型 Select * from yk_app_pic; 数据库连接 XCZDATA向Pic_data 字段中存一个图片问题:Intege
52、r 与 Number 的区别是什么?INTEGER是整型,数字类型是-1,0,1等NUMBER是数字型,可以设置小数位如number(6,2),即整个长度为6,小数位长度为2 , 最大数是9999.992.2.1 在SQL中使用注释注释是程序代码中的描述性的文本字符串,也称注释,编译器会忽略这些内容。注释可以用来建立代码文档,使用注释建立的代码文档使得维护程序代码更加容易。注释常用来记录程序名称、作者名称以及对代码进行重要修改的日期。注释可以用来描述复杂的计算或用来解释程序设计的方法。 - (双连字符): 单行注释。这些注释字符可以用在要执行的代码的同一行,或者单独作
53、为一行。从双连字符开始到这一行的结束。 / * */ (正斜线-星号字符对) 多行注释。打开注释对(/*) 必须作为注释的开始,而关闭注释对(*/) 必须作为注释的结束。在该注释的任意行上不能有其他注释字符。2.3 逻辑控制语句2.3.1 BEGIN END 可以将一组要执行的T-SQL 语句放在BEGINEND 中,该单元中的语句可以认为是一个块或一个单元。见 方法 Fun_DxNumb 2.3.2 IF ELSE 该结构可以用来根据条件真实值执行一组选中的语句。2.3.3 WHILE 循环该结构重复执行一组语句,直到条件的计算值为真。先验证该条件,再开始执行语句块。While
54、 (a> 0)Begin Select * from yhda;End 2.3.4 GOTO 和 RETURN Goto 可以将执行流程更改到由标签指定的位置。将跳过GOTO关键字之后的语句,并在GOTO语句中指定的标签处继续执行操作。语法: GOTO lable RETURN 可以在任意位置使用RETURN,以便从语句块或过程中退出。系统将不会执行RETURN 语句之后的语句。语法: RETURN interger_expression其中,integer_expression 是整型表达式。RETURN 语句中的参数保存返回的整数值。存储过程可以向调用过程或应用程序返回一个整数值。默
55、认情况下,所有系统存储过程,如果成功则返回0,如果失败则返回非零值。2.3.5 CASE 分支 (重点)CASE : 使用CASE关键字可以根据表达式是否为真来返回值。该关键字可用于允许使用表达式的任何地方。语法: CASE expression When expression1 then expression1 When expression2 then expression2 else expression End 例: select case when yh_sddy = '01' then '0.4KV' when yh_sddy = '02
56、39; then '10KV' ELSE '电压为空' End From yhda2.4 使用变量2.4.1 定义变量变量是指在程序的运行过程中随时可以发生变化的量。变量是程序中数据的临时存放场所。在代码中可以只使用一个变量,也可以使用多个变量,变量中可以存放单词、数值、日期以及属性。由于变量让你能够把程序中准备使用的每一段数据都赋给一个简短、易于记忆的名字,因此它们十分有用。变量可以保存程序运行时用户输入的数据(如使用InputBox函数在屏幕上显示一个对话框,然后把用户键入的文本保存到变量中)、特定运算的结果以及要在窗体上显示的一段数据等。简而言之,变量是用
57、于跟踪几乎所有类型信息的简单工具。 VarNum varchar2(20); NumLen number; NumLenX number;2.5 使用函数2.5.1 聚合函数 Sum (col_name) 返回一系列值的总和. 例:select sum(jb_fse) from yd_gdb where gd_bs = 1 ; -用购电流水表中查询发生额的和Avg (col_name ) 返回一系列值的平均值例: select avg(gd_fse) from yd_gdb Count(*) 其功能是检索表中满足给定条件的记录数。例: select count(*) from yhda -查询
58、用户档案表的总户数Max(col_name) 返回一系列值中的最大值例: select max(yh_tqid) from yhda -查询最大的台区IDMin(col_name) 返回一系列值中的最小值例: select min(yh_tqid) from yhda -查询最大的台区ID2.4.2 标量函数 只要表达式有效即可使用标题函数。 转换函数将一种数据类型转换为另一种。 日期函数对日期和时间进行操作。 数学函数执行算术操作。 字符串函数对字符串、二进制数据或表达式执行操作。第四章 简单查询4.1 基础语句 关键字 Create alter drop Insert delete upd
59、ate select 4.1.1 创建、删除数据库Create database Drop database 4.1.2 创建、删除表CREATE TABLE duping (id VARCHAR(40),Name number)Create table duping as select * from yg_bm;Drop table duping;4.1.3 Insert 插入Insert into 表名 (列名,n) values (对应的值)例: insert into yg_bm (bm_bm, bm_mc) values (0025, 所) ; 4.1.4 Update 更新Upda
60、te 表名 set 列名 = 新值 where 更新条件例: update yg_bm set bm_mc = duping where bm_bm = 0025 ; 4.1.5 Delete 删除Delete from yg_bm where 更新条件 ; 4.1.6 Select 查询Select 列名 from 表名 Select 列名 from 表名 where 条件 Select 列名 from 表名 order by 列名 asc/desc nSelect 聚合函数和 group by 后面的列名 from 表名 Group by 列名 Having 条件 Select count
61、(*) from yhda group by yh_hh having count(yh_hh) > 1 Select yh_ydlb, count(*) from yhda group by yh_ydlb ; 4.1.7 as : 更改列名 或者 列名 别名 Select a.yh_hh as 户名 from yhda as a 4.1.8 top : 显示记录的前几条 precent (百分比) 例 : select top 50 percent * from yg_bm ; 4.1.9 like : 模糊查询LIKE 关键字搜索与指定模式匹配的字符串、日期或时间值。LIKE 关键
62、字使用常规表达式包含值所要匹配的模式。模式包含要搜索的字符串,字符串中可包含四种通配符的任意组合。 通配符 : _ % 通配符含义%包含零个或更多字符的任意字符串。_任何单个字符。 指定范围(例如 a-f)或集合(例如 abcdef)内的任何单个字符。不在指定范围(例如 a - f)或集合(例如 abcdef)内的任何单个字符。 例 : select * from yhda where yh_hm like %王% ; LIKE '%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。LIKE '_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。LIKE 'CKarseon' 将搜索
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025《谏太宗十思疏》内容结构课件
- 2025《祝福》知识分子的旁观课件
- 第6章变量之间的关系 基础测试卷(含解析) 2025-2026学年七年级下册数学北师大版
- 炼焦安全规程培训
- 初中英语必背核心词大全
- 检修部电气二班班长安全责任制培训课件
- 2026年广东省汕头市单招职业倾向性测试题库附答案详解(轻巧夺冠)
- 2026年山西省吕梁市单招职业倾向性考试题库附答案详解(满分必刷)
- 2026年广东金融学院单招职业适应性测试题库带答案详解ab卷
- 2026年广东科贸职业学院单招职业适应性测试题库附参考答案详解(综合卷)
- 2026年南京机电职业技术学院单招职业适应性测试题库附答案解析
- 蒲公英介绍教学课件
- 2026青海海东公安招录32名人民警察备考题库及答案详解(夺冠系列)
- 2026北森测评试题及答案
- 2026西藏自治区教育考试院招聘非编工作人员11人备考考试题库及答案解析
- 医疗信息系统维护外包合同样本
- 隔音板安装施工方案
- 广播电视播音员主持人资格真题(附答案)
- 小微企业的薪酬管理制度(2篇)
- 《AI与直播运营》课程标准
- 绿化合同协议模板
评论
0/150
提交评论