`
lwt_cedric
  • 浏览: 114845 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

整理用SQL进行表单查询

    博客分类:
  • java
阅读更多
显示数据表的结构 desc 数据表名
查询所有记录 select * from 数据表

查询所有记录的某些字段:select 字段名1,字段名2 from 数据表 select name,age from 数据表
查询某些字段的不同记录:select distinct job from 数据表                    
    单条件查询:
select * from数据表 where sal <= 2500
                            select * from数据表 where job != ‘MANAGER’
select * from数据表 where job ^= ‘MANAGER’
select * from数据表 where job <> ‘MANAGER’
select * from 数据表 where sal ^= 1000
select * from 数据表 where sal in(2000,1000,3000)                       / not in
select * from 数据表 where job in(‘MANAGER’,’CLERK’)
select * from 数据表 where sal between 2000 and 3000                 / not between
select * from 数据表 where job between ‘MANAGER’ and ’CLERK’
select * from 数据表 where job like ‘M%’                                    / not like
select * from 数据表 where job like ‘M_’
like 和 not like 适合字符型字段的查询,%代表任意长度的字符串,_代表一个任意的字符。Like ‘m%’代表 m 开头的任意长度的字符串,like ‘m__’代表 m 开头的长度为3 的字符串
select * from 数据表 where sal is null                                           / not null
select * from 数据表 where job is null
组合条件的查询:
                     逻辑与组合查询结果
                     select * from 数据表 where job >= ’CLERK’ and sal <= 2000    
                     逻辑或组合查询结果
                     select * from 数据表 where job >= ’CLERK’ or sal <= 2000
                     逻辑非组合查询结果
                             not job = ‘CLERK’ 等价于 job <> ‘CLERK’
select * from 数据表 where not job = ‘CLERK      
排序查询:              
                     select * from 数据表 where job <= ‘CLERK’ order by job asc, sal desc
                     select * from 数据表 order by job asc, sal desc
order by 可以指定查询结果如何排序,形式为字段名排序关键词;asc 代表升序排列,desc 代表降序排列,多个排序字段之间通过逗号分割。若有 where 查询条件, order by 要放在 where 语句后面
分组查询:
将查询结果按照字段分组
select empno, ename, job, sal from scott.emp group by job, empno, ename,sal having sall <= 2000     
select empne, ename, job, sal from scott.emp where sal <=2000 group by job, empno, ename, sal
注:group by 后的字段必须与前面select 后的字段相对应
where 检查每条记录是否符合条件,having 是检查分组后的各组是否满足条件。having 语句只能配合 group by 语句使用,没有 group by 时不能使用    having ,但可以使用 where
字段运算查询:
                             select empno , ename , sal , mgr , sal + mgr from 数据表
                             利用算术运算仅仅适合多个数值型字段或字段与数字之间的运算
变换查询显示:
                             select empno 编号, ename 姓名, job 工作, sal 薪水, from 数据表
用SQL进行多表查询
无条件多表查询:
                                 select emp.empno, emp.ename, emp.deptno, dept.dname, dept.loc
                                  from scott.emp, scott.dept
等值多表查询:
                                 select emp.empno, emp.ename, em.deptno, dept.dname, dept.loc
                                  from scott.emp, scott.dept
                                 where scott.emp.deptno = scott.dept.deptno
        等值多表查询将按照等值的条件查询多个数据表中关联的数据。要求关联的多个数据表的某些字段具有相同的属性,即具有相同的数据类型,宽度和取值范围。
非等值多表查询:
                                 select emp.empno, emp.ename, em.deptno, dept.dname, dept.loc
                                 from scott.emp, scott.dept
                                 where scott.emp.deptno != scott.dept.deptno and scott.emp.deptno = 10
用SQL进行嵌套查询
简单嵌套查询:
                              select emp.empno, emp.ename, emp.job, emp.sal
                               from scott.emp
                             where sal >= (select sal from scott.emp where ename = ‘WARD’)
        在这段代码中,子查询select sal from scott.emp where ename = ‘WARD’的含义是从emp数据表中查询姓名为WARD的员工的薪水,父查询的含义是要找出emp数据表中薪水大于等于WARD的薪水的员工。
带in 的嵌套查询:
                     select emp.empno, emp.ename, emp.job, emp.sal
                     from scott.emp
                     where sal in (select sal from scott.emp where ename = ‘WARD’)
                     查询薪水和WARD相等的员工,也可以使用 not in 来查询
带 any 的嵌套查询:
                     select emp.empno, emp.ename, emp.job, emp.sal
                     from scott.emp
                     where sal > any(select sal from scott.emp where job = ‘MANAGER’)           
                     等价于:select sal from scott.emp where job = ‘MANAGER’     
                     查询结果为:1000,2500
                     select emp.empno, emp.ename, emp.job, emp.sal
                     from scott.emp
                     where sal > 1000 or sal > 2500
带 some 的嵌套查询:
                     select emp.empno, emp.ename, emp.job, emp.sal
                     from scott.emp
                     where sal = some (select sal from scott.emp where job = ‘MANAGER’)
                     等价于:select sal from scott.emp where job = ‘MANAGER’     
                     查询结果为:1000,2500
                     select emp.empno, emp.ename, emp.job, emp.sal
                     from scott.emp
                     where sal = 1000 or sal = 2500
带 all 的嵌套查询:
                     select emp.empno, emp.ename, emp.job, emp.sal
                     from scott.emp
                     where sal > all (select sal from scott.emp where job = ‘MANAGER’)
                     等价于:select sal from scott.emp where job = ‘MANAGER’     
                     查询结果为:1000,2500
                     select emp.empno, emp.ename, emp.job, emp.sal
                     from scott.emp
                     where sal > 1000 and sal > 2500
带 exists 的嵌套查询:
                     select emp.empno, emp.ename, emp.job, emp.sal
                     from scott.emp, scott.dept
                     where exists (select * from scott.emp where scott.emp.deptno = scott.dept.deptno)
                     等价于:select sal from scott.emp where job = ‘MANAGER’     
                     查询结果为:1000,2500
                     select emp.empno, emp.ename, emp.job, emp.sal
                     from scott.emp
                     where sal = 1000 and sal = 2500
并操作的嵌套查询:
                     并操作就是集合中并集的概念。属于集合A 或集合B的元素总和就是并集。
                     (select deptno from scott.emp)
                     union
                     (select deptno from scott.dept)
交操作的嵌套查询:
                     交操作就是集合中交集的概念。属于集合A 且属于集合B的元素总和是并集。
                     (select deptno from scott.emp)
intersect
(select deptno from scottdept)
差操作的嵌套查询:
                     差操作就是差集的概念。属于集合A 且不属于集合B的元素总和是并集。
                     (select deptno from scott.emp)
minus
(select deptno from scottdept)
用SQL进行函数查询
ceil 函数:
                     select mgr,mgr/100,ceil(mgr/100) from scott.emp
                     ceil(n),取大于等于数值n的最小整数。
floor 函数:
                     select mgr, mgr/100,floor(mgr/100) from scott.emp
                     floor(n),取小于等于数值Nde 最大整数。
mod 函数:
                     select mgr, mod(mgr,1000), mod(mgr,100), mod(mgr,10) from scott.emp
                     mod(m,n),取m整除n后的余数。
power 函数:
                     select mgr,power(mgr,2),power(mgr,3) from scott.emp   
                     power(m,n),取m的n次方。
round 函数:
                     select mgr, round(mgr/100,2),round(mgr/1000,2) from scott.emp
                     round(m,n),四舍五入,保留n位。
sign函数:
                     select mgr,mgr-7800,sign(mgr-7800) from scott.emp
                     sign(n),n>0,取1;n=0,取0;n<0,取-1。
avg函数:
                     select avg(mgr) 平均薪水 from scott.emp
                     avg(字段名),求平均值。要求字段为数值型。
count函数:
                     select count(*) 记录总数 from scott.emp
                     count(字段名) 或 count(*),统计总数。
min 函数:
                     select min(sal) 最少薪水 from scott.emp
                     min(字段名),计算数值型字段最小数。
max函数:
                     select max(sal) 最高薪水 from scott.emp
                     max(字段名),计算数值型字段最大数。
sum 函数:
                  select sum(sal) 薪水总和 from scott.emp
                     sum(字段名),计算数值型字段总和。
用SQL录入数据
单行记录的录入:
                            Insert into 数据表(字段名1,字段名2)values(字段名1的值,字段名2的值)
注意:数值型字段,可以直接写值。字符型字段,要加单引号。日期型字段,要加上单引号。
多行记录的录入:
在数据的录入中,经常要将从数据表中查询到的数据稍做修改成批录入的情况,就是多行数据的录入。
Insert into 数据表 (字段名1,字段名2)(select (字段名1或运算,字段名2或运算) from 数据表 where 查询条件)
表间数据复制:
                            可以从一个数据表中选择需要的数据插入到全新的数据表中。
                     create table scott.test
                     as
                     (
                            select distinct empno,ename,hirdate
                            from scott.emp
                            where empno >= 7000
)
用SQL删除数据
删除记录:
                     delete from scott.test where empno >= 7500 and empno <= 8000
整表数据删除:
                     truncate table scott.test
truncate table 命令将快速删除数据表中的所有记录,但保留数据表的结构。这种快速删除与delete from数据表的删除全部数据表记录不一样,delete命令删除的数据将存储在系统回滚段中,需要的时候,数据可以回滚恢复,而truncate命令删除的数据是不可以恢复的。
用SQL更新数据
直接赋值更新:
                     update 数据表
                     set 字段名1 = 新的值,字段名2 = 新的值
                     where 条件
                     例:
                     update scott.emp
                     set empno = 8888,ename = ‘TOM’,hiredate = ’03-9 月-2002’
                     where empno = 7878
嵌套更新:
                     update 数据表
                     set 字段名1 = (select 字段列表 from 数据表 where 条件),字段名2 = (select 字段列表 from 数据表 where 条件)               ……
                     例:
                     update scott.emp
                     set sal =
                     (
                            select sal + 300 from scott.emp
                            where empno = 8888
)
                     where empno = 8888
分享到:
评论

相关推荐

    习科SQL注入系列整理.rar

    1. **参数化查询**:使用预编译的SQL语句,并将用户输入作为参数传递,而不是直接拼接到SQL字符串中。 2. **输入验证**:对用户输入进行严格的检查,只允许预期的数据格式。 3. **最小权限原则**:数据库连接应以...

    使用SQL语言实现数据动态查询 (1).pdf

    SQL 语言提供了 SELECT 语句进行数据库的查询,该语句具有灵活的使用方式和丰富的功能,使用户可以在程序运行过程中根据需要输入条件子句中的某些变量的值。 然而,在有些情况下仍显不足,比如,有时查询条件的个数...

    最新ASP通用防SQL注入代码

    2. **参数化查询**:使用参数化SQL语句,将用户输入作为参数传递,而不是直接拼接在SQL字符串中。这样可以阻止攻击者插入恶意SQL代码。 3. **白名单过滤**:仅允许特定类型的字符或数据格式,例如只允许数字、字母...

    sqlinject-sql注入资料

    攻击者会在Web表单、URL参数或其他输入字段中插入恶意SQL代码,这些代码会与正常的SQL查询合并执行,从而达到非法操作数据库的目的。 **攻击类型** - **联合查询注入**:攻击者通过构造联合查询语句来获取额外信息...

    Delphi + SQL Server 2008 登录系统

    【Delphi + SQL Server 2008 登录系统】是一个使用Delphi编程语言和Microsoft SQL Server 2008数据库构建的简单登录验证应用程序。这个项目对于初学者来说具有很高的学习价值,因为它展示了如何将客户端应用与数据库...

    世界省市县sql直接下载就可以用

    标题 "世界省市县sql直接下载就可以用" 暗示我们有一个SQL文件,其中包含了全球范围内的省、市、县的层级数据,适用于快速构建一个三级联动的地区选择功能。这个数据集经过处理,可以方便地导入到MySQL数据库中直接...

    ASP将Excel数据导入到SQLServer的实现代码

    在ASP中,将Excel数据导入到SQL Server是一种常见的数据迁移操作,特别是在处理大量数据时。...如果代码“有点乱”,可能是因为它没有遵循最佳实践或者没有充分注释,建议根据需求进行整理和优化。

    2020收集——泛微 Ecology流程表单常用JS脚本

    15. 根据流程编号查询相关流程并弹出流程页面,需要先执行SQL查询select requestid from workflow_requestbase where requestmark='查询的编号',然后使用获取到的requestid跳转至/workflow/request/ViewRequest.jsp...

    Oracle数据库-PL、SQL使用方法整理[参考].pdf

    以上是文档中涉及的一些PL/SQL关键点,它们展示了在Oracle数据库环境中如何编写和使用PL/SQL代码进行数据处理、用户界面交互以及错误处理等操作。掌握这些技能对于进行Oracle数据库的软件开发至关重要。

    asp做的excel上传SQLSERVER数据库

    标题中的“asp做的excel上传SQLSERVER数据库”表明这是一个关于使用ASP(Active Server Pages)技术将Excel数据上传到SQL Server数据库的应用。ASP是一种经典的服务器端脚本语言,常用于构建动态网页。在这个场景中...

    导出excel.XLS表格数据到MS SQLSERVER数据库中.zip

    这个压缩包文件"导出excel.XLS表格数据到MS SQLSERVER数据库中.zip"包含了完成这一过程所需的资源,比如宏模块(Module1.bas)、表单(Form1.frm)以及一个Excel工作簿(che.xls)。下面我们将详细讲解这个过程涉及...

    Excel数据导入SQL

    Excel作为数据处理的便捷工具,可以方便地进行数据编辑和整理,而SQL(Structured Query Language)则是用于管理和处理关系型数据库的强大语言。当我们需要将Excel中的大量数据存入SQL数据库时,asp.net+C#的组合为...

    PHP+SQL公共课平时成绩查询系统(源代码+lw+PPT).rar

    理解表单提交、URL编码、Cookie和Session的概念对于理解用户登录、成绩查询等功能至关重要。 5. MVC模式:Model-View-Controller模式是一种常见的Web应用程序设计模式,用于分离业务逻辑、数据模型和用户界面。在这...

    Sql注入原理简介_动力节点Java学院整理

    SQL注入是一种常见的网络安全威胁,主要针对使用SQL(结构化查询语言)操作数据库的应用程序。攻击者通过在输入字段中插入恶意的SQL代码,欺骗服务器执行非预期的数据库操作,从而获取敏感信息、篡改数据甚至破坏...

    基于ASP.NET网站防范SQL注入的网络安全技术分析.pdf

    SQL注入是一种常见的针对网站数据库的安全攻击技术,攻击者通过在网页表单输入、URL参数等位置插入恶意的SQL命令,诱导服务器执行这些恶意SQL语句,进而获取数据库的访问权限。这类攻击可以使得攻击者获取敏感数据...

    图书信息管理系统 ACCESS+SQL

    在实际操作中,用户可以通过ACCESS创建的前端界面进行日常操作,如添加新书、更新书籍状态、查询借阅记录等,而复杂的统计分析和数据维护则由后台的SQL数据库完成。这种分离式的架构设计,使得系统维护更为便捷,...

    Delphi和SQL 的客户管理管理

    定期进行数据库维护,如碎片整理、备份恢复等。 最后,安全性也是CRM系统不可忽视的一环。Delphi7和SQL Server都提供了相应的安全机制,如角色权限管理、数据加密等。开发者应确保只有授权用户能访问特定数据,并且...

    表单测试.doc

    使用Excel进行路径计算可以帮助我们系统化地设计和管理这些测试用例。 接下来,我们转向上传组件测试用例。上传功能允许用户上传文件到服务器,常见于图片、文档、音频等类型的文件。测试点包括: 1. **文件类型...

Global site tag (gtag.js) - Google Analytics