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. Android进阶(五)在Eclipse中关联Gson源码

    1)获得相应的jar包gson-2.2.4-sources.jar与gson-2.2.4-javadoc.jar. 2)在libs目录下新建src包和docs包,将相应jar包放入相应文件夹内. 3) ...

  2. UNIX环境高级编程——文件I/O

    一.文件描述符 对于Linux而言,所有对设备或文件的操作都是通过文件描述符进行的.当打开或者创建一个文件的时候,内核向进程返回一个文件描述符(非负整数).后续对文件的操作只需通过该文件描述符,内核记 ...

  3. (NO.00003)iOS游戏简单的机器人投射游戏成形记(八)

    回到Xcode,新建ArmStatic类,继承于CCSprite.同样在初始化方法中打开用户交互. 下面添加触摸回调方法,touchBegan以及touchMoved方法和Arm基本相同,主要不同处在 ...

  4. Touch Handling in Cocos2D 3.x(一)

    原帖地址 Cocos2d 3.0 带来经过完全修正后的触摸处理系统.本篇博文将提供所有触摸相关的信息: 接收触摸 取得触摸位置 处理不同个触摸生命周期中的事件 实现一个拖放机制 让我们开始吧 ;) 通 ...

  5. Java 类加载机制 ClassLoder

    纸上得来终觉浅,绝知此事要躬行  --陆游       问渠那得清如许,为有源头活水来  --朱熹 一个类从被加载到内存中开始到卸载出内存为止,它的整个生命周期包括了:加载(loading).验证(V ...

  6. ASCII码表(常用)

       

  7. 虚拟机linux挂载光盘显示:mount: you must specify the filesystem type

    虚拟机内 linux 挂载光盘显示:mount: you must specify the filesystem type 今天在虚拟机上挂载镜像文件时提示: 初步断定原因有2: 1.在卸载光盘时使用 ...

  8. RedHat系列软件管理(第二版) --二进制软件包管理

    RedHat系列软件管理 --二进制软件包管理 Linux学习思想-Linux相对与Windows来非常透明,因此,无论是系统,还是软件,都会有本身自带,或者是Man给提供的非常详细的说明/帮助文档, ...

  9. HOW to Use QP_PREQ_PUB.PRICE_REQUEST API to Price an Item

    In this Document Goal   Solution   References APPLIES TO: Oracle Advanced Pricing - Version 11.5.10 ...

  10. LeetCode之“动态规划”:Maximal Square && Largest Rectangle in Histogram && Maximal Rectangle

    1. Maximal Square 题目链接 题目要求: Given a 2D binary matrix filled with 0's and 1's, find the largest squa ...