-- 单列查询
select 编号 from employees -- 多列查询
select 编号,姓名 from employees -- 查询所有列
select * from employees -- 将查询结果创建新表
select 编号,姓名 into 新表 from employees -- 为查询结果的列创建别名
select 编号 学号 , 姓名 as 昵称 , 出生日期 = 生日 , 地址 '家庭住址', 电话 "家庭电话" from employees -- 多表查询设置别名
SELECT employees.[姓名] , [ Salary ].收入 as 工资 FROM employees , [ Salary ] where [ Salary ].[编号]=employees.[编号] -- 为计算结果设置别名
select (收入 - 支出 ) as 纯收入 from [ Salary ] -- 删除重复数据 DISTINCT 必须在最前面,表示删除输出的行完全一样的,还带升序
select distinct 支出 from [ Salary ] -- 在SQLServer中限制查询结果 只显示前5
SELECT TOP 5 * FROM employees -- 在MySQL中限制查询结果 只显示前5和编号5开始的前10条数据
SELECT * FROM employees limit 5
SELECT TOP 5 * FROM employees limit 5 ,10 -- 在Oracle中限制查询结果
SELECT * FROM employees where rownum<= 5; -- 连接列值,在Oracle会报错因为拼接字符串使用||
SELECT 姓名+地址+电话 As 个人信息 from employees -- 条件查询
SELECT * FROM [ Salary ] where 收入>3000 -- 范围查询 BETWEEN ...And ... ,包含边界,也可以查询两个日期之间的数据
SELECT * FROM [ Salary ] where 收入 BETWEEN 2400.8 and 3160 -- 获取当前日期
SELECT GETDATE();
-- 函数表达式CONVERT(date_type[(length)],expressoon,style) mysql中使用DATE_FORMAT(date,format) Oracle中使用TO_CHAR(date,format)
-- 可以将长日期转换成短日期格式数据
CONVERT( char(10),getdate(),120)
-- REPLACE(CONVERT( char(10),getdate(),120), '-', '/')可以将日期中— 变成/
-- DATEDIFF(单位, 开始, 结束)计算两个日期间隔天数
-- DAY(日期)返回那一天
-- MONTH(日期)返回那个月份
-- YEAR(日期)返回那一年
-- 逻辑运算符优先等级 not and or -- 使用in操作符过滤数据,相当用多个or
SELECT * from employees where 姓名 in ('程锋' , '李丽' ,'刘明')
SELECT * from employees where 姓名 not in ('程锋' , '李丽' ,'刘明')
SELECT * from employees where 姓名 in (SELECT TOP 2 姓名 from employees)
SELECT * from employees where '程锋' in (姓名) -- SQLsercer:CAST(数值 AS 类型)数据表类型转换
-- LTRIM(character_expression)去除左空格 -- 模糊查询like %任意0或多字符 _ 任意单字符 []表示范围 ^[]范围外
-- ESCAPE定义转义字符,使各以上通配符能做正常使用
-- 匹配xx5%
SELECT * from employees where 姓名 like '%5/%' ESCAPE '/' -- 查找指定行,则查询前n性,再查询前n-1行,使用NOT EXISTS 操作符删除重复,进而得到n
-- SQLSrever 随机一行
SELECT top 1 * from employees ORDER BY NEWID()
-- MySQL随机一行
SELECT * from employees ORDER BY RAND () limt 1 -- 查询空值
SELECT * from employees WHERE 姓名 IS NUll
SELECT * from employees WHERE 姓名 IS not NUll
-- 空值处理
SELECT 姓名,生日, ISNULL(地址, '北京') as 住址 FROM employees
-- mysql只能使用ISNULL()单个参数判断是非为空,空就为1,否则就0 -- 排序
SELECT * from employees ORDER BY 编号 ASC
SELECT * from employees ORDER BY 编号 DESC
-- 也可以使用别名排序
-- 多对列排序也就是进行多级排序
-- 优先顺序从左到右
-- 获取说有排序规则 跟在order by后面COLLATE 设置排序规则
select *from ::fn_helpcollations() -- 聚合函数
-- SUM():数字求和 AVG():数字求平均
-- MIN:数字字符日期求最小
-- MAX:数字字符日期求最大
-- COUNT:统计行数量 null不统计·也可使用DISTINCT 统计不重复
-- 多个聚合函数在SQL Server中不能嵌套
-- 在Oracle中嵌套必须设置group by -- 分组统计
SELECT 性别 ,COUNT(*) as su FROM employees GROUP BY 性别
SELECT 性别 ,min(生日) as su FROM employees GROUP BY 性别
-- 可以进行多列分组,列必须是查询表中的列,结果为总的
-- 可利用ROLLUP和CUBE和WITH关键字对 GROUP BY 进行分类汇总和总汇总
-- 可使用having子语句对分组组内过滤,和where类似,但是不能离开group by单独使用
-- GROUP BY的列不一定要在select列中出现 -- 子查询最多32层,使用(),任何使用表达式的地方都可以使用子查询,只要返回是单个值
-- 不能有order by
-- 使用in和not in实现子查询的交集和差集运算
-- EXISTS判断子查询结果是否存在数据行
-- ALL操作符比较子查询中的每一个值只有全为true,结果才为true
-- some和any是一样的
SELECT [编号], [收入] from [ Salary ] where [收入]>any(SELECT AVG(收入) FROM [ Salary ]) -- 内连接:使用比较运算符进行列和列之间的比较
SELECT [姓名],[地址],[收入]from employees,[ Salary ]where employees.[编号]=[ Salary ].[编号]
SELECT [姓名],[地址],[收入]from employees INNER join [ Salary ] ON employees.[编号]=[ Salary ].[编号] -- 外连接:将某些不满足连接条件的数据也在连接结果中输出
-- 左连接:保留第一个表中所有行,
SELECT [姓名],[地址],[收入]from employees left join [ Salary ] ON employees.[编号]=[ Salary ].[编号] -- 右连接:保留第2个表中所有行,
SELECT [姓名],[地址],[收入]from employees right join [ Salary ] ON employees.[编号]=[ Salary ].[编号] -- 全外连接:保留左右连接
SELECT [姓名],[地址],[收入]from employees full join [ Salary ] ON employees.[编号]=[ Salary ].[编号] -- 交叉连接
SELECT [姓名],[地址],[收入]from employees cross join [ Salary ] -- 组合查询:必须两个以上的select语句,语句之间用union 关键字分隔
-- 每个列中的数目、类型相同或兼容
-- union all 返回重复行

SQL查询基本用法的更多相关文章

  1. Mybatis传递多个参数进行SQL查询的用法

    当只向xxxMapper.xml文件中传递一个参数时,可以简单的用“_parameter”来接收xxxMapper.java传递进来的参数,并代入查询. 但是,如果在xxxMapper.java文件中 ...

  2. SQL学习:查询的用法(1)

    在SQL servre的使用中,查询的用法是最多的.最重要的,也是最难学习的,因此掌握查询的用法很重要. 先将表的示例上图 员工表: 部门表:                             ...

  3. 【SQL】各取所需 | SQL JOIN连接查询各种用法总结

    前面 在实际应用中,大多的查询都是需要多表连接查询的,但很多初学SQL的小伙伴总对各种JOIN有些迷糊.回想一下,初期很长一段时间,我常用的似乎也就是等值连接 WHERE 后面加等号,对各种JOIN也 ...

  4. SQL查询关于相对路径、矢代、绝对路径、递归、计算列的速度对比跟优化-SOD群记录

    1秒查原本递归的查询. 适用于:上下级.多层查询 -- Get childs by parent id WITH Tree AS ( SELECT Id,ParentId FROM dbo.Node ...

  5. 【T-SQL基础】01.单表查询-几道sql查询题

    概述: 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础]02.联接查询 [T-SQL基础]03.子查询 [T-SQL基础 ...

  6. 用sql查询当天,一周,一个月的数据

    用sql查询当天,一周,一个月的数据   数据查询,不管在网站还是在系统,都很常见,下文是介绍最常见的以日期查询的语句 select * from ShopOrder where datediff(w ...

  7. SQL 查询总结

    参考资料: SELECT 查询语句格式与简单查询 SQL中distinct的用法 SQL 查询总结

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

    本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧. 1.创建表和数据插 ...

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

    (转)经典SQL查询语句大全 一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql s ...

随机推荐

  1. Python抓取国家医疗费用数据:国家名、人均开销

    前言 整个世界正被大流行困扰着,不同国家拿出了不同的应对策略,也取得了不同效果.这也是本文的脑洞来源,打算研究一下各国在医疗基础设置上的开支,对几个国家的医疗费用进行数据可视化. 由于没有找到最近一年 ...

  2. 请写出在ASP.NET中常用的几种页面间传值的方法,并说出它们的特点。

    QueryString 传递一个或多个安全性要求不高或是结构简单的数值.但是对于传递数组或对象的话,就不能用这个方法了 session(viewstate) 简单,但易丢失 作用于用户个人,过量的存储 ...

  3. spring引用hibernate映射文件的四种方式

    1.mappingResources 2.mappingLocations 3.mappingDirectoryLocations 4.mappingJarLocations 四种方式:https:/ ...

  4. 安装完kali linux之后要做的10件事——113p.cn

    1.添加国内更新源(可能不是最好的) vim /etc/apt/source.list 科技大学# deb http://mirrors.ustc.edu.cn/kali sana main non- ...

  5. css3 斜切角/斜边的实现方式来自BAT大神的出品

    设计图含有斜切角的效果时,我们一般想到的方法是切出四个角为背景,然后用border连起来,这样就能显示出该效果了,那么直接使用css呢?下面就整理css做斜边的效果. 1.方案一:利用linear-g ...

  6. css中input与button在一行高度不一致的解决方法

    在写html表单的时候,发现了一个问题:input和button设置了一样的宽高,但是显示高度确不一致,先看代码: <style> input,button{ width:100px; h ...

  7. 02-springboot整合elasticsearch初识

    1.ReactiveElasticsearchOperations     根据springboot官网提供的Elasticsearch操作,除了用rest风格的,还有reactiveElasticS ...

  8. 创建新用户后无法切换 su: failed to execute /bin/bash: Permission denied

    创建新用户后无法切换 su: failed to execute /bin/bash: Permission denied   当使用 su username 从root切换用户时显示 su: fai ...

  9. Spark 两种方法计算分组取Top N

    Spark 分组取Top N运算 大数据处理中,对数据分组后,取TopN是非常常见的运算. 下面我们以一个例子来展示spark如何进行分组取Top的运算. 1.RDD方法分组取TopN from py ...

  10. 洛谷 P2882 [USACO07MAR]Face The Right Way G

    题目传送门 题目描述 Farmer John has arranged his N (1 ≤ N ≤ 5,000) cows in a row and many of them are facing ...