本篇文章主要针对的是SQL server相关的基础命令,也会记一下其他数据库的命令如MySQL。

SQL Server常用查询命令:

查看当前时间

SQL server:select getdate()

MySQL:now()、current_date()

查询所有数据库名

SQL server:

select name from master.. sysdatabases order by name;

MySQL:

show database; (显示数据表也是相似: use 数据库名; show tables;

查询当前使用的数据库名

--@@spid是当前用户进程的会话 ID
--用此会话ID在Master..SysProcesses中查得当前用户进程使用的数据库ID
--再用此数据库ID在查得Master..SysDataBases中查到对应的数据库名称
Select Name From Master..SysDataBases Where DbId=( Select Dbid From Master..SysProcesses Where Spid = @@spid)

MySQL:

select database();

查询前几条数据

SQL server:

 /*查询前10条数据 */
select top 10 * from table (表名);

Oracle:

select * from table where rownum =10;

MySQL:

select * from table limit 0,10; /*limit参数必须是整型,参数可以是一个也可以是两个。第一个参数指定第一个返回记录行的偏移量,第二个指定返回记录行的最大数目。 该语句意思返回表的前10条记录。

去重查询

select distinct (字段) from table(表名);

字段换名

/**
*AS可以省略
*/
SELECT 字段1,字段2 AS '新名字' FROM TABLE(表名);
--------------------------------------------
select 字段1,字段2=(xxxx) from table; /*as 只换名,不计算;‘=’侧重计算*/

查询不等于

SELECT * FROM TABLE WHERE 字段 !=值;
SELECT * FROM TABLE WHERE 字段 <>值;
/*其他的>,<,=,=<等等就不说了*/

查询在两个值之间数据

SELECT * FROM TABLE(表名) WHERE 字段>=值1 AND 字段<=值2;
select * FROM TABLE(表名) WHERE 字段 BETWEEN 值1 AND 值2;

查询条件或

SELECT * FROM TABLE(表名) WHERE 字段=值1 OR 字段=值2;
SELECT * FROM TABLE(表名) WHERE 字段 IN(值1,值2);

模糊匹配查询

SELECT * FROM TABLE WHERE 字段 LIKE '%值%';//包含 /* %代表容易长度的字符,可以为0*/
SELECT * FROM TABLE WHERE 字段 LIKE '值%';//以某个字符开始匹配
SELECT * FROM TABLE WHERE 字段 LIKE '_值%';//以第二个字符为开始匹配 /*‘_’下划线代表任意单个字符*/

查询为空

SELECT * FROM TABLE WHERE 字段 IS NULL;//为空
SELECT * FROM TABLE WHERE 字段 IS NOT NULL;//不为空

注:这里的“is”不能用等于“=”代替

排序条件查询

SELECT * FROM TABLE ORDER BY 字段 ASC(默认);//升序
SELECT * FROM TABLE ORDER BY 字段 DESC;//降序
SELECT * FROM TABLE ORDER BY 字段1 DESC,字段2 DESC;//多字段排序

聚合查询

SELECT COUNT(*) FROM TABLE;//总行数
SELECT COUNT(字段) FROM TABLE;//字段不为NULL的行数
SELECT SUM(价格字段) FROM TABLE;//字段值总和
SELECT AVG(价格字段) FROM TABLE;//字段值平均值
SELECT MAX(价格字段) AS '最大价格' FROM TABLE;//字段最大值
SELECT MIN (价格字段) AS '最小价格' FROM TABLE;//字段最小值

注:

1.当聚集函数遇到空值时,除了count(*)外,都跳过空值而只处理非空值。

2.聚集函数只能用于select子句和group by中的having子句。

分组查询

SELECT 字段1,COUNT(0) FROM TABLE WHERE 字段2>值(条件) GROUP BY 字段1;
SELECT 字段1,字段2... FROM TABLE GROUP BY 字段1,字段2... HAVING COUNT(字段)条件;

连接查询

内连接

等值连接,非等值连接,自然连接,因为技术上并无差别,所以无需赘述

inner join或者join

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;

或:

SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;

注释:INNER JOIN 与 JOIN 是相同的。

内连接只会返回符合条件的行,对于无法匹配的行则不返回;

外连接(外连接包括三种,下面分项目详解)

外连接至少会返回一张表的全部内容

1.左外连接

left outer join

从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。

SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name=table2.column_name;

注释:在某些数据库中,LEFT OUTER JOIN 称为 LEFT JOIN。

2.右外连接(大致同上)

right outer join

从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL。

3.完全连接

full outer join

FULL OUTER JOIN 关键字只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行.

FULL OUTER JOIN 关键字结合了 LEFT JOIN 和 RIGHT JOIN 的结果。

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;

集合查询

集合操作主要包括:并操作Union、交操作intersect、差操作except

并操作Union

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

注:

默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

交操作intersect

例子:查询计算机系的学生与年龄不大于19岁的学生的交集

SELECT * from student where sdept='CS'
intersect
SELECT * FROM student where Sage<=19;

注:实际上就是查询计算机系中年龄不大于19岁的学生

select * from Student where Sdept='CS' and Sage<=19;

差操作except

例子:查询计算机系学生与年龄不大于19岁学生的差集

select * from Student where Sdept='CS'

except

select * from Student where Sage<=19;

注:也就是查询计算机系中年龄大于19岁的学生

select * from Student where Sdept='CS' and Sage>19;

sql常用查询命令的更多相关文章

  1. Eucalyptus常用查询命令

    前言: Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems (Eucalyptus)  ...

  2. mysql常用查询命令

    转引自:https://www.cnblogs.com/widows/p/7137184.html 常用mysql命令 show variables like 'character_set_clien ...

  3. SQL 常用的命令 (转)

    地址:http://www.cnblogs.com/longly/p/6030609.html 设置SQL语句所用的字符编码:set names UTF8; 判断指定的数据库是否存在:DROP DAT ...

  4. MySQL常用查询命令(连接查询&子查询)

    多张表联合起来查询即为连接查询,可分为: 内连接:等值连接.非等值连接.自连接 外连接:右外连接.左外连接 也就是先把多张表通过某种指定条件用join...on...语法连接起来,然后再进行where ...

  5. MySQL常用查询命令(单表查询)

    查询语法如下: select... from... where... group by... (having)... order by...; 顺序是from (从指定表中) where (具体条件) ...

  6. SQL常用查询语句及函数

    1.日期匹配_获取时间差 select datediff(dd,getdate(),'12/25/2006')  --计算从今天到12/25/2006还有多少个月 2.不能通过IP连接数据库 在数据库 ...

  7. Oracle 学习笔记 常用查询命令篇

    1.查询某个用户下有多少张表 有时候很有用  select count(*) from dba_tables t where t.owner='SCOTT';

  8. Oracle常用查询命令

    Oracle查询完整格式如下: Select  *  from XX where XX group by YY having XX order by YY Select count(*), XX fr ...

  9. [SQL] 常用查询脚本

    查询哪些存储过程使用了某个表 select b.name from syscomments a,sysobjects b where a.id=b.id and a.text LIKE '%ftblo ...

随机推荐

  1. 让自己写的电子笔记连文带图全平台兼容(MarkDown图片显示兼容)

    目录 一.工具使用 语言使用:MarkDown 简介 使用原因 使用方法 软件使用:Typora 简介 环境设置搭建 1)搭建图床 2)配置PicGo 3)配置typora 4)测试 图片上传测试 平 ...

  2. 用AutoHotkey的热字串功能启动常用电脑程序软件 Version 2 Build 20191214

    ; 用AutoHotkey的热字串功能启动常用电脑程序软件 Version 2 Build 20191214 ; 电脑上的快捷键太多了,记都记不住,容易冲突和搞混,所以做了个热字串启动; 用法:运行此 ...

  3. 京东购物小程序 | Taro3 项目分包实践

    背景 京东购物小程序作为京东小程序业务流量的主要入口,承载着许多的活动和页面,而很多的活动在小程序开展的同时,也会在京东 APP 端进行同步的 H5 端页面的投放.这时候,一个相同的活动,需要同时开发 ...

  4. idea创建普通Web项目lib目录无法输出,tomcat不报错问题

    idea创建普通Web项目lib目录无法输出,tomcat不报错问题 idea版本:2021.2 tomcat版本:9.0.50 项目结构 创建一个普普通通的web项目,目录结构大概就是这样 . ├─ ...

  5. noip模拟测试31

    终于有时间写博客了,前面一直咕咕咕都快变成一只公鸡了......这次考试,真的很意外,我在考场上觉得自己打出了T1的正解,样例一拍就过,还跑得嘎嘎快,然后T2,T3码了两个暴力,觉得自己应该能100p ...

  6. 【剑指offer】59 - I. 滑动窗口的最大值

    剑指 Offer 59 - I. 滑动窗口的最大值 知识点:队列:滑动窗口:单调 题目描述 给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值. 示例 输入: nums = [ ...

  7. 神奇的 SQL 之别样的写法 → 行行比较

    开心一刻 昨晚我和我爸聊天 我:"爸,你怎么把烟戒了,也不出去喝酒了,是因为我妈不让,还是自己醒悟,开始爱惜自己啦?" 爸:"儿子啊,你说的都不对,是彩礼又涨价了.&qu ...

  8. 【LeetCode】316. 去除重复字母

    316. 去除重复字母 知识点:栈:单调 题目描述 给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次.需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置). 示例 输 ...

  9. 痞子衡嵌入式:在IAR开发环境下将关键函数重定向到RAM中执行的三种方法

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是在IAR开发环境下将关键函数重定向到RAM中执行的三种方法. 嵌入式项目里应用程序代码正常是放在 Flash 中执行的,但有时候也需要将 ...

  10. eclipse选中参数高亮显示设置

    window - preference - java - Editor - Mark Occurrences