为SQL零基础同学提供的入门资料

资料来自《SQL必知必会》

一.检索数据

SELECT

l  检索单个列

Select列from 表;

l  检索多个列

Select 列,列 from 表;

l  检索所有列

Select * from 表;

二.排序检索数据

l  排序

Select 列 from 表 order by 列;

l  按多个列排序

Select 列,列,… from 表 order by 条件A,条件B;

先按条件A排序,再按B排

l  按列位置排序

Select 列 from 表 order by 2,3;

按第二列和第三列排序

l  按指定位置排序

DESC降序,ASC升序

Select 列 from 表 order by 列 DESC,列,…

三.过滤数据

l  使用where字句

Select 列 from 表 where 条件


操作符


描述


=


等于


<>


不等于


>


大于


<


小于


>=


大于等于


<=


小于等于


BETWEEN


在某个范围内


LIKE


搜索某种模式


!=


不等于


!<


不小于


!>


不大于


IS NULL


为NULL值

l  检查单个值

Select 列 from 表 where 列 运算符 值

l  不匹配检查

Select 列 from 表 where 列 不等于 条件

l  范围值检查

Select 列 from 表 where 列 BETWEEN 值 AND 值

l  空值检查

Select 列 from 表 where 列 IS NULL;

四.高级数据过滤

l  组合WHERE字句

l  操作符

l  AND

Select 列 from 表 where 列 条件 and 列 条件

l  OR

Select 列 from 表 where 列 条件 or 列 条件

l  AND和OR组合

SQL在处理OR操作符前,优先处理AND操作符,如果要优先处理OR,则要用圆括号括起来。

l  IN

IN操作符用来指定条件范围,范围中每个条件都可以进行匹配。

Select 列 from 表 where 列 in (条件,条件,…)

字符串记得用单引号包含起来

l  NOT

否定NOT之后所跟的任何条件。

Select 列 from 表 where not 列 条件

五.用通配符进行过滤

通配符:用来匹配值的一部分的特殊数字符

通配符搜索只能用于文本字段。

注意:根据DBMS的不同及其配置,搜索可以是区分大小写的。

l  LIKE操作符

l  百分号(%)通配符

%表示任何字符出现任意次数

Select 列 from 表 where 列 like ‘%文本%’;

l  下划线(_)通配符

用途与%一样,但是下划线只匹配单个字符

l  方括号([])通配符

指定一个字符集,它必须匹配指定位置(通配符的位置)的一个字符

例如为了找出所有名字以J或M起头的联系人

Select 列 from 表 where 列 like ‘[JM]%’

此通配符可以用^来否定

六.创建计算字段

l  拼接字段

在SQL中的SELECT语句中,可以使用一个特殊的操作符来拼接两个列:加号或者两个竖杠。

p.s.我在oracle中只能用||,不知是不是自己打错了

去掉空格可以使用SQL的RTRIM()函数完成

p.s 为啥我上边没加RTRIM也没有空格,和书上不太一样~

l  使用别名

列别名是一个字段或值的替换名

l  执行算数计算

Select 计算公式 as 别名 from 表 where 条件

七.使用函数

l  文本处理函数

UPPER() 将文本转换为大写

Select 列,upper(列) as 别名 from 表 order by 列

常用文本处理函数


LEFT()


返回串左边的字符


LENGTH()


返回串的长度


LOWER()


将串转换为小写


LTRIM()


去掉串左边的空格


RIGHT()


返回串右边的字符


RTRIM()


去掉串右边的空格


SOUNDEX


返回串的SOUNDEX值


UPPER()


将串转换为大写

SOUNDEX是一个将任何文本串转换为描述其语音标识的字母数字模式的算法

EXAMPLE:

Select 列 from 表 where soundex(列)=SOUNDEX(‘Michael Green’)

它匹配所有发音类似于Michael Green的联系名。

l  日期和时间处理函数

DATEPART():返回日期的某一部分

检索2004年所有订单

Select 列 from 表 where datepart(yy,列) = 2004;年所有订单

注意:ORACLE没有DATEPART()函数

DD-MMM-YYYY格式的日期一般能被ORACLE正确处理

Select 列 from 表 where to_number(to_char(order_date,’YY’)) = 2004;

to_number() 用来将提取出来的成分转换为数值

to_char()函数用来提取日期的成分

select 列 from 表 where order_date BETWEEN to_date(’01-JAN-2004’) AND to_date(’31-DEC-2004’);

l  数值处理函数


ABS()


绝对值


COS()


余弦


EXP()


指数值


PI()


圆周率


SIN()


正弦


SQRT


平方根


TAN


正切

八.汇总数据

l  SQL聚集函数


AVG()


平均值


COUNT()


行数


MAX()


最大值


MIN()


最小值


SUM()


某列之和

AVG()

select AVG(列) as 别名 from 表;

COUNT

select COUNT(列) as 别名 from 表;

其他几个类似,不赘述了。

l  聚集不同值

select AVG(DISTINCT 列) as 别名 from 表 where 条件

l  组合聚集函数

select count(*)  as 别名

min(列名)  as 别名

max(列名)  as 别名

avg(列名)  as 别名 from 表;

九.分组数据

l  数据分组

select 列,count(*) as 别名 from 表 group by 要按着分组的列;

l  过滤分组

select 列,count(*) as 别名 from 表 group by 要按着分组的列 having count(*) 条件

HAVING和WHERE的区别:WHERE在数据分组前进行过滤,HAVING在数据分组后进行过滤。

l  分组和排序

select 列,count(*) as 别名 from 表 group by 要按着分组的列 having count(*) 条件 ORDER BY 列;

l  select字句顺序

select

from

where

group by

having

order by

十.使用子查询

l  利用子查询进行过滤

假如信息存储在很多个表中

select 列 from 表 where 列 in (select 列 from 表 where 条件)

在SELECT语句中,子查询总是从内向外处理。

l  作为计算字段使用子查询

select 列,列,(select count(*) from 列 where 条件) as 别名 from 表 order by 列;

十一.联结表

SQL最强大的功能之一就是能在数据查询的执行中联结(join)表。

如果数据存储在多个表中,怎样用单条select语句检索出数据?答案是使用联结。

  • 创建联结
select 列,列,列 from 表 INNER JOIN 表 ON 条件;

联结条件用特定的ON字句而不是WHERE字句给出。

时间: 2024-11-05 17:55:27

为SQL零基础同学提供的入门资料的相关文章

零基础小白,如何入门计算机视觉?

计算机视觉是人工智能技术的一个重要领域,打个比方(不一定恰当),我认为计算机视觉是人工智能时代的眼睛,可见其重要程度.计算机视觉其实是一个很宏大的概念,下图是有人总结的计算机视觉所需要的技能树. 如果你是一个对计算机视觉一无所知的小白,千万不要被这棵技能树吓到.没有哪个人能够同时掌握以上所有的技能,这棵树只是让你对计算机视觉有个粗浅的认识. 先来打点鸡血,看看计算机视觉有什么用吧.下面的视频是计算机视觉在自动驾驶上的实际应用,其中涉及立体视觉.光流估计.视觉里程计.三维物体检测与识别.三维物体跟

【零基础】极星量化入门八:简单的boll实盘

一.前言 前一篇已经讲了boll的回测,那这里为啥又要说实盘呢?因为实盘运行与回测还是有些区别的.这里说的实盘是包括实盘模拟和实盘交易的,二者都是利用最新的行情做交易,这篇就讲一下最近关于实盘的心得. 二.代码修改 整体上实盘的代码与回测是差不多的,但是有几个要点注意和修改. 1.成交价格 在回测时我们使用的是K线收盘价+滑点,滑点只是模拟而已,回测的成交价还是我们制定的.但是在实盘时价格能否成交我们是不确定的,事实上我也遇到过对盘价+2个滑点结果没成交,一晚上过去这个持仓亏损2000多.所以实

【零基础】极星量化入门四:实现条件单功能

一.前言 最近有个童鞋反应A_SendOrder()自带的条件单功能不是很好用,主要是触发后的报单价格不灵活,于是我就想仿照9.3实现一个条件单的功能.主要的功能如下: 1.设置一个触发条件和委托价格 2.达到触发条件后按委托价格提交委托,返回订单编码 整个逻辑是很简单的,主要解决的问题是触发后的委托价问题. 二.代码解析 1.简述 为了便于使用,我定义了一个类,除了初始化,一共只有两个函数. class ConditionOrder(object): #初始化 def __init__(sel

零基础小白应该怎么入门编程开发

最近,在交流群里经常有苦逼小白问怎样学编程,对编程有兴趣但无从下手,这是个庞大到让大神们"无言以对"的命题.在知乎.CSDN等论坛上,许多同行也对此类问题进行了探讨,小编就其中认可度较高的回答进行了整理,以望给纠结的菜鸟们一些帮助,也欢迎大神们补充和拍砖. 1.决定学,要有兴趣并且是真正的下定决心 兴趣和耐心是老生常谈的话题,小编不在此唠叨,只要记住一点,现在程序员工资差异很大,有能力的程序员享受高薪,但只是略懂的伪程序员可能找不到工作,如果想靠敲代码生存生活,就在兴趣的基础上认真学习

javascript入门视频第一天 小案例制作 零基础开始学习javascript

JavaScript 是我们网页设计师必备的技能之一.我们主要用javascript来写的是网页特效.我们从零基础开始学习javascript入门. 但是,好的同学刚开始不知道怎么学习,接触js,因此,小强老师给大家写了这篇入门的javascript文章.从零基础开始学习js,使大家入门更简单,希望大家喜欢.JavaScript是一种脚本语言. 也是我们web网络中最为流行一种脚本语言.脚本语言:     1.不是独立存在的.需要依附.js就是依附在浏览器中.     2.脚本语言也是语言,也有

0基础怎么学习大数据?给零基础学习者支几招

小白如何学习大数据技术?大数据怎么入门?怎么做大数据分析?数据科学需要学习那些技术?大数据的应用前景等等问题,已成为热门大数据领域热门问题,以下是对新手如何学习大数据技术问题的解答~ 大数据开发学习可以按照以下内容进行学习 第一阶段:JavaSE+MySql+Linux 学习内容:Java 语言入门 → OOP 编程 → Java 常用Api.集合 → IO/NIO → Java 实 用技术 → Mysql 数据库 → 阶段项目实战 → Linux 基础 → shell 编程 学习目标:学习ja

零基础学习hadoop到上手工作线路指导(编程篇)

问题导读:1.hadoop编程需要哪些基础?2.hadoop编程需要注意哪些问题?3.如何创建mapreduce程序及其包含几部分?4.如何远程连接eclipse,可能会遇到什么问题?5.如何编译hadoop源码? 阅读此篇文章,需要些基础下面两篇文章零基础学习hadoop到上手工作线路指导(初级篇) 零基础学习hadoop到上手工作线路指导(中级篇)如果看过的话,看这篇不成问题,此篇讲hadoop编程篇. hadoop编程,hadoop是一个Java框架,同时也是编程的一次革命,使得传统开发运

零基础java培训靠谱吗?职场转行,零基础开始学Java开发靠谱吗?

学技术转行发展,是职场常见的提升方式,无论是在职充电还是为转行跳槽做准备,选择一个专业技能进行培训学习,都是非常可取的.在能力至上的今天,单凭学历已经不能成为入行敲门砖,特别是在互联网企业,通常在面试过程中就会考核技术能力,此外看你的项目作品,可见技术能力在招聘中是最具说服力的.华清远见教育职业规划专家表示零基础java培训靠谱吗,如果不清楚学什么技术更好,可以访问这里做职业规划,此外还可以通过试学来了解自己对技术课程的兴趣点. 华清远见教育开设的面向零基础人群提供的,从学习到就业一站式的浸入式

零基础学习hadoop到上手工作线路指导

问题导读: 1.hadoop编程需要哪些基础? 2.hadoop编程需要注意哪些问题? 3.如何创建mapreduce程序及其包含几部分? 4.如何远程连接eclipse,可能会遇到什么问题? 5.如何编译hadoop源码? 阅读此篇文章,需要些基础下面两篇文章 零基础学习hadoop到上手工作线路指导(初级篇) http://www.aboutyun.com/thread-6780-1-1.html 零基础学习hadoop到上手工作线路指导(中级篇) http://www.aboutyun.c