一 查询语句

1 distinctkeyword消除反复行

当查询的结果数据中出现反复数据时。在查询条件中加上distinctkeyword消除反复行;
如: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语句

SQL操作语句中的注意点的更多相关文章

  1. mysql简单的sql操作语句

    一,常用.简单的SQL操作语句 1.数据库操作: 1)创建数据库: create database database_name: 创建并设置字符编码 create database database_ ...

  2. mongodb 操作语句与sql操作语句对比

    上行:SQL 操作语句 下行:Mongo 操作语句 CREATE TABLE USERS (a Number, b Number) db.createCollection("mycoll&q ...

  3. Microsoft SQL - 操作语句

    操作语句(Operation Statement) 操作数据库 创建数据库 关键字:create database 用于创建各种数据库对象(数据库.表.触发器.存储过程等) 格式如:create &l ...

  4. SQL操作语句

    SQL语句与Mysql的语句大体上比较相似.以下是sql server的一套练习题,是很好的数据库操作语句学习资料,学校的学习资料,在此整理了以下. 数据库exam:这是一个模拟电子商务,网上直销的数 ...

  5. 关于sql查询语句中的别名

    sql语句中给子查询或其他查询类型加别名的时候可能会报错 java.sql.SQLException: 无法转换为内部表示 原因是select返回类型的实体类中没有写该别名 原来的实体类 更改后的实体 ...

  6. SQL 操作语句

    SQL Server T-SQL高级查询 高级查询在数据库中用得是最频繁的,也是应用最广泛的. Ø 基本常用查询 --select select * from student; --all 查询所有 ...

  7. SQL查询语句中的 limit offset(转 )

    经常用到在数据库中查询中间几条数据的需求 比如下面的sql语句: ① selete * from testtable limit 2,1; ② selete * from testtable limi ...

  8. SQL操作语句之查询及删除重复记录的方法

    delete from 表 where id not in(select min(id) from 表 group by name ) //删除重复名字的记录 删除之前请用语句 select * fr ...

  9. 关于SQL连接语句中的Integrated Security=SSPI/ture/false

    解决方法:即:Security Support Provider Interface设置Integrated Security为 True 的时候,连接语句前面的 UserID, PW 是不起作用的, ...

随机推荐

  1. 多线程——达到Runnable介面

    部分博客(多线程--继承Thread类)介绍了java多线程的第一种实现方法--继承Thread类.这篇博客介绍另外一种方法--实现Runnable接口,并实现run方法. 还用上篇博客的样例.如今用 ...

  2. bellman_ford寻找平均权值最小的回路

    给定一个有向图,如果存在平均值最小的回路,输出平均值. 使用二分法求解,对于一个猜测值mid,判断是否存在平均值小于mid的回路 如果存在平均值小于mid的包含k条边的回路,那么有w1+w2+w3+. ...

  3. OPENVPN开启用户password认证

    一.服务端配置 1.改动openvpn的主配置文件,加入例如以下内容 [root@ttt openvpn]# cat /etc/openvpn/server.conf |more #########a ...

  4. 看PHP在内部迭代的动作

    以下我们来了解怎样实现一个自己定义的迭代器,然后再開始慢慢理解迭代器的内部工作原理.先来看一个官方的样例: <? php class myIterator implements Iterator ...

  5. WPF 3D:MeshGeometry3D的定义和光照

    原文 WPF 3D:MeshGeometry3D的定义和光照 由于WPF计算光照会根据整个平面的方向向量,所以如果在不同面上使用同一个点可能会达到不同的光照效果.让我们用不同的定义Mesh的方法来演示 ...

  6. 冒泡排序算法(Java)

     冒泡排序即每次遍历.相邻数字间进行比較,前者大于后者进行交换,不断将最大值后移,直至沉至最后位置:算法关键要点在于确定每次循环的边界. 后面两种算法则是对冒泡排序一定程度上的改良,但相对于其它排 ...

  7. Spring+Mybatis+SpringMVC后台与前台分页展示实例(附工程)(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文实现了一个后台由Spring+Mybatis+SpringMVC组成,分页采用Pag ...

  8. Android MVC MVP

    从.NET的宠物商店到Android MVC MVP   1 一些闲话 记得刚进公司的时候,我们除了做常规的Training Project外,每天还要上课,接受各种技术培训和公司业务介绍.当时第一次 ...

  9. Java线程Dump分析工具--jstack(转)

    jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使 ...

  10. BackGroundWorker使用总结

    方法: backgroundWorker1.CancelAsync() 用于取消异步执行 backgroundWorker1.ReportProgress(int ,object)用于向主线层报告进度 ...