zoukankan      html  css  js  c++  java
  • MySQL-数据检索

      MySQL简介

      1、什么是数据库 ?

      数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

      主流的数据库有:sqlserver,mysql,Oracle、SQLite、Access、MS SQL Server等,本文主要讲述的是mysql

      2、数据库管理是干什么用的?

    • a. 将数据保存到文件或内存
    • b. 接收特定的命令,然后对文件进行相应的操作

      PS:如果有了以上管理系统,无须自己再去创建文件和文件夹,而是直接传递 命令 给上述软件,让其来进行文件操作,他们统称为数据库管理系统(DBMS,Database Management System)

      连接数据库:mysql -u root -p

      数据库、表、用户、权限等信息被存储在数据库和表中。可以用MySQL的Show命令来显示这些信息。

    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mmall              |
    | mydatabase         |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    SHOW DATABASES;返回可用数据库的一个列表。包含在这个列表中可能是MySQL内部使用的数据库。
    
    我们可以先进入一个数据库:
    mysql> use mydatabase;
    Database changed
    
    为了获得一个数据库内的表的列表,使用show tables;
    mysql> show tables;
    +----------------------+
    | Tables_in_mydatabase |
    +----------------------+
    | mmall_cart           |
    | mmall_category       |
    | mmall_order          |
    | mmall_order_item     |
    | mmall_pay_info       |
    | mmall_product        |
    | mmall_shipping       |
    | mmall_user           |
    +----------------------+
    
    show也可以用来显示表列:
    mysql> show columns from mmall_cart;
    +-------------+----------+------+-----+---------+----------------+
    | Field       | Type     | Null | Key | Default | Extra          |
    +-------------+----------+------+-----+---------+----------------+
    | id          | int(11)  | NO   | PRI | NULL    | auto_increment |
    | user_id     | int(11)  | NO   | MUL | NULL    |                |
    | product_id  | int(11)  | YES  |     | NULL    |                |
    | quantity    | int(11)  | YES  |     | NULL    |                |
    | checked     | int(11)  | YES  |     | NULL    |                |
    | create_time | datetime | YES  |     | NULL    |                |
    | update_time | datetime | YES  |     | NULL    |                |
    +-------------+----------+------+-----+---------+----------------+

      检索数据

      Select语句

      

    我们可以利用Select语句从cart表中检索出一个名为id的列,所需的列名在Select关键字之后给出,from关键字支出从其中检索数据的表名,输入和输出实例如下:
    mysql> select id from mmall_cart;
    +-----+
    | id  |
    +-----+
    | 126 |
    +-----+
    
    我们也可以利用Select语句来检索多个列
    mysql> select id ,user_id ,product_id from mmall_cart;
    +-----+---------+------------+
    | id  | user_id | product_id |
    +-----+---------+------------+
    | 126 |      21 |         26 |
    +-----+---------+------------+
    
    也可以检索所有行
    mysql> select * from mmall_cart;
    +-----+---------+------------+----------+---------+---------------------+---------------------+
    | id  | user_id | product_id | quantity | checked | create_time         | update_time         |
    +-----+---------+------------+----------+---------+---------------------+---------------------+
    | 126 |      21 |         26 |        1 |       1 | 2017-04-13 21:27:06 | 2017-04-13 21:27:06 |
    +-----+---------+------------+----------+---------+---------------------+---------------------+
    
    我们也可以用关键词 distinct 和limit 来限制检索的内容
    mysql> select distinct id  from mmall_cart;
    mysql> select id from mmall_cart limit 起始位置,查询行数;
    起始位置为空默认从第一行检索。

      排序检索

      

    下面的SQL语句返回某个数据库表的单个列,但是并没有顺序
    mysql> select id from mmall_order;
    +-----+
    | id  |
    +-----+
    | 103 |
    | 104 |
    | 105 |
    | 106 |
    | 107 |
    | 108 |
    | 109 |
    | 110 |
    | 111 |
    | 112 |
    | 113 |
    | 114 |
    | 115 |
    | 116 |
    | 117 |
    +-----+
    检索出的数据并不是以纯粹的随机顺序显示的。如果不排序,数据一般将以它在底层表中出现的顺序显示。这是数据最初添加到表中的顺序。但是如果数据后来进行过更新和删除,那么这个顺序将会受到MySQL重用回收存储空间的影响。
    为了明确地排序用Select语句检索出的数据,我们可以用Order By子句。
    mysql> select id from mmall_order order by payment_time;
    +-----+
    | id  |
    +-----+
    | 103 |
    | 104 |
    | 105 |
    | 108 |
    | 109 |
    | 110 |
    | 111 |
    | 112 |
    | 113 |
    | 114 |
    | 115 |
    | 106 |
    | 107 |
    | 117 |
    | 116 |
    +-----+
    我们也可以通过多个列进行排序
    mysql> select id, payment_time, end_time from mmall_order order by payment_time, end_time;
    +-----+---------------------+----------+
    | id  | payment_time        | end_time |
    +-----+---------------------+----------+
    | 103 | NULL                | NULL     |
    | 104 | NULL                | NULL     |
    | 105 | NULL                | NULL     |
    | 108 | NULL                | NULL     |
    | 109 | NULL                | NULL     |
    | 110 | NULL                | NULL     |
    | 111 | NULL                | NULL     |
    | 112 | NULL                | NULL     |
    | 113 | NULL                | NULL     |
    | 114 | NULL                | NULL     |
    | 115 | NULL                | NULL     |
    | 106 | 2017-04-13 21:42:40 | NULL     |
    | 107 | 2017-04-13 21:43:38 | NULL     |
    | 117 | 2017-04-13 21:46:06 | NULL     |
    | 116 | 2017-04-13 21:55:16 | NULL     |
    +-----+---------------------+----------+
    我们也可以利用关键字DESC 进行降序排序
    mysql> select id from mmall_order order by payment_time desc;             +-----+
    | id  |
    +-----+
    | 116 |
    | 117 |
    | 107 |
    | 106 |
    | 103 |
    | 104 |
    | 105 |
    | 108 |
    | 109 |
    | 110 |
    | 111 |
    | 112 |
    | 113 |
    | 114 |
    | 115 |
    +-----+
  • 相关阅读:
    74.Interesting Sequence(有趣的数列)(拓扑排序)
    CODEVS 1746 贪吃的九头龙
    NYOJ 110 剑客决斗
    CODEVS 2451 互不侵犯
    洛谷 P1896 互不侵犯King
    洛谷 P1066 2^k进制数
    洛谷 P1656 炸铁路
    洛谷 P1830 轰炸Ⅲ
    CODEVS 1051 接龙游戏
    POJ 3461 Oulipo
  • 原文地址:https://www.cnblogs.com/Jolivan/p/8434909.html
Copyright © 2011-2022 走看看