+not null unique 唯一 primary key 主键(确保数据不能重复) foreign key 外键 check 必须 drop purge彻底删除 级联删除:删除一个部门,部门里的员工跟着删除--->on delete cascade 制空:把部门下的员工转到NULL,删除部门--->on delete set null 不能动:先删员工,再删部门 references 参照 constraint 约束 用子查询创建的表除了null,约束无法复制 col first_name for a10 只读:只能...
1、from子句组装来自不同数据源的数据; 2、where子句基于指定的条件对记录行进行筛选; 3、group by子句将数据划分为多个分组; 4、使用聚集函数进行计算; 5、使用having子句筛选分组; 6、计算所有的表达式; 7、select 的字段; 8、使用order by对结果集进行排序。 SQL语言不同于其他编程语言的最明显特征是处理代码的顺序。在大多数据库语言中,代码按编码顺序被处理。但在SQL语句中,第一个被处理的子句式FROM,而不是...
Oracle: SELECT * FROM(SELECT A.*, ROWNUM RN FROM (select T.* from sj_receiptinfo t WHERE t.TAXNO LIKE CONCAT(‘%‘, CONCAT(?, ‘%‘)) order by t.id desc) A WHERE ROWNUM <= ?)WHERE RN > ?mysql: select * from tableName where 条件 limit (当前页码*页面容量-1) , 页面容量pagesizesqlServer: SELECT w2.n, w1.* FROM ARTICLE w1,( SELECT TOP 1030 row_number() OVER (ORDER BY YEAR DESC, ID DESC) n, ID...
1.选择语句 1.1 IF...THEN...END IF语句DECLARE MY_AGE INT; IF MY_AGE IS NULL THEN DBMS_OUTPUT.put_line(‘AGE IS NULL‘); END IF;1.2 IF...THEN ELSIF THEN....ELSE THEN... ENDIF语句,这里需要注意的是ELSIF这个,JAVA里面的写法就是 else if 这里是ELSIF,IF前面不能有空格。IF AGE <= 6 AND AGE > 0 THENDBMS_OUTPUT.put_line(‘CHILD‘);ELSIF AGE <= 17 AND AGE > 6 THENDBMS_OUTPUT.put_line(‘TEENAGER‘); ELSIF A...
打开日志输出 set serverout on-- PL/SQL 语句块:-- 声明部分 declarev_i number;v_sum number:=0; -- 执行部分 beginv_i := 1;-- 简单loop循环loopv_sum:=v_sum+v_i;v_i:=v_i+1;if v_i>100 thenexit;-- 跳出循环end if;end loop;dbms_output.put_line(v_sum);-- 异常处理部分 end;-- 循环1 :简单LOOP循环 loop-- 循环体 end loop; -- 退出循环: if 退出条件 thenexit; end if;-- 简写的退出条件 exit when 退出条件;-- decla...
两种方法: -- 方法1. UPDATE 表2 SET 表2.C = (SELECT B FROM 表1 WHERE 表1.A = 表2.A) WHERE EXISTS ( SELECT 1 FROM 表1 WHERE 表1.A = 表2.A) -- 方法2 MERGE INTO 表2 USING 表1 ON ( 表2.A = 表1.A ) -- 条件是 A 相同 WHEN MATCHED THEN UPDATE SET 表2.C = 表1.B -- 匹配的时候,更新Oracle 关联两表写update语句标签:using dex comm upd from set lin sel date 本文系...
1、数值函数函数 返回值 样例 显示CEIL(n) 大于或等于数值n的最小整数 SELECT CEIL(10.6) FROM TABLE_NAME; 11FLOOR(n) 小于等于数值n的最大整数 SELECT FLOOR (10.6) FROM TABLE_NAME; 10MOD(m,n) m除以n的余数,若n=0,则返回m SELECT MOD (7,5) FROM TABLE_NAME l; 2POWER(m,n) m的n次方 SELECT POWER (3,2) FROM TABLE_NAME; 9ROUND(n...
1、查询所有列 select * from 表名; 2、查询表结构 desc 表名; 3、查询指定列 select ename,sal,job from 表名; 4、racle中查看所有表和字段 获取表: select table_name from user_tables; //当前用户的表 select table_name from all_tables; //所有用户的表 select table_name from dba_tables; //包括系统表 select table_name from dba_tables where owner=‘用户名‘ user_tables: table_name,tablespace...
last_load_time, sql_text from v$sql where module not in (‘jsenv.exe‘,‘w3wp.exe‘,‘SQL Developer‘) --and sql_text like ‘%"Extent1"."ENCOUNTERID"%‘ order by last_load_time desc;select sql_text,last_load_time from v$sql order by last_load_time desc;SELECT sql_text, last_load_time FROM v$sql WHERE last_load_time IS NOT NULL and (sql_text like ‘select%‘ or sql_text like ‘SELECT%‘) ORDER...
serverout on; ----这个只能在SQL PLUS里面使用,意思是在窗口里显示服务器输出信息。 declare n number:=1; ---定义一个变量(当然可以连续定义多个变量)v varchar2(20):=‘百零‘;n2 number:=5; begindbms_output.put_line(‘这是‘||n||v||n2); ----随便在什么地方,只要是BEGIN和END之间,就可以使用DBMS_OUTPUT.PUT_LINE(output) end;---- if then end if set serveroutput on; declare scount number; begi...
定义:描述事物的符号。例如:文本、音频、视频都是数据。 2、数据库 存放数据的仓库,存放在计算机中,按照一定格式存放,可以为用户共享。 3、数据库的发展阶段 1、网状数据库 2、层次数据库 3、关系数据库(目前主流数据库) 4、对象数据库 4、NOSQL数据库 4、Oracle数据库系统用户(管理员) scott账户:测试账户,练习账户 登录方式:dos命令行---->sqlplus--->输入账户:scott--->输入密码---->(登录成功) 如果该账户...
在网上找了一大圈,没找着合适的工具来跟踪oracle一段时间的sql。 我们的场景是打算自动化跑遍所有场景(rft)+fiddler跟踪请求+后端跟踪sql,根据结果去分析慢的请求和sql,本来awr报告也能实现,但是每次都用awr比较麻烦,想的是能够简单点,直接定位到执行慢的sql或者耗cpu的sql。 这个工具抓取的sql不是实时的,是某段时间的sql,原理也很简单,比awr的sql要简单的多,试了一把,跟awr给出的数据是一致的。 最终效果:准备操作...
WITH t1 AS ( SELECT YLPLID,MAX(SBSJ) SBSJ FROM YLPLCG where YLPLID in(select YLPLID from CYQYCPYLPLGX where CPID=‘659DE0BC42544B74B660E37E665F437C‘) group by YLPLID ) SELECT t.YLPLMC,case when t.YLPLLX =1 then ‘原料‘ when t.YLPLLX = 2 then ‘配料‘ end YLPLLX , t.GYSID,t.GYSMC,t.JYHGBGDTPID FROM YLPLCG t INNER JOIN t1 ON t.YLPLID = t1.YLPLID AND to_char(t.SBSJ, ‘yyyy-MM-dd HH24:mm:ss‘)= t...
原文章出处(http://blog.csdn.net/lichkui/article/details/4306299) MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。 //表1create table subs(msid number(9), ms_type char(1), ...
语法: EXISTS subquery参数: subquery 是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字)。结果类型: Boolean 如果子查询包含行,则返回 TRUE ,否则返回 FLASE 。 NOT EXISTS 的作用与 EXISTS 正好相反 EXISTS(包括 NOT EXISTS )子句的返回值是一个BOOL值。 EXISTS内部有一个子查询语句(SELECT ... FROM...), 我将其称为EXIST的内查询语句。其内查询语句返回一个结果集。 EXISTS子句根据其内查询语句的结果集空...