2-1 SELECT语句基础

SELECT语句作用

SELECT 语句用于从表中选取数据。

结果被存储在一个结果表中(称为结果集)。

重点

  • 使用SELECT语句从表中选取数据。
  • 为列设定显示用的别名
  • SELECT语句中可以使用常数或者表达式。
  • 通过制定DISTINCT可以删除重复的行
  • SQL语句使用注释
  • 通过Where语句,从表中取出符合查询条件的数据。

表的查询

从表中选出必要的数据。(query)

语法:

SELECT <列名> ,  ……
FROM <表名>

注意,SELECT语句和FROM是两条子语句,必须同时存在。

例:

SELECT Name, Age,Phone
FROM Test;

则会输出

name    | age |    phone
-----------+-----+-------------
我是帅哥 | 20 | 15522222222
我是帅哥1 | 20 | 15522222223
(2 行记录)

查询表汇总所有的列

可以使用 代表所有列的 星号*

注意,使用星号的话,就无法设定列的显示顺序,此时就会按照CREATE TABLE 语句的定义对列进行排序。


为列设定别名

SQL语句可以使用AS关键字,为列设定别名。

语法:

    SELECT  <原列名字>  AS <新列别名>
FROM 表名;

实例:

SELECT  shohin_id  AS  id,
shohin_mei AS name,
shiire_tanka AS tanka
FROM Shohin;

使用双引号可以设定包含空格的别名,且可以使用中文的别名。


常数的查询

书写常数

可以将表中的一列数据设置为一列常数。

例如:

SELECT  1 AS column1 , 2 AS column2 , 'aa' AS column3 , test_id, test_num
FROM Test;

解释:将column1列所有记录都设为常数1,将column2列所有记录值都设为常数2,column3列,所有值都设置为字符串常量'aa'.同时显示Test表中,test_id, test_num列的值。


从结果中删除重复行

使用SELECT DISTINCT来实现删除重复数据。

例:

SELECT DISTINCT shohin_bunrui

执行结果,会将记录中相同值的记录进行删除,只会保留不同值的记录。

注意

  1. 在使用DISTINCT时,NULL也被视为一类数据。存在多条NULL数据时,只保留一个。
  2. DISTINCT关键字,只能加载第一个列名前,不能增加在其他地方。

使用WHERE

与SELECT区别

SELECT是将表汇总存储的数据全选出来,但是平时只需要筛选出满足某种条件的记录。

SELECT语句通过WHERE子句来指定查询数据的条件。

语法:

SELECT <列名>, ...
FROM <表名>
WHERE <条件表达式>;

WHERE执行流程:

1,会将列表的值,与WHERE语句条件相比较。如果相等Shohin表中的数据。

2.选出与SELECT语句指定的列。

WHERE注意:

SQL中子句的书写顺序是固定的不能够随意修改。WHERE子句必须几根在FROM子句之后


注释的书写方法

  1. 一行注释

    书写在--之后,只能在同一行。
  2. 多行注释

    使用/*可以跨越多行

2-2 算术运算符和比较运算符

注意

  1. 包含NULL的运算,其结果也是NULL。
  2. 判断是否为NULL,需要使用IS NULL 或者IS NOT NULL 运算符

算术运算符

四则运算

四则运算有+-*/

SQL中能够将列进行四则运算但是要求列的数据类型为INTEGER

注意:若将CHAR类型或者VARCHAR类型进行四则运算,则会报错。

例:

SELECT age *2  , name
FROM Test ;

需注意

四则运算中,若有一个操作数为NULL,那么该表达式的结果就为NULL

例:NULL + 1的结果就为NULL

FROM子句是否真的必要
SELECT语句很多时候都会搭配一个FROM子句。但是FROM子句不是一定必要的。
若不实用FROM子句,结果表只会输出一行的记录。需要使用这种的情况很少。
另外Oracle是不允许省略FROM子句的。

比较运算符

用在SELECT 后的选项会出现错误。

平时用在WHERE子句中。

可选运算符为:=><>=<=<>

运算符对各类型效果:

  • INTEGER

    正常比较效果。
  • DATE 日期类型

    若使用<。则表示在 DATE日期 之前

    '2015-4-17' < '2015-4-20'
  • 字符串类型

    对字符串使用比较运算符号时,是按照字典顺序进行比较的。

比较运算符与四则运算

比较运算符与四则运算能够配套使用。

比较运算符的优先级比四则运算要低

例:

SELECT    A, B
FROM Test
WHERE A-B > 500 ;

NULL的运算符

不能对NULL使用比较运算符

比较运算符的结果不会包括带有NULL比较的记录项

例如: A < > 2800 如果ANULL。那么A也不会出现在比较结果当中。

比较运算符的操作数不能为NULL

比较运算符的操作数为NULL,则结果不会显示数据项。

流入: A = NULL ,即使 ANULL也不会显示。

**使用IS NULLIS NOT NULL书写条件表达式。

例:

SELECT  a
FROM Test
WHERE a IS NULL;

2-3 逻辑运算符

基本逻辑运算符

  • NOT

    用于否定一个条件。

    例:
``` SQL
SELECT a
FROM Test
WHERE NOT a > 100 ;
```
等价于
``` SQL
SELECT a
FROM Test
WHERE a <= 100;
```
  • AND运算符和OR运算符

    AND运算符和OR运算符可以将多个条件进行组合。
  • 逻辑运算符的优先级

    与正常的OR/AND/NOT 一样, 由低变高。

含有NULL时的真值

对值为NULL 使用比较运算符后的判断结果,结果为UNKNOWN

这个值即不为真,也不为假。因此对此值使用NOT之后不能得到相反值。

TRUE/FALSE/UNKNOWN称为三值逻辑。

注意

UNKNOWN与任何其他的真值进行逻辑运算,结果都为UNKNOWN

SQL入门学习1-查询基础的更多相关文章

  1. Linq To sql入门练习 Lambda表达式基础

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  2. SQList3 and SQL入门学习笔记

    SQL 这是一个标准的计算机语言进行访问和操作数据库. 什么是 SQL? ·       SQL 指结构化查询语言 ·       SQL 使我们有能力訪问数据库 ·       SQL 是一种 AN ...

  3. SQL入门学习4-复杂查询

    5-1 视图 视图和表 视图和表的区别只有一个是否保存了实际的数据 使用INSERT和SELECT实际上就是从存储设备中读取数据,各种计算后,将数据呈现给用户. 视图不会将数据保存在存储设备中.实际上 ...

  4. SQL入门(1): 创建/查询/更新/连接/视图/SSMS简介

    本文介绍SQL的基本查询语句 (1) select... from  * 表示全部, 选择的东西还可以进行简单的运算, 可以列别名 select * from student; -sage from ...

  5. SQL入门学习2-聚合与排序

    3-1 对表进行聚合查询 聚合函数 所谓聚合,就是将多行汇总为一行. 函数名 功能 COUNT 计算表中的记录数(行数) SUM 计算表中数值列的数据合计值 AVG 计算表中数值列的数据平均值 MAX ...

  6. SQL入门学习0-数据库与SQL

    1.1 DBMS DatabaseManagermentSystem 数据库管理系统 DBMS种类 层次型数据库(HDB) 最古老的数据库之一,把数据通过层次结构的方式表现. 关系型数据库(RDB) ...

  7. Sql入门学习——关系范式

    --------关系 --------范式 一.三种关系 1.一对一关系 关系数据库中,第一个表中的单个行只可以与第二个表中的一个行相关,且第二个表中的一个行也只可以与第一个表中的一个行相关. 2.一 ...

  8. CTF入门学习5-> 前端JavaScript基础

    Web安全基础 JavaScript的实现包括以下3个部分: 1)核心语法:描述了JS的语法和基本对象. 2)文档对象模型 (DOM):处理网页内容的方法和接口 3)浏览器对象模型(BOM):与浏览器 ...

  9. SQL入门学习6-集合运算

    7-1 表的加减法 集合运算 集合运算就是对满足同一规则的记录,进行的加减等四则运算. 1.1 表的加法--UNION 表之间进行并集运算. 语法: SELECT 对应列1,对应列2-- FROM 表 ...

随机推荐

  1. 教你pomeloclient包libpomelo增加cocos2d-x 3.0工程(Windows、Android、IOS平台)

    Windows平台 操作系统:Windows7(64-bit) VS版本号:2013 Cocos2d-x版本号:3.0 project路径:E:\cocos2d-prj\ 1.从github下载lib ...

  2. windows phone (25) Canvas元素B

    原文:windows phone (25) Canvas元素B  ZIndex 这也是一个附加属性,表示canvas的children集合内的子元素的显示顺序,在canvas中的元素默认情况下是后面的 ...

  3. 【ThinkingInC++】61、非成员运算符

    非成员运算符 当操作者的左侧是不同的类时.运算符重载不可能是正确的类中. IostreamOperatorOverloading.cpp /** * 书本:[ThinkingInC++] * 功能:非 ...

  4. 【PHP】PHP5.4.0版本号ChangeLog具体解释(上)

    前言 随着大量的框架使用composer和namespace,渐渐的线上环境也从之前的5.3变成了5.4或者5.5甚至5.6,随着7月份PHP7的公布,会有很多其它的公司採用新版本号. 之前好久就想写 ...

  5. C# Windows Phone 8 WP8,切换各国语系免重开机 加速开发 送审有效率!!

    原文:C# Windows Phone 8 WP8,切换各国语系免重开机 加速开发 送审有效率!! 一般我们在开发Windows Phone 8 时,会考虑到各国语言的问题,但是你有想过吗?用实体手机 ...

  6. JAVA技术交流群

    推荐:组[八方扑灭]:http://jq.qq.com/?_wv=1027&k=RFLXu0. QQ: 292352612  集团专注于技术.软件project.JAVA.c\c++.WEB. ...

  7. [JSP][JSTL]页面调用函数--它${fn:}内置函数、是推断字符串是空的、更换车厢

    页面中调用函数--之${fn:}内置函数 函数描写叙述 fn:contains(string, substring) 假设參数string中包括參数substring,返回true fn:contai ...

  8. 一道看似简单的sql需求(转)

    听说这题难住大批高手,你也来试下吧.ps:博问里的博友提出的. 原始数据 select * from t_jeff t  简单排序后数据 select * from t_jeff t order by ...

  9. TCP和UDP的差别

    简单的差别: TCP提供面向连接的.可靠的数据流传输,而UDP提供的是非面向连接的.不可靠的数据流传输. TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报. TCP注重数据安全性,UDP传 ...

  10. javascript有用小技巧—实现分栏显示

    记得给师哥师姐測试考试系统的时候,看到他们的考试页面能够实现隐藏左边的考生信息部分,当时认为好高大上.好人性化. 如今学了javascript,我也能实现这个功能了,以下来显摆一下. 1.页面设计: ...