SQL 查询语句总结

ps:老本行,复习一下

SQL
查询语句总结

  1. 列名

    Select Sname AS 姓名 from Student;

    ·这里AS可以省略。

  2. 去重:distinct

    Select distinctSno from sc;

  3. WHERE条件查询

    比较              
    =/>/</>=/<=

    确定范围       
    between … and …/notbetween … and …

    确定集合       
    IN/NOT IN

    字符匹配       
    LIKE/NOT LIKE

    空值              
    IS NULL/IS NOTNULL

    多重条件       
    AND/OR

  4. LIKE匹配

    _下划线:匹配任意一个字符

    %百分号:匹配0个或多个字符;

    []:匹配[]中的任意一个字符。如[acgd]表示匹配a/c/g/d中的任何一个,对于连续的,可以写成[a-d];

    [^]:不匹配[]中的任何一个字符。写成[^abgd]。

  5. SQL Server中的库函数

    如:RTRIM,去掉尾随空格的干扰(默认保存时,多余位补充空格。)

    Select Sname from Student WHERE RTRIM(Sname)LIKE ‘王__’

  6. 涉及空值NULL的查询

    这里注意不能使用=/!=等符号,需要使用 ISNULL/IS NOT NULL。

  7. 多重查询条件,使用AND、OR

    Select Snamefrom Student WHERE Sdept=’计算机系’ AND Sage<20;

  8. 查询结果排序

    ·ASC从小到大、DESC从大到小

    ·默认按照升序

    ·可以按多个列进行排序,首先按前面的列排序,遇到相同记录再按照第二列排序。

  9. 聚合函数

    ·COUNT(*):统计表中元素的个数;

    ·COUNT(DISTINCT 列名):统计本列中非空列值的个数;(DISTINCT表示不包括列重复值)

    ·SUM:计算列值的和;

    ·AVG:平均值

    ·MAX:最大值

    ·MIN:最小值

    上述函数中除了COUNT(*)外,其他函数在计算过程中均忽略NULL值。

  10. 分组GROUP BY

    比如需要统计每个学生的考试成绩,而不是全体学生的考试平均成绩时,就需要现将学生进行分组。(按每个人)

    GROUPBY 分组依据

    HAVING组条件

    要求:

    (1)查询表中的每个列必须要么是分组依据列(在GROUP BY后边的列),要么是聚合函数;

    (2)GROUP BY后不能使用别名;

  11. 带WHERE分组的子句

    过程:先执行WHERE子句,再对筛选出的满足条件的数据执行GROUP BY操作。

  12. 按多列分组

    GROUP BYSdept,Ssex

    多列分组,多列值合在一起唯一的分组。

  13. 使用HAVING子句

    用于对分组后的结果进行再筛选。

    如:

    SelectSno,COUNT(*) 选课门数 FROM SC

    GROUP BY Sno

    HAVINGCOUNT(*)>3

    最后筛选出统计结果满足大于3的组。

    分组总结:

    ·WHERE子句用来筛选FROM子句中指定的数据源所产生的行数据;

    ·GROUP BY子句用来对经WHERE子句筛选后的结果数据进行分组;

    ·HAVING子句用来对分组后的结果数据再进行筛选。

  14. 普通多表连接查询

    如:

    SelectSname,Cno,Grade FROM Student S

    JOIN SC

    ON S.Sno =SC.Sno

    WHERE Sdep = ‘计算机系’

    注意:当为表指定了表名,在查询语句中的其他地方,所有用到表名的地方都要使用别名,而不能再使用原表名。

  15. 自连接

    一种特殊的内连接,指互相连接的表在物理上为同一张表。

  16. 外连接

    如:查询学生的选课情况,包括选了课程的学生和没有选课程的学生。

    SelectStudent.Sno,Sname,Cno,Grade

    From StudentLeft OUTER JOIN SC

    ON Student.Sno =SC.Sno

    有部分不满足表连接条件,但进行左外连接时也将它们显示出来,并将不满足连接条件的结果在相应列上放置NULL值。

  17. 子查询一个Select嵌套在另一个Select中。

    常用到IN、NOT IN。



版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-27 05:13:48

SQL 查询语句总结的相关文章

Hibernate 关于执行sql查询语句(转)

原文  http://www.yshjava.cn/post/543.html 主题 SQLHibernate Hibernate对原生SQL查询的支持和控制是通过SQLQuery接口实现的.通过Session接口,我们能够很方便的创建一个SQLQuery(SQLQuery是一个接口,在Hibernate4.2.2之前,默认返回的是SQLQuery的实现类--SQLQueryImpl对象,在下文中出现的SQLQuery如非注明,都是指该子类)对象来进行原生SQL查询: session.creat

将Sql查询语句获取的数据插入到List列表里面

Sql查询语句获取的数据是分格式的,我们还用SqlDataReader来做,然后用IDataReader来接收读取,以下是代码: //我想查询一个用户表的信息,该用户有姓名,密码,信息三列 //1.定义一个用户类型的List数组,userInfo类的代码在下方 List<userInfo> userInfo = new List<userInfo>(); //2.我们要读取查询语句的数据,并且保存了.这里我们将使用IDataReader语句 //数据库类的实例,类的代码在下方 DB

如何编写高效的SQL查询语句

概述 如何编写性能比较高的SQL查询语句呢?两个方法:创建合理的索引:书写高效的SQL语句 索引的基本原理 索引分为聚集索引和非聚集索引.一个表只能创建一个聚集索引和N个非聚集索引,这句话的由来主要是由于索引的原理决定的. 数据库中的一张表不论你创建不创建索引,或者,不论你创建那种类型的索引,其在硬盘上的存储是一样的,那么,创建索引和不创建索引,或者,创建聚集索引和非聚集索引的区别在什么地方呢? 其区别是表内数据在内存的存在形式.对于没有创建索引的表,其加载到内存里时,就只有数据块:对于有聚集索

Java连接MySQL数据库实现用户名密码的验证方法 Java语句中sql查询语句&#39;&#39; &quot;&quot;作用

//方法一,可以验证登录,但方法不实用.package com.swift; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; public class Logi

SQL查询语句 group by后, 字符串合并

原文:SQL查询语句 group by后, 字符串合并 合并列值 --******************************************************************************************* 表结构,数据如下: id value ----- ------ 1 aa 1 bb 2 aaa 2 bbb 2 ccc 需要得到结果: id values ------ ----------- 1 aa,bb 2 aaa,bbb,ccc 即:gr

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

一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4.说明:创建

Java 获取SQL查询语句结果

step1:构造连接Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/db","root","123"); step2:构造语句String sql = "select username,password from t_user where

工作中常用SQL 查询语句备忘

--当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列.select (case when a>b then a else b end ), (case when b>c then b esle c end) from table_name --求和查询 create table #tmp(rq varchar(10), shengfu nchar(1)) insert into #tmp values('2005-05-09','胜') insert into #tm

EF5中 执行 sql语句使用Database.ExecuteSqlCommand 返回影响的行数 ; EF5执行sql查询语句 Database.SqlQuery 带返回值

一: 执行sql语句,返回受影响的行数 在mysql里面,如果没有影响,那么返回行数为  -1 ,sqlserver 里面  还没有测试过 using (var ctx = new MyDbContext()) { ctx.Database.ExecuteSqlCommand("UPDATE Person SET Name = 'Michael' WHERE PersonID = 1"); } 二 : Database.SqlQuery<T>   EF5执行sql查询语句

15个初学者必看的基础SQL查询语句

本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧. 1.创建表和数据插入SQL 我们在开始创建数据表和向表中插入演示数据之前,我想给大家解释一下实时数据表的设计理念,这样也许能帮助大家能更好的理解SQL查询. 在数据库设计中,有一条非常重要的规则就是要正确建立主键和外键的关系. 现在我们来创建几个餐厅订单管理的数据表,一共用到3张数据表,Item Master表.Order Master表和Order Detail表. 创建表: 创建Item Maste