zoukankan      html  css  js  c++  java
  • mysql 必知必会整理—sql 简单语句[二]

    前言

    简单整理一下sql 排序与过滤。

    正文

    在这里需要创建一下一个数据库实例。

    为了方便直接用docker 创建一下啊,方便简洁。

    https://hub.docker.com/_/mysql

    按照上面安装一下。

    有几个基本的数据库状态需要了解一下。

    显示有多少数据库:

    show databases:

    use gogs;

    show tables;

    show columns from version.

    SHOW COLUMNS 要求给出一个表名(这个例子中的 FROM customers),它对每个字段返回一行,行中包含字段名、数据类型、是否允许NULL、键信息、默认值以及其他信息(如字段cust_id的auto_increment)。
    

    简单查询语句

    简单介绍一下查询语句。

    检索单列:

    SQL语句和大小写 请注意,SQL语句不区分大小写,因此SELECT与select是相同的。同样,写成Select也没有关系。许多SQL开发人员喜欢对所有SQL关键字使用大写,而对所有列和表名使用小写,这样做使代码更易于阅读和调试。
    

    这里可以养好习惯,将关键字进行大写,然后将表名和列名进行小写。

    使用空格 在处理SQL语句时,其中所有空格都被忽略。SQL语句可以在一行上给出,也可以分成许多行。多数SQL开发人员认为将SQL语句分成多行更容易阅读和调试。
    

    检索多个列:

    在这里面通过逗号隔开。

    如果需要列出全部的列,可以通过select * from version;

    使用通配符 一般,除非你确实需要表中的每个列,否则最好别使用*通配符。虽然使用通配符可能会使你自己省事,不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能。
    

    如果想检测出不同的行,那么可以使用ditinct,这样会进行去重。

    不能部分使用DISTINCT DISTINCT关键字应用于所有列而不仅是前置它的列。
    

    如果查询出来10行,但是我们只需要5,那么可以使用limit。

    比如 select * from version limit 5;

    这样就只会取出5条来了。

    然后呢,这个limit 有两个字段可以填写。

    比如:

    select * from version limit 5,5;
    

    LIMIT 5, 5指示MySQL返回从行5开始的5行。第一个数为开始位置,第二个数为要检索的行数。

    这里的返回的5行,是不包括第5行的。

    所以对于mysql 来说分页真的是太简单了。

    MySQL 5的LIMIT语法 LIMIT 3, 4的含义是从行4开始的3行还是从行3开始的4行?如前所述,它的意思是从行3开始的4行,这容易把人搞糊涂。 由于这个原因,MySQL 5支持LIMIT的另一种替代语法。LIMIT4 OFFSET 3意为从行3开始取4行,就像LIMIT 3, 4一样。

    所以在写code中,最好使用offset 这个关键字,工程以通用为第一要素。

    有一个问题,假设有两张表都有列名a1。

    那么select a1 from table1,table2,这个a1 到底是table1还是table2呢?

    所以需要我们完全限定表名:select table1.a1 from table1,table2

  • 相关阅读:
    Linux centos 安装 Node.js
    maven 常用命令
    linux centos 设置笔记本合盖不待机
    linux centos 网卡有关调试
    Linux centos 安装 maven 3.5.4
    Linux centos 安装 jenkins & 本地构建jar & 远程构建jar
    Linux centos 安装 tomcat 7
    Linux centos 安装 JDK 8
    JS正则 replace()方法全局替换变量(可以对变量进行全文替换)
    node:json与csv互转
  • 原文地址:https://www.cnblogs.com/aoximin/p/15314079.html
Copyright © 2011-2022 走看看