SQL入门学习1-查询基础
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
执行结果,会将记录中相同值的记录进行删除,只会保留不同值的记录。
注意
- 在使用DISTINCT时,NULL也被视为一类数据。存在多条NULL数据时,只保留一个。
- DISTINCT关键字,只能加载第一个列名前,不能增加在其他地方。
使用WHERE
与SELECT区别
SELECT是将表汇总存储的数据全选出来,但是平时只需要筛选出满足某种条件的记录。
SELECT语句通过WHERE子句来指定查询数据的条件。
语法:
SELECT <列名>, ...
FROM <表名>
WHERE <条件表达式>;
WHERE执行流程:
1,会将列表的值,与WHERE语句条件相比较。如果相等Shohin表中的数据。
2.选出与SELECT语句指定的列。
WHERE注意:
SQL中子句的书写顺序是固定的不能够随意修改。WHERE子句必须几根在FROM子句之后
注释的书写方法
- 一行注释
书写在--
之后,只能在同一行。 - 多行注释
使用/*
可以跨越多行
2-2 算术运算符和比较运算符
注意
- 包含NULL的运算,其结果也是NULL。
- 判断是否为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
如果A
为NULL
。那么A也不会出现在比较结果当中。
比较运算符的操作数不能为NULL
比较运算符的操作数为NULL,则结果不会显示数据项。
流入: A = NULL
,即使 A
为NULL
也不会显示。
**使用IS NULL
和 IS 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-查询基础的更多相关文章
- Linq To sql入门练习 Lambda表达式基础
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- SQList3 and SQL入门学习笔记
SQL 这是一个标准的计算机语言进行访问和操作数据库. 什么是 SQL? · SQL 指结构化查询语言 · SQL 使我们有能力訪问数据库 · SQL 是一种 AN ...
- SQL入门学习4-复杂查询
5-1 视图 视图和表 视图和表的区别只有一个是否保存了实际的数据 使用INSERT和SELECT实际上就是从存储设备中读取数据,各种计算后,将数据呈现给用户. 视图不会将数据保存在存储设备中.实际上 ...
- SQL入门(1): 创建/查询/更新/连接/视图/SSMS简介
本文介绍SQL的基本查询语句 (1) select... from * 表示全部, 选择的东西还可以进行简单的运算, 可以列别名 select * from student; -sage from ...
- SQL入门学习2-聚合与排序
3-1 对表进行聚合查询 聚合函数 所谓聚合,就是将多行汇总为一行. 函数名 功能 COUNT 计算表中的记录数(行数) SUM 计算表中数值列的数据合计值 AVG 计算表中数值列的数据平均值 MAX ...
- SQL入门学习0-数据库与SQL
1.1 DBMS DatabaseManagermentSystem 数据库管理系统 DBMS种类 层次型数据库(HDB) 最古老的数据库之一,把数据通过层次结构的方式表现. 关系型数据库(RDB) ...
- Sql入门学习——关系范式
--------关系 --------范式 一.三种关系 1.一对一关系 关系数据库中,第一个表中的单个行只可以与第二个表中的一个行相关,且第二个表中的一个行也只可以与第一个表中的一个行相关. 2.一 ...
- CTF入门学习5-> 前端JavaScript基础
Web安全基础 JavaScript的实现包括以下3个部分: 1)核心语法:描述了JS的语法和基本对象. 2)文档对象模型 (DOM):处理网页内容的方法和接口 3)浏览器对象模型(BOM):与浏览器 ...
- SQL入门学习6-集合运算
7-1 表的加减法 集合运算 集合运算就是对满足同一规则的记录,进行的加减等四则运算. 1.1 表的加法--UNION 表之间进行并集运算. 语法: SELECT 对应列1,对应列2-- FROM 表 ...
随机推荐
- QTP脚本--应用参数化来测试某个输入框
以前一直觉得自己没有写代码的资质,太急于求成,以为一天就能写好几个功能,几千行代码,于是就没耐心了,没心情学下去了....但是最近发现其实写代码是一个漫长的过程,都是在修修改改中成长起来的.于是今天试 ...
- Windows Phone开发(5):室内装修
原文:Windows Phone开发(5):室内装修 为什么叫室内装修呢?呵呵,其实说的是布局,具体些嘛,就是在一个页面中,你如何去摆放你的控件,如何管理它们,你说,像不像我们刚搬进新住所,要&quo ...
- AMD宣布裁员7% 约710员工将失去工作
10 月 17 日.美国芯片生产商 AMD 周四宣布将裁员7%.并公布了不及预期的第四季度业绩展望.这将是 AMD 自 2011 年以来的第三轮大裁员. 就在一周之前,AMD 宣布罗瑞德(Rory R ...
- MySQL 存储过程和函数(转)
概述 一提到存储过程可能就会引出另一个话题就是存储过程的优缺点,这里也不做讨论,一般别人问我我就这样回答你觉得它好你就用它.因为mysql中存储过程和函数的语法非常接近所以就放在一起,主要区别就是函数 ...
- Oracle SQL Lesson (11) - 创建其他数据库对象(试图/序列/索引/同义词)
schema(模式)一个用户下一组对象的集合,一般与用户名一致. 视图 CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view [(alias[, alias].. ...
- Jquery中使用setInterval和setTimeout 容易犯的低级错误
直接在ready中调用其他方法,会提示缺少对象的错误,解决方法如下: 方法1. 应用jQuery的扩展可以解决这个问题. $(document).ready(function(){ $.extend( ...
- 使用CSS如何悬停背景颜色变色 onmouseover、onmouseout
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- C#判断操作系统是32位还是64位(超简单)
由于项目需要在64位和32位系统运行,需要判断当前系统是32位还是64位. 网上很多方法,但是都感觉不是很简洁,最后发现可以使用int的长度来判断:看代码 /// <summary> ...
- [转载] 树莓派读取温湿度传感器DHT11
原文地址: http://blog.csdn.net/liang890319/article/details/8739683 硬件: 树莓派 2.0 DHT模块 接树莓派5V GND GPIO1 功 ...
- 【翻译mos文章】Linux x86 and x86-64 系统SHMMAX最大
Linux x86 and x86-64 系统SHMMAX最大值 参考原始: Maximum SHMMAX values for Linux x86 and x86-64 (文件 ID 567506. ...