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 |
+-----+

MySQL-数据检索的更多相关文章

  1. MySQL数据检索时,sql查询的结果如何加上序号

    1.sql语法 @i:类型java定义的变量 @i:=0:这里类似给i初始化值为0 @i:=@i+1 :每次从0开始递增+1 SELECT (@i:=@i+1) as id,TDLINE FROM Y ...

  2. MySQL 索引机制

    MySQL 原理篇 MySQL 索引机制 MySQL 体系结构及存储引擎 MySQL 语句执行过程详解 MySQL 执行计划详解 MySQL InnoDB 缓冲池 MySQL InnoDB 事务 My ...

  3. MySql必知必会实战练习(二)数据检索

    在上篇博客MySql必知必会实战练习(一)表创建和数据添加中完成了各表的创建和数据添加,下面进行数据检索和过滤操作. 1. Select子句使用顺序 select--->DISTINCT---& ...

  4. MySQL笔记(二)之数据检索常用关键字

    SELECT 用于数据的选择 语法: SELECT 列 FROM 表; #从表中选择某些列,也可以是*,代表全部列 DISTINCT 当某些列包含重复值的时候,DISTINCT用于过滤掉重复值,使重复 ...

  5. MySQL常见面试题

    1. 主键 超键 候选键 外键 主 键: 数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合.一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null). 超 键: 在关系中 ...

  6. 一个高级的J2E工程师需要面对MySQL要有那些基本功夫呢<上>

    1. MySQL的架构介绍1.1 MySQL简介: MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不 ...

  7. MySQL性能优化:索引

    MySQL性能优化:索引 索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序.数据库使用索引以找到特定值,然后顺指针找到包含该值的行.这样可以使对应于表的SQL语句执 ...

  8. MySQL性能优化总结

    一.MySQL的主要适用场景 1.Web网站系统 2.日志记录系统 3.数据仓库系统 4.嵌入式系统 二.MySQL架构图: 三.MySQL存储引擎概述 1)MyISAM存储引擎 MyISAM存储引擎 ...

  9. mysql-7 数据检索(5)

    联结(join) SQL最强大的功能之一就是能在数据检索查询的执行中联结(join)表.联结就是利用SQL的SELECT能执行的最重要的操作. 例子:此例子包含两个表,一个表是vendors , ve ...

  10. mysql缓存、存储引擎

    一.         mysql查询缓存 查询缓存不是mysql的子系统,却是查询优化和执行子系统不可缺少的组成部分.它不仅可以缓存查询结果,还可以缓存查询结果本身.如果某个查询的结果就在缓存里, 系 ...

随机推荐

  1. java中Error与Exception有什么区别

    Error类和Exception类都继承自Throwable类. Error的继承关系: java.lang.Object  java.lang.Throwable      java.lang.Er ...

  2. 浅谈OC内存管理

    一.基本原理 (一)为什么要进行内存管理. 由于移动设备的内存极其有限,所以每个APP所占的内存也是有限制的,当app所占用的内存较多时,系统就会发出内存警告,这时需要回收一些不需要再继续使用的内存空 ...

  3. Python学习笔记 - ifelifelse-forin-while

    if elif else #!/usr/bin/env python3 # -*- coding: utf-8 -*- age = 20 if age >= 18: print('your ag ...

  4. Cocos2D场景中对象引用为nil时的判断

    如果该对象在SpriteBuilder中属性中设置了name,则检查是否 [self.scene getChildByName:@"theNameOfTheNode" recurs ...

  5. 放yy直播点赞动画

    最近在做直播相关的东西,这个动画是IOS先撸出来的,后来android这边要模仿,大部分直播应用都有很炫酷的点赞动画,所以也没什么好稀奇的.如果有现成的轮子了,就没必要自己再造了,后来参照了程序亦非猿 ...

  6. 使用 /sys 文件系统访问 Linux 内核

    sysfs 与 /sys sysfs 文件系统总是被挂载在 /sys 挂载点上.虽然在较早期的2.6内核系统上并没有规定 sysfs 的标准挂载位置,可以把 sysfs 挂载在任何位置,但较近的2.6 ...

  7. Android不同系统版本依然能调用到正确的API方法Demo——Service调用startForeground举例

    private static final Class<?>[] mSetForegroundSignature = new Class[] { boolean.class}; privat ...

  8. C/C++中关键字static的用法及作用

    本文将主要从static在C和C++共有的作用及C++特有的作用两个方面进行解析. 在C和C++中共有的作用 隐藏(对变量.函数均可) 当同时编译多个文件时,所有未加static前缀的全局变量或全局函 ...

  9. LeetCode之“排序”:Largest Number

    题目链接 题目要求: Given a list of non negative integers, arrange them such that they form the largest numbe ...

  10. HBase表重命名

    hbase shell> disable 'tableName' hbase shell> snapshot 'tableName', 'tableSnapshot' hbase shel ...