上一节我们介绍了什么是数据库,以及一些基本的数据库术语

这一课介绍使用SELECT语句从表中检索一个或多个数据列。

关键字(Keyword)

作为SQL组成部分的保留字。关键字不能用作表和列的名字(类比C语言中的int、print等)。

1 SELECT语句

它是在SQL语句中最常使用的语句,作用是从一个或多个表中检索信息。

使用SELECT检索表数据,需要知道两个信息,我们要从哪里进行搜索,搜索哪些内容。

1.2 检索单列

SELECT column_name -- 列名
FROM table_name; -- 表名

解释:上述语句用 SELECT 语句从 table_name 表中检索一个名为 column_name 的列。

列名跟在SELECT后     表名跟在FORM后,这与我们的自然语言相同

注意:

  • 没有明确排序查询的结果,则返回的数据没有特定的顺序,这个规定我们将在下一节进行介绍。
  • 多条SQL语句必须加分号
  • SQL不区分大小写。
  • 使用空格和回车的作用相同,所以SQL语句和写在一行或多行,但为了代码清晰易查建议分为多行

1.3 检索多列

想从一个表中检索多个列,仍然需要使用 SELECT 语句。唯一的不同就是SELECT后面检索的内容需用逗号隔开。

SELECT column_name,column_name1,column_name2 -- 列名
FROM table_name; -- 表名

在本例中我们指定了3个列名,彼此用逗号相隔。

注意:

从SQL中检索出的数据都是原始的数据,无格式数据。规定其格式一般在具体应用该数据的应用程序中进行。

1.4 检索所有列

SELECT语句还可以检索出所有列而不必逐个列出它们的名字。在实际列名的位置使用星号(*)通配符可以做到这一点。

SELECT * -- 使用通配符
FROM table_name; -- 表名

给定通配符(*),则返回所有的列。使用通配符的可以检索出名字未知的列。

1.5 检索出不同的值

当检索结果中出现多个重复值时,我们希望每个只出现一次怎么办?比如搜索一个年级学生的班级信息就会出现大量的重复,我们只需要不同的班级值

办法就是使用DISTINCT关键字,顾名思义,它指示数据库返回不同的值。

SELECT DISTINCT column_name -- 检索不同的值
FROM table_name -- 表名

如果使用DISTINCT关键字,它必须放在列名前。

若DISTINCT关键字后有多列,不仅仅是作用于一列,而是所有列。

1.6 限制结果

SELECT返回指定列中的所有匹配列,而你想返回1列或指定数量的列怎么办呢?这在数据库操作中是可行的,但各个SQL软件实现方法不同。

这里只说明MySQL的实现方法,其他软件的可以根据需要自行查讯。

MySQL中需要使用LIMIT子句,像这样

SELECT column_name -- 列名
FROM table_name -- 表名
LIMIT 5;

LIMIT 5指示 MySQL 等 DBMS 返回不超过5行的数据。

为了得到后5行的数据,我们还需指定从哪里开始检索

SELECT column_name -- 列名
FROM table_name -- 表名
LIMIT 5 OFFSET 5;

注意:

第一个被检索的行是第0行,而不是第一行。所以,LIMIT 5 OFFSET 5 会检索第6行而不是第5行。

2 使用注释

我上面的语句均使用了注释,使用“--”后面空一格跟需要注释的内容

当然还有多行注释

/*this is a note
SELECT FROM
*/
SELECT column_name -- 列名
FROM table_name -- 表名
LIMIT 5 OFFSET 5;

这在我们调试代码时很有用,可以让你无需将错误的代码删除,只需注释掉它们就行了

数据库学习 day2 检索数据的更多相关文章

  1. 数据库学习任务四:数据读取器对象SqlDataReader、数据适配器对象SqlDataAdapter、数据集对象DataSet

    数据库应用程序的开发流程一般主要分为以下几个步骤: 创建数据库 使用Connection对象连接数据库 使用Command对象对数据源执行SQL命令并返回数据 使用DataReader和DataSet ...

  2. 黑马MySQL数据库学习day02 表数据CRUD 约束CRUD

    /* 基础查询练习: 1.字段列表查询 当查询全部字段时,一种简便方式,使用*代替全部字段(企业中不推荐使用) 2.去除重复行 DISTINCT,注意修饰的是行,也就是整个字段列表,而不是单个字段. ...

  3. 数据库学习其一 oracle11g数据泵导入导出

    一.检查环境一致性 需检查数据库客户端与服务端字符编码,以避免后续各种各样的问题 查询服务端编码 注意最好用sqlplus查询,用plsql有时候会出现查询不一致问题,如下图同一个语句在plsql和s ...

  4. 吴裕雄--天生自然ORACLE数据库学习笔记:数据表对象

    create table students( stuno ) not null, --学号 stuname ), --姓名 sex ), --性别 age int, --年龄 departno ) n ...

  5. 吴裕雄--天生自然ORACLE数据库学习笔记:数据导出与导入

    create directory dump_dir as 'd:\dump'; grant read,write on directory dump_dir to scott; --在cmd下 exp ...

  6. ORACLE数据库学习之SQL性能优化详解

                                                                                    Oracle  sql 性能优化调整 ...

  7. 学习笔记:oracle学习三:SQL语言基础之检索数据:简单查询、筛选查询

    目录 1. 检索数据 1.1 简单查询 1.1.1 检索所有列 1.1.2 检索指定的列 1.1.3 查询日期列 1.1.4 带有表达式的select语句 1.1.5 为列指定别名 1.1.6 显示不 ...

  8. PHP 数据库驱动、连接数据不同方式学习笔记

    相关学习资料 http://www.php.net/manual/zh/refs.database.php http://www.php.net/manual/zh/internals2.pdo.ph ...

  9. python学习笔记--Django入门三 Django 与数据库的交互:数据建模

    把数据存取逻辑.业务逻辑和表现逻辑组合在一起的概念有时被称为软件架构的 Model-View-Controller (MVC)模式.在这个模式中, Model 代表数据存取层,View 代表的是系统中 ...

随机推荐

  1. 03-influxdb原理

    influxdb基本操作 1. influxdb与传统数据库区别 influxdb 传统数据库 database 数据库 measurement 表 points 表里的一行数据 2. 基本原理 2. ...

  2. C++ 回调函数,拷贝文件

    #include <iostream> #include <windows.h> using namespace std; unsigned long long transla ...

  3. 【视频+图文】Java基础经典练习题(一)输出2-100之间的素数,及素数个数

    目录 第一题:判断2-100之间有多少个素数,并输出所有素数. 1.视频讲解: 2.思路分析: 代码讲解:以i=4为例 4.为大家准备了彩蛋: 能解决题目的代码并不是一次就可以写好的 我们需要根据我们 ...

  4. Java多线程并发03——在Java中线程是如何调度的

    在前两篇文章中,我们已经了解了关于线程的创建与常用方法等相关知识.接下来就来了解下,当你运行线程时,线程是如何调度的.关注我的公众号「Java面典」了解更多 Java 相关知识点. 多任务系统往往需要 ...

  5. js String方法总结

    字符方法(3) charAt(pos: number): string; // 返回特定位置的字符. charCodeAt(index: number): number; // 返回表示给定索引的字符 ...

  6. 网络安全从入门到精通 (第二章-4) 后端基础PHP—简介及基本函数-上

    本文内容 什么是PHP PHP的基础语法 运算符 条件分支语句 1,什么是PHP? PHP(超文本预处理器)是一种通用开源语言,(是动态语言中的一种,动态语言还有ASP,ASPX,JSP). PHP语 ...

  7. 图解kubernetes控制器StatefulSet核心实现原理

    StatefulSet是k8s中有状态应用管理的标准实现,今天就一起来了解下其背后设计的场景与原理,从而了解其适用范围与场景 1. 基础概念 首先介绍有状态应用里面的需要考虑的一些基础的事情,然后在下 ...

  8. Java并发编程(03):多线程并发访问,同步控制

    本文源码:GitHub·点这里 || GitEE·点这里 一.并发问题 多线程学习的时候,要面对的第一个复杂问题就是,并发模式下变量的访问,如果不理清楚内在流程和原因,经常会出现这样一个问题:线程处理 ...

  9. bluekeep漏洞(CVE-2019-0708)利用

    前言 上个月爆出exp的一个高危漏洞,跟风复现一下下...( ̄▽ ̄)~* 简介 Windows再次被曝出一个破坏力巨大的高危远程漏洞CVE-2019-0708.攻击者一旦成功利用该漏洞,便可以在目标系 ...

  10. Building Applications with Force.com and VisualForce(Dev401)(十四):Implementing Business Processes:Auditing Processes

    Dev401-015:Implementing Business Processes:Auditing Processes Module Objectives1.list some of the fe ...