1.数据库分类

关系型 非关系型

2.sql语句分类

sql: ddl数据库定义语言  tpl事物处理语言 dcl数据控制语言  dml数据操作语言(insert delete update select)

增加数据库处理效率 减少相应时间

减少数据库服务器负载 增加服务器稳定性

减少服务器间通讯网络流量

3.join语句

inner(内连接)

--inner join

内连接inner join基于连接谓词将两张表(如A和B)的列组合在一起,产生新的结果表

select <select_list> from tableA A inner join tableB B on A.key=B.key;

(select a.`user_name`,a.`over`,b.`over` from user1 a inner join user2 b on a.`user_name`=b.`user_name`;)

full outer(全外连接)

--full join

(如何在mysql中使用full join??)

join操作类型-full join

select a.`user_name`,a.`over`,b.`over`

from user1 a

left join user2 b on a.`user_name`=b.`user_name`

union

select b.`user_name`,b.`over`,a.`over`

from user1 a

right join user2 b on a.`user_name`=b.`user_name`

left outer(左外连接)

--left join

select a.`user_name`,a.`over`,b.`over` from user1 a left join user2 b on a.`user_name`=b.`user_name` where b.user_name is null;

right outer(右外连接)

--right join(同left join)

cross(交叉连接)

--cross join

笛卡尔查询

4.join语句

更新使用过滤条件中包括自身的表

联合更新

update user1 a join(

select b.`user_name` from user1 a inner join user2 b on

a.`user_name`=b.`user_name`

) b on a.`user_name`=b.`username`

set a.over = 'qitiandasheng';

5.使用join优化子查询

6.使用join优化聚合子查询

查询四人组中打怪最多的日期(避免子查询)

select a.`username`,b.`timstr`,b.kills from user1 a join user_kills b on a.id = b.user_id where

b.kills = (select max(c.kills) from user_kills c where c.user_id=b.user_id);

select a.user_name,b.timestr,b.kills from user1 a

join user_kills b on a.id = b.user_id

join user_kills c on c.user_id = b.user_id

group by a.user_name,b.timestr,b.kills

having b.kills = MAX(c.kills);

group by 分组查询

当同时含有where子句、group by 子句 、having子句及聚集函数时,执行顺序如下:
--执行where子句查找符合条件的数据;
--使用group by 子句对数据进行分组;对group by 子句形成的组运行聚集函数计算每一组的值;最后用having 子句去掉不符合条件的组。
--having 子句中的每一个元素也必须出现在select列表中。有些数据库例外,如oracle.
--having子句和where子句都可以用来设定限制条件以使查询结果满足一定的条件限制。
--having子句限制的是组,而不是行。where子句中不能使用聚集函数,而having子句中可以。

sql开发技巧总结-1的更多相关文章

  1. SQL开发技巧(二)

    本系列文章旨在收集在开发过程中遇到的一些常用的SQL语句,然后整理归档,本系列文章基于SQLServer系列,且版本为SQLServer2005及以上-- 文章系列目录 SQL开发技巧(一) SQL开 ...

  2. SQL开发技巧(二) 【转】感觉他写的很好

    本文转自: http://www.cnblogs.com/marvin/p/DevelopSQLSkill_2.html 本系列文章旨在收集在开发过程中遇到的一些常用的SQL语句,然后整理归档,本系列 ...

  3. Sql开发技巧

    原文:Sql开发技巧 简介 本文主要介绍下述几个技巧: 使用Row_Number分页 事务 根据条件刷选记录的技巧 分页 主要是使用了Row_Number()这个函数.一般如下: declare @P ...

  4. sql开发技巧总结-2

    ---恢复内容开始--- 1.如何进行行列转换 需求: 列转换成行 select a.`user_name`,sum(b.kills) from user1 a join user_kills b o ...

  5. Mysql - 开发技巧(二)

    本文中的涉及到的表在https://github.com/YangBaohust/my_sql中 本文衔接Mysql - 巧用join来优化sql(https://www.cnblogs.com/dd ...

  6. SQL优化技巧

    我们开发的大部分软件,其基本业务流程都是:采集数据→将数据存储到数据库中→根据业务需求查询相应数据→对数据进行处理→传给前台展示.对整个流程进行分析,可以发现软件大部分的操作时间消耗都花在了数据库相关 ...

  7. DelphiXE2 DataSnap开发技巧收集

    DelphiXE2 DataSnap开发技巧收集 作者:  2012-08-07 09:12:52     分类:Delphi     标签: 作为DelphiXE2 DataSnap开发的私家锦囊, ...

  8. delphi XE5下安卓开发技巧

    delphi XE5下安卓开发技巧 一.手机快捷方式显示中文名称 project->options->Version Info-label(改成需要显示的中文名即可),但是需要安装到安卓手 ...

  9. thinkphp开发技巧经验分享

    thinkphp开发技巧经验分享 www.111cn.net 编辑:flyfox 来源:转载 这里我给大家总结一个朋友学习thinkphp时的一些笔记了,从变量到内置模板引擎及系统变量等等的笔记了,同 ...

随机推荐

  1. Socket编程, 在server端read()函数调用后显示错误:Transport endpoint is not connected (犯了低级错误)

    for(;;){ socklen_t len = sizeof(client_address); connfd = accept(listenfd, (struct sockaddr *)&c ...

  2. 1106SQLserver基础--变量、运算符的使用,if...else,while语句

    数据库---变量(对数据库中的数据没有任何影响) 作用:临时存储数据的作用,起一个衔接的作用,为了方便理解存储过程. 例:Declare @hello varchar(20) Set @hello=’ ...

  3. 如何设置select下拉禁止选择

    转自:https://blog.csdn.net/you23hai45/article/details/52233207

  4. LAMP 3.1 mysql的root密码重置

    给mysql设置密码 /usr/local/mysql/bin/mysql -uroot 可以直接登录mysql 设置密码 /usr/local/mysql/bin/mysqladmin -uroot ...

  5. 【转】如何使用Java、Servlet创建二维码

    归功于智能手机,QR码逐渐成为主流,它们正变得越来越有用.从候车亭.产品包装.家装卖场.汽车到很多网站,都在自己的网页集成QR码,让人们快速找到它们.随着智能手机的用户量日益增长,二维码的使用正在呈指 ...

  6. taglib标签在web.xml文件中报错的解决办法

    报错的原因分析: 在jsp2.0中,且2.4版的DTD验证中,taglib描述符,正确写法是放到<jsp-config></jsp-config>描述符中.所以,我们的tagl ...

  7. WPA密码攻击宝典

    原则:密码以8-10位为主.11位仅限于当地手机号.一般人的多年用数字做密码的习惯和心理,先数 字.再字母,或数字.字母重复几遍,字符几乎全用小写,所以淘汰大写及"~!@#$%^&* ...

  8. IE的haslayout

    haslayout 是Windows Internet Explorer渲染引擎的一个内部组成部分.在InternetExplorer中,一个元素要么自己对自身的内容进行计算大小和组织,要么依赖于父元 ...

  9. JAVA中string类的split方法

    split([separator,[limit]])第一个参数为分隔符,可以是一个正则表达式,第二个参数为返回结果数组的长度

  10. 关于taskaffinity属性的作用

    意味着这activity更喜欢哪个TESK,具体见下方说明 当一个包含FLAG_ACTIVITY_NEW_TASK标志的intent启动一个activity时. 一个新的activity,默认地启动到 ...