利用空闲时间花几分钟回顾一下

7.1 检索数据

为了查询出数据库表中的行(数据),使用SELECE语句。

格式:

# 第一种
SELECT * FROM <table_name>;
# 第二种
SELECT field1,field2,... FROM <table_name>;
  • 第一种写法使用*通配符,会把表中行的列全部查询出来,而不必取一一列出全部列。但是不推荐使用,这跟INSERT语句的规范写法一样。使用*通配符,列的顺序一般是列在表定义中出现的顺序,但有时候并不是这样的,表的模式的变化(如添加或删除列)可能会导致顺序的变化。特别是像使用INSERT SELECT这样的语句,可能会报错,甚至可能会不会报错但是数据插入错误的列。
  • 推荐使用第二种,第二种查询方式可以查询表中行的全部列,也可以查询表中行的单列或多列。
  • 使用通配符注意事项:虽然使用通配符可能会省事,不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能。

例如:

  • 单列查询:
SELECT stu_name FROM student;
  • 多列查询:
SELECT stu_name, stu_sex FROM student;
  • 查询全部列:
SELECT * FROM student;
# 或(推荐)
SELECT stu_id, stu_name, stu_sex FROM student;

7.2 检索不同的行

因为在表中有时候需要进行去重操作,可以使用DISTINCT关键字,让SELECT查询的结果返回不同的值。

格式:

SELECT DISTINCT field1,field2,... FROM <stable_name>;

DISTINCT关键字的注意:

  • 如果是单列,那么使用该关键字会将该列作为判断去重的条件。
  • 如果是多列,那么会将该多列作为判断去重的条件。
  • 使用这些单列或多列作为去重条件,如果在表中都是不相同的,那么就会将所有行都查出来。

7.3 限制结果

SELECT语句返回所有匹配的行。如果为了返回第一行或前几行,那么可以使用LIMIT子句。

格式:

# 第一种(n为整数)
SELECT field1,field2,... FROM <stable_name> LIMIT n;
# 第二种 (n,m为整数, n>=0, m>=1)
SELECT field1,field2,... FROM <stable_name> LIMIT n,m;

解释:

  • 第一种写法,对于查询出的数据(行)只返回不多于n行。
  • 第二种写法,LIMIT后的n表示查询的开始的位置,m表示要检索的行数。即,从第n行开始查询m行。
  • LIMIT后n是从0开始的,所以检索出来的第一行为行0而不是行1。因此,LIMIT 1,1 是将检索出第二行而不是第一行。
  • 如果LIMIT指定要检索的行数超过表中的行数,那么MySQL将返回它能返回的那么多行。

因为有人会把LIMIT n,m的语法搞混,比如LIMIT 3,4 是从行4开始的3行还是从行3开始的4行?如上面所述,它的意思是从行3开始的4行。

所以,MySQL 5支持LIMIT的另一种代替语法:LIMIT 4 OFFSET 3,意思是从行3开始取4行。

7.4 使用完全限定的表名

到目前为止SQL例子只通过列名引用列。也可能会使用完全限定的名称来引用列(同时使用表明和列名),如下:

SELECT <stable_name>.field1,<stable_name>.field2,...
FROM <stable_name>;

在单表时可能看不出什么差别,但是在多表查询时,并且是那种有相关联的表,因为有可能两张表会有相同的列名,所以需要使用完全限定的表名来区分。

快速回顾MySQL:简单查询操作的更多相关文章

  1. MySQL快速回顾:高级查询操作

    8.1 排序数据 检索出的数据并不是以纯粹的随机顺序显示的.如果不排序,数据一般将以它在底层表中出现的顺序显示.这可以是数据最初添加到表中的顺序.但是,如果数据后来进行过更新或删除,则此顺序将会受到M ...

  2. MySQL简单查询详解-单表查询

    MySQL简单查询详解-单表查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查询的执行路径 一条SQL查询语句的执行过程大致如下图所示: 1>.客户端和服务端通过my ...

  3. MySQL 高级查询操作

    目录 MySQL 高级查询操作 一.预告 二.简单查询 三.显示筛选 四.存储过程 五.查询语句 1.作为变量 2.函数调用 3.写入数据表 备注 附表一 附表二 相关文献 博客提示 MySQL 高级 ...

  4. MySQL简单查询和单表查询

    MySQL记录操作 概览 MySQL数据操作: DML 在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括 使用INSERT实现数据的插入 UPDATE实现数据的更新 使用 ...

  5. Mysql慢查询操作梳理

    Mysql慢查询解释MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询 ...

  6. MySQL数据库查询操作进阶——多表查询

    多表查询 在大部分情况下,我们用到的表都是彼此相关联的,所以我们会有相当大的需求用到跨表的查询,这个时候我们就需要将相关联的表连起来做多表查询. 多表查询分为连表查询和子查询,连表查询即将相关联的表连 ...

  7. mysql简单的操作

    启动数据库服务     net start mysql     停止数据库服务     net stop mysql      退出数据库      exit     保存操作及结果 将在命令行窗口中 ...

  8. 快速回顾MySQL:汇总和分组

    10.3 汇总数据 我们经常需要汇总数据而不用把它们实际检索处出来,为此MySQL提供了专门的函数.使用这些函数,MySQL查询可用于检索数据,以便分析和报表的生成.这种类型的检索例子有以下几种: 确 ...

  9. MySQL简单的操作,增删改查

    B/S架构模式与C/S架构模式的区别 B/S=WEB/SERVER C/S=CLIENT/SERVIR B/S:用户通过web浏览器打开域名就能访问服务器server的方式就叫做B/S用户不需要安装任 ...

随机推荐

  1. HDU 1698 Just a Hook 线段树区间更新、

    来谈谈自己对延迟标记(lazy标记)的理解吧. lazy标记的主要作用是尽可能的降低时间复杂度. 这样说吧. 如果你不用lazy标记,那么你对于一个区间更新的话是要对其所有的子区间都更新一次,但如果用 ...

  2. nginx 301 将不带www域名,重定向到www域名

    // nginx 官方推荐 server { listen 80; server_name example.org; return 301 http://www.example.org$request ...

  3. P1094 百钱白鸡

    题目描述 公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱. 输入格式 无. 输出格式 输出所有 ...

  4. java 泛型的嵌套(map例子)

    package july7; //泛型加Map的输出! import java.util.Iterator; import java.util.Map; import java.util.Map.En ...

  5. cccc初赛 L3-003 长城

    L3-009. 长城 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 邓俊辉 正如我们所知,中国古代长城的建造是为了抵御外敌入侵.在长 ...

  6. P1092 电子表格

    题目描述 在流行的电子表格系统中(例如,在Excel中),使用如下计算方式来对列号进行计算. 第1列对应A,第2列对应B,--,第26列对应Z.然后使用两个大写英文字母来表示列:第27列对应AA,第2 ...

  7. H3C DHCP系统组成

  8. HDU 3746 Cyclic Nacklace(kmp next数组运用)

    Cyclic Nacklace Problem Description CC always becomes very depressed at the end of this month, he ha ...

  9. hdu 6579 Operation (在线线性基)

    传送门 •题意 一个数组a有n个数 m个操作 操作① 询问$[l,r]$区间的异或值 操作② 在数组末尾追加一个数x,数组长度变为$n+1$ 其中$l,r$不直接给出,其中$l=l%n+1,r=r%n ...

  10. Java 学习笔记(16)——Java数据库操作

    数据库操作是程序设计中十分重要的一个部分,Java内置JDBC来操作数据库 JDBC使用 JDBC--Java Database connecting Java数据库连接:本质上JDBC定义了操作数据 ...