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. CentOS配置

    1.在Vmware中安装好虚拟机. 2.客户机(即虚拟机中的centos)网络连接使用仅主机模式Host-only 3.在主机中网络配置上,配置IP地址 1.使用PieTTY远程连接该虚拟机 2.使用 ...

  2. Uva - 810 - A Dicey Problem

    根据状态进行bfs,手动打表维护骰子滚动. AC代码: #include <iostream> #include <cstdio> #include <cstdlib&g ...

  3. FilterDispatcher is depredated!plesae use the new filters

    一些struts2的教程都是比较早的,当我们基于较新版本的struts2来实现代码的时候,往往会出现一些问题.比如这个警告:FilterDispatcher isdeprecated! 在web.xm ...

  4. 文件I/O实践(1) --基础API

    什么是I/O 输入/输出是内存和外设之间拷贝数据的过程: 设备->内存: 输入操作 内存->设备: 输出操作 高级I/O: ANSI C提供的标准I/O库函数成为高级I/O, 也称为带缓冲 ...

  5. css文本样式-css学习之旅(4)

    color:颜色derction:方向:line-height:行高:letter-spaceing:字符间距:text-align:对齐方向:text-decoration:装饰:text-inde ...

  6. gc实例与gc报告的阅读

    gc报告的阅读 首先我们看一条gc报告 D:\杂项\java>java -verbose:gc -Xms20m -Xmx20m -Xmn10m -XX:+PrintGCDetails -XX:+ ...

  7. Learning ROS for Robotics Programming Second Edition学习笔记(六) indigo xtion pro live

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  8. TCP的核心系列 — 重传队列的更新和时延的采样(一)

    重传队列实际上就是发送队列(sk->sk_write_queue),保存着发送且未确认的数据段. 当有新的数据段被确认时,需要把这些段从重传队列中删除,同时更新一些变量,包括 packets_o ...

  9. 利用PreLoader实现一个平视显示(HUD)效果(可以运用到加载等待效果),并进行简单的讲解

    什么是PreLoader? PreLoader是由Volodymyr Kurbatov设计的一个很有意思的HUD(平视显示效果(Head Up Display)),通过运动污点和固定污点之间的粘黏动画 ...

  10. 【37】String,StringBuffer,StringBuilder区别和概念

    基本的概念: 查看 API 会发现,String.StringBuffer.StringBuilder 都实现了 CharSequence 接口,内部都是用一个char数组实现,虽然它们都与字符串相关 ...