【数据库】9.0 MySQL入门学习(九)——获得数据库和表的信息、日期计算、查询、选择特殊列
1.0 SELECT语句用来从数据表中检索信息。
SELECT what_to_select FROM which_table WHERE conditions_to_satisfy;
what_to_select指出你想要看到的内容,可以是列的一个表,或*表示“所有的列”。
which_table指出你想要从其检索数据的表。
WHERE子句是可选项,如果选择该项,conditions_to_satisfy指定行必须满足的检索条件。
2.0 在我的博文“MySQL入门学习(八)”中,创建了一个小动物园的数据库,里面有宠物的相关信息的表。
比如现在发现王二狗家的bowser出生年月错了,是1989年,而不是1979年。
至少有两种修正方法:
编辑文件“pet.txt”改正错误,然后使用DELETE和LOAD DATA清空并重新装载表:
· mysql> DELETE FROM pet;
· mysql> LOAD DATA LOCAL INFILE 'pet.txt' INTO TABLE pet;
然而, 如果这样操做,必须重新输入Puffball记录(因为Puffal是后来新增的一行数据)。
· 用一个UPDATE语句仅修正错误记录:
· mysql> UPDATE pet SET birth = '1989-08-31' WHERE name = 'Bowser';
UPDATE只更改有问题的记录,不需要重新装载数据库表。
3.0 如果想要验证对Bowser的生日所做的更改,按下述方法选择Bowser的记录:
mysql> SELECT * FROM pet WHERE name = 'Bowser';
4.0 如果想要知道哪个动物在1998以后出生的,测试birth列:
mysql> SELECT * FROM pet WHERE birth > '1998-1-1';
5.0 可以组合条件,例如,找出雌性的狗:
mysql> SELECT * FROM pet WHERE species = 'dog' AND sex = 'f';
6.0 也可以查询蛇和鸟的记录:
mysql> SELECT * FROM pet WHERE species = 'snake' OR species = 'bird';
7.0 AND和OR可以混用,但AND比OR具有更高的优先级。如果你使用两个操作符,使用圆括号指明如何对条件进行分组是一个好主意:
mysql> SELECT * FROM pet WHERE (species = 'cat' AND sex = 'm')
-> OR (species = 'dog' AND sex = 'f');
8.0 如果只想要知道动物什么时候出生的,不想看到表中的所有行,选择name和birth列:
mysql> SELECT name, birth FROM pet;
9.0 找出谁拥有宠物:
mysql> SELECT DISTINCT owner FROM pet;
10.0 但是有的人可能拥有很多宠物,当为了收集查看谁拥有宠物时,多次出现的主人没必要再次显示出来,我们可以增加关键字DISTINCT检索出每个唯一的输出记录(当然,我的数据中当前都是一人只有一条宠物和一条宠物记录):
mysql> SELECT DISTINCT owner FROM pet;
11.0 综合上面的都可以猜到一种使用方法:查询狗和猫的出生日期,并只显示宠物名字、类型和出生日期。
mysql> SELECT name, species, birth FROM pet
-> WHERE species = 'dog' OR species = 'cat';
12.0 当行按某种方式排序时,检查查询输出通常更容易。为了排序结果,使用ORDER BY子句。
比如,按照动物的出生年月排序(默认排序是升序)显示:
mysql> SELECT name, birth FROM pet ORDER BY birth;
13.0对于某一列,可以使用BINARY强制执行区分大小写的分类功能,如:ORDER BY BINARY col_name.
14.0 要想以降序排序,在你正在排序的列名上增加DESC(降序 )关键字:
mysql> SELECT name, birth FROM pet ORDER BY birth DESC;
15.0 可以对多个列进行排序,并且可以按不同的方向对不同的列进行排序。例如,按升序对动物的种类进行排序,然后按降序根据生日对各动物种类进行排序(最年轻的动物在最前面,DESC关键字仅适用于在它前面的列名(birth);不影响species列的排序顺序。),使用下列查询:
mysql> SELECT name, species, birth FROM pet
-> ORDER BY species, birth DESC;
16.0 日期计算
MySQL提供了几个函数,可以用来计算日期,例如,计算年龄或提取日期部分。
要想确定每个宠物有多大,可以计算当前日期的年和出生日期之间的差。
mysql> SELECT name, birth, CURDATE(),
-> (YEAR(CURDATE())-YEAR(birth))
-> - (RIGHT(CURDATE(),5)<RIGHT(birth,5))
-> AS age
-> FROM pet;
【数据库】9.0 MySQL入门学习(九)——获得数据库和表的信息、日期计算、查询、选择特殊列的更多相关文章
- 【数据库】7.0 MySQL入门学习(七)——MySQL基本指令:帮助、清除输入、查询等
1.0 help == ? 帮助指令,查询某个指令的解释.用法.说明等.详情参考博文: [数据库]6.0 MySQL入门学习(六)——MySQL启动与停止.官方手册.文档查询 https://www. ...
- 【数据库】4.0 MySQL入门学习(四)——linux系统环境下MySQL安装
1.0 我的操作系统是CentOS Linux release 7.6.1810 (Core) 系统详细信息如下: Linux version 3.10.0-957.1.3.el7.x86_64 ( ...
- 【数据库】3.0 MySQL入门学习(三)——Windows系统环境下MySQL安装
1.0 我的操作系统是window10 专业版 64位.,不过至少windows7以上系统都是一样的. 关于MySQL如何下载,请参考博文: [数据库]2.0 如何获得MySQL以及MySQL安装 h ...
- 【数据库】8.0 MySQL入门学习(八)——创建并使用数据库、获得数据库和表的信息
1.0 使用SHOW语句找出服务器上当前存在什么数据库: mysql> SHOW DATABASES; 每台机器上的数据库列表是不同的,但是很可能有mysql和test数据库.mysql是必需的 ...
- 【数据库】5.0 MySQL入门学习(五)——MySQL源码了解及MySQL初始化设置
1.0 MySQL源码目录主要包括:客户端代码.服务端代码.测试工具.其他库文件.当然,看懂源代码得有一定的C语言基础. BUILD:各种平台的编译脚本,可以用来制作各平台的二进制版本 client: ...
- 【数据库】1.0 MySQL入门学习(一)——常识性知识
1.0 什么是MySQL(官方发音 My Ess Que Ell)? 是一个快速.多线程.多用户和强壮的SQL数据库服务器,SQL是世界上最流行的标准化数据库语言. 名字来源:共同创办人Monty W ...
- 【数据库】6.0 MySQL入门学习(六)——MySQL启动与停止、官方手册、文档查询
1.0 MySQL主要有四种启动方式:直接启动.安全启动.服务启动.多实例启动. 直接启动: 服务器启动: 安全启动(最常用): 多实例启动: 2.0如何获得MySQL帮助 2.1官方手册 下面提供百 ...
- 【数据库】2.0 MySQL入门学习(二)——如何获得MySQL以及MySQL安装
1.0 如何获得MySQL: www.oracle.com https://dev.mysql.com/downloads/ 2.0 例如进入Oracle官网,找到MySQL: 进入页面后,切换到“资 ...
- 【转】MYSQL入门学习之八:数据库及表的基本操作
转载地址:http://www.2cto.com/database/201212/175867.html 一.操作数据库 www.2cto.com 1.查看数据库 show ...
随机推荐
- Python实现——一元线性回归(最小二乘法)
2019/3/24 线性回归--最小二乘法公式法 暂时用python成功做出来了图像,但是其中涉及到的公式还是更多的来自于网络,尤其是最小二乘法公式中的两个系数的求解,不过目前看了下书高数也会马上提及 ...
- selenium定位元素提示‘元素不可见’问题解决方法
最近在使用selenium的过程中发现有元素能够在页面中查找到,但是pycharm中运行时始终报错element not visible,于是使用如下方法成功解决问题. 1.driver.find_e ...
- 学习TypeScript,笔记一:TypeScript的简介与数据类型
该文章用于督促自己学习TypeScript,作为学笔记进行保存,如果有错误的地方欢迎指正 2019-03-27 16:50:03 一.什么是TypeScript? TypeScript是javasc ...
- Flask Web开发实战(入门、进阶与原理解析)
URL重定向 错误响应 > 如果你想手动返回错误响应,可以使用Flask提供的abort()函数. XML 上下文全局变量 [](https://img2018.cnblogs.com/blog ...
- LeetCode10. 正则表达式匹配
10. 正则表达式匹配 描述 给定一个字符串 (s) 和一个字符模式 (p).实现支持 '.' 和 '*' 的正则表达式匹配. '.' 匹配任意单个字符. '*' 匹配零个或多个前面的元素. 匹配应该 ...
- 报表中经常遇到的一个头疼的问题是需要自动选择过去一个月的数据作为当前报表输出。网上查询了一些.NET 的C#例子,发现都实现的比较复杂
报表中经常遇到的一个头疼的问题是需要自动选择过去一个月的数据作为当前报表输出.网上查询了一些.NET 的C#例子,发现都实现的比较复杂,其实这个问题可以很简单的通过.NET的DateTime函数来实现 ...
- MNIST数据集分类简单版本
import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data #载入数据集 mnist = ...
- vuex的小疑问记录
actions和mutations的区别是Action提交的是Mutation,不能够直接修改state中的状态,而Mutations是可以直接修改state中状态的:Action是支持异步操作的,而 ...
- Codeforces - 675D 可持久化Treap 树形操作
题意:模拟二叉树的构造过程,给出\(n\)个节点,每次从根插入,小于当前节点转到左儿子,否则右儿子,输出第\([2,n]\)个节点的父亲的权值 直接手动模拟会被链式结构T掉 网上找了下发现二叉树的性质 ...
- HDU - 3033 滚动数组有坑
每层至少一个,滚动时要判上一层非法与否,所以每次都要memset #include<bits/stdc++.h> #define rep(i,j,k) for(int i=j;i<= ...