SQL操作语句中的注意点

标签: sql 语句 注意 | 发表时间:2014-10-18 06:37 | 作者:a308690341
出处:http://blog.csdn.net

一 查询语句

1 distinct关键字消除重复行

当查询的结果数据中出现重复数据时,在查询条件中加上distinct关键字消除重复行;
如:select distinct Sno from SC;

2 like匹配的通配符%和_

% :代表任意长度(包括0)的字符串,例如:like'a%b',表示以a开头,以b结尾的任意长度的字符串;
_ :代表任意单个字符,注意数据库的字符集为ASCII时一个汉字需要两个_,当字符集为GBK时只需要一个_,例如:like'欧阳__';
注:当要查询的字符串本身就含有通配符%或_,这时就要用escape<'换码字符'>短语,对通配符进行转义了,例如:select  Cno,Ccredit from Course where Cname
like 'DB\_Design' escape '\';   escape'\'表示“\”为换行字符,这样匹配串中紧跟在“\”后面的字符“_”不再具有通配符的含义,转义为普通的“_”字符

3  涉及空值的查询

当查询某个字段值为空的条件下,字段与字段值之间要用"IS",不能用"="代替,例如:  select   Sno,Cno from SC where Grade IS NULL;

4  有关升序降序

如:select * from Student order by Sdept, Sage desc; 查询结果按所在系的系号(Sdept)升序排列,同一系中的学生按年龄降序排列

5  关于聚集函数的一些注意

在聚集函数(如:count() sum() avg() max() min()等)遇到空值时,都跳过空值而只处理非空值。注意:where字句中是不能用聚集函数作为条件表达式的

6   group by分组条件中的having短语指定筛选条件

如果group by分组后,还要要求按一定的条件对这些组进行筛选,最终只输出满足指定条件的组,可以使用having短语指定筛选条件;
如:select Sno from SC group by Sno having count(*) > 3;       这里先用group by字句按Sno进行分组,然后再用聚集函数count 对每一组计数,having短语给出了选择组的条件,只有满足条件的组(即元组个数>3)才会被选出来
注意:where字句作用于基本表或视图,从中选择满足条件的元组。having短语作用于组,从中选择满足条件的组

7   关于嵌套查询的注意

嵌套查询是将一个查询块(子查询)嵌套在另一个查询块(父查询)的where字句或having短语的条件中的查询;
需要特别指出的是,子查询的select语句中不能使用order by字句,order by字句只能对最终查询结果排序

8   带有exists谓词的子查询

exists代表存在量词。所以带有exists谓词的子查询不返回任何数据,只产生逻辑真‘TRUE’,或逻辑假‘FALSE’。
例如:select Sname from Student where exists (select * from SC where Sno=Student.Sno and Cno='1'); 由exists引出的子查询,其目标列表达式通常用*,因为带exists的子查询只返回真值或假值,给出别名无实际意义

9   集合查询

集合操作主要包括并操作UNION,交操作INTERSECT和差操作EXCEPT;
union的使用比较多,将多个查询结果合并起来,系统会自动去掉重复元组,如果要保留重复元组则用union all操作符;
intersect的使用是获取多个查询结果中相同的结果(即取交集)
except的使用是用前一个查询结果减去后一个查询结果(即取差集)

二 插入语句

1  插入子查询结果

子查询不仅可以嵌套在select语句中,也可以嵌套在insert语句中,用以生成要插入的批量数据
例如:insert into Dept_age(Sdept, Avg_age)  select Sdept, avg(Sage) from Student group by Sdept;

三 修改语句

1  修改表中所有数据的值

如:update Student set Sage=Sage+1;

四 模式的删除

删除模式语句:drop schema  <模式名> <cascade | restrict>
选择cascade(级联),表示在删除模式的同时把该模式中所有的数据库对象全部一起删除
选择restrict(限制),表示如果该模式中定义了下属的数据库对象(如:表,视图等),则拒绝该删除语句的执行。只有当该模式下没有任何下属的对象时才能执行drop schema语句
作者:a308690341 发表于2014-10-17 22:37:41 原文链接
阅读:40 评论:0 查看评论

相关 [sql 语句 注意] 推荐:

SQL操作语句中的注意点

- - CSDN博客推荐文章
1 distinct关键字消除重复行. 当查询的结果数据中出现重复数据时,在查询条件中加上distinct关键字消除重复行;. 如:select distinct Sno from SC;. 2 like匹配的通配符%和_. % :代表任意长度(包括0)的字符串,例如:like'a%b',表示以a开头,以b结尾的任意长度的字符串;.

sql语句总结

- zhaoloving - 博客园-首页原创精华区
1、创建数据库语句(以部门表(department)和员工表(employee)位例). --员工表 employee.   alter table [表名] add .     constraint [键名] Primary key [主键名称].   alter table [表名] add.      constraint [键名] unique(唯一键名称).

SQL语句大全

- - SQL - 编程语言 - ITeye博客
原文地址:http://www.cnblogs.com/yubinfeng/archive/2010/11/02/1867386.html. 3、说明:备份sql server. --- 创建 备份数据的 device. A:create table tab_new like tab_old (使用旧表创建新表).

sql经典语句

- - 数据库 - ITeye博客
3、说明:备份sql server. --- 创建 备份数据的 device. table tab_new like tab_old (使用旧表创建新表). DB2中列加上后数据类型也不能改变,唯一能改变的是增加. 注:索引是不可更改的,想更改必须删除重新建. 10、说明:几个简单的基本的sql语句.

sql语句优化

- - 数据库 - ITeye博客
性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化. 为了获得稳定的执行性能,SQL语句越简单越好. 对复杂的SQL语句,要设法对之进行简化. 1)不要有超过5个以上的表连接(JOIN). 2)考虑使用临时表或表变量存放中间结果.

Java中如何解析SQL语句、格式化SQL语句、生成SQL语句?

- - 程序猿DD
昨天在群里看到有小伙伴问,Java里如何解析SQL语句然后格式化SQL,是否有现成​类库可以使用. 之前TJ没有做过这类需求,所以去研究了一下,并找到了一个不过的解决方案,今天推荐给大家,如果您正要做类似内容,那就拿来试试,如果暂时没需求,就先了解收藏(技多不压身). JSqlParser是一个用Java编写的SQL解析器,可以将SQL语句解析为Java对象,从而使开发人员能够轻松地分析、修改和重构SQL查询.

SQL查询语句(oralce)(1)

- - ITeye博客
  主要用于创建删除数据库对象和维护数据对象的属性. 主要有三个主命令:CREATE .DROP. SQL>CREATE TABLE 表1 AS SELECT * FROM 表2;. SQL>DROP TABLE 表名;. SQL>--添加.修改.删除字段. SQL> ALTER TABLE 表名 ADD/MODIFY(字段 类型);.

(转)经典sql查询语句大全

- - SQL - 编程语言 - ITeye博客
3、说明:备份sql server. --- 创建 备份数据的 device. A:create table tab_new like tab_old (使用旧表创建新表). DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度. 7、说明:添加主键: Alter table tabname add primary key(col).

P6SPY 2.0 发布,SQL 语句拦截

- - 开源中国社区最新新闻
8年过去了,P6SPY 发布了全新稳定版本 2.0 ,P6Spy是一个可以用来在应用程序中拦截和修改数据操作语句的开源框架. 通过P6Spy我们可以对SQL语句进行拦截,相当于一个SQL语句的记录器,这样我们可以用它来作相关的分析,比如性能分析. 下载地址: https://github.com/p6spy/p6spy/wiki/Download.

如何写出高性能SQL语句

- - Oracle - 数据库 - ITeye博客
优化SQL查询:如何写出高性能SQL语句. 1、首先要搞明白什么叫执行计划. 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生欀如一条SQL语句如果用来从一个10万条记录的表中查1条记录,那查询优化器会选择“索引查找”方式,如果该表进行了归档,当前只剩下5000条记录了,那查询优化器就会改变方案,采用“全表扫描”方式.