MySQL学习(五)
查询数据的学习与练习
建立一个表
CREATE TABLE goods (
`goos_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`cat_id` smallint(5) unsigned NOT NULL DEFAULT '0',
`goods_sn` varchar(60) NOT NULL DEFAULT '',
`goods_name` varchar(120) NOT NULL DEFAULT '',
`click_count` int(10) unsigned NOT NULL DEFAULT '0',
`goods_number` smallint(5) unsigned NOT NULL DEFAULT '0',
`market_price` decimal(10,2) unsigned NOT NULL DEFAULT '0.00',
`shop_price` decimal(10,2) unsigned NOT NULL DEFAULT '0.00',
`add_time` int(10) unsigned NOT NULL DEFAULT '0',
`is_best` tinyint(1) unsigned NOT NULL DEFAULT '0',
`is_new` tinyint(1) unsigned NOT NULL DEFAULT '0',
`is_hot` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`goos_id`)
) ENGINE MyISAM CHARSET utf8;
插入以下数据
创建表的描述如下
1
2
mysql> select goods_name,cat_id from goods where cat_id!=3;
或者
mysql> select goods_name,cat_id from goods where cat_id<>3;
3
mysql> select goos_id,goods_name from goods where shop_price>3000;
4
mysql> select goos_id,goods_name,shop_price from goods where shop_price<=100;
5取出第4栏目和第11栏目的商品,不能用or
mysql> select goos_id,cat_id,goods_name from goods where cat_id in (4,11);
6
mysql> select goos_id,cat_id,goods_name,shop_price from goods where shop_price
-> between 100 and 500;
between...and是范围查询,端点值也包括在内。
in是离散变量,是散点集合。between...and表示的是一个范围,是连续变量。
7 取出不在
mysql> select goos_id,cat_id,goods_name from goods
-> where cat_id not in(3,11);
用and来实现
mysql> select goos_id,cat_id,goods_name from goods
-> where
-> cat_id != 3 and cat_id != 11;
8
mysql> select goos_id,cat_id,goods_name,shop_price from goods
-> where
-> (shop_price >= 100 and shop_price <= 300) or (shop_price >= 4000 and shop_price <= 5000);
and的优先级比or高,但是建议使用括号
9
mysql> select goos_id,goods_name,shop_price,click_count from goods
-> where
-> (cat_id = 3) and (shop_price < 1000 or shop_price < 3000) and (click_count > 5);
10
查出名称以诺基亚开头的商品,如诺基亚N95等等
mysql> select goods_name from goods
-> where
-> goods_name
-> like '诺基亚%';
like模糊查询,%可以匹配任意的字符。用%匹配的范围比较广。
11
使用’_‘匹配任意单个字符
mysql> select goods_name from goods
-> where
-> goods_name
-> like '诺基亚N__';
12
把列看成变量,把where后面看成PHP中if(exp)中exp表达式。哪一行能被取出来?哪一行能满足exp为真,哪一行就被取出来。
把列看程变量,既然是变量,变量之间就可以运算。
mysql> select goos_id,goods_name,market_price,shop_price from goods
-> where
-> (shop_price-market_price) > 0;
计算出来的结果成为"广义投影"(列运算的结果)。
列运算的结果,可以当成列来看,还可以起一个别名。
13
mysql> select goods_name,shop_price,market_price,(shop_price - market_price) as discount
-> from goods
-> where
-> (shop_price - market_price) > 200;
一种典型的错误
mysql> select goods_name,shop_price,market_price,(shop_price - market_price) as discount
-> from goods
-> where
-> discount > 200;
ERROR 1054 (42S22): Unknown column 'discount' in 'where clause'
where发挥作用时,表上并没有discout列,where发挥完作用,形成的结果里才有discount,但此时where已经不能在发挥作用。对于结果中的列,如果还想再次筛选,需要用having。
14 一道面试题
有如下表和数组,把num值处于[20,29]之间的,改为20,把num值位于[30,39]之间的改为30。(要求用一条语句完成)
把num当成变量看!,可以把num/10取整,再乘以10
mysql> update test4
-> set num = floor(num/10)*10
-> where
-> (num > 20 and num <39) ;
15练习题(P18)
把good表中商品名为‘诺基亚XXX’的商品,改为'HTCXXX'
MySQL学习(五)的更多相关文章
- MySql学习(五) —— 数据库优化理论篇(一)
一.数据库管理系统 数据库管理系统(Database Management System, DBMS) 衡量是否是数据库的标准: ACID:是指在数据库管理系统(DBMS)中事务所具有的四个特性: 1 ...
- mysql实体关系(mysql学习五)
实体关系 表设计 1:1 两个实体表内,存在相同的主键字段 如果记录的主键值等于另一个关系表内记录的主键值,则两条记录的对应为一一对应 优化上称为垂直分割 1:n 一个实体对应多个其他实体(一个班级 ...
- MySQL 学习五 SQL实用函数
0 select now() 显示当前时间. 1 select char_length('andyqan') 显示字符长度. 2 日期格式化 select date_format( ...
- MySQL学习(五)——使用JDBC完成用户表CRUD的操作
通过案例我们发现“获得连接”和“释放资源”两次代码将在之后的增删改查所有功能中都存在,开发中遇到此种情况,将采用工具类的方法进行抽取,从而达到代码的重复利用. 1.使用properties配置文件 开 ...
- MySQL学习(六)——自定义连接池
1.连接池概念 用池来管理Connection,这样可以重复使用Connection.有了池,我们就不用自己来创建Connection,而是通过池来获取Connection对象.当使用完Connect ...
- 我的MYSQL学习心得(五) 运算符
我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
- 我的MYSQL学习心得(十五) 日志
我的MYSQL学习心得(十五) 日志 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
- 别人的的MYSQL学习心得(十五) 日志
我的MYSQL学习心得(十五) 日志 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
- 我的MYSQL学习心得(五)
原文:我的MYSQL学习心得(五) 我的MYSQL学习心得(五) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) 我的MYSQL ...
随机推荐
- django 函数装饰器 变为 类装饰器
aaa
- logstash 5.1.1 学习
Logstash 5.1.1 安装配置 安装和配置 java 环境: [root@ ~]# tar xf jdk-8u71-linux-x64.tar.gz [root@ ~]# mv jdk1.8. ...
- NT1_keras下搭建一个3层模型并且修改。
In [1]: import keraskeras.__version__ C:\ProgramData\Anaconda3\lib\site-packages\h5py\__init__.py:36 ...
- Java中单例设计模式,饿汉式和懒汉式
Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例.饿汉式单例.登记式单例. 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯 ...
- Ubuntu 使用unzip解压乱码的问题
由于win使用的是GBK编码,在win下打包zip的压缩文件在ubuntu下使用unzip解压会出现乱码的问题. 解决方案: 换软件,不用unzip,使用unar 18.04是默认安装的,如果没有默认 ...
- 待续未完- 自己写后台内容管理程序 - 用tp框架 和 前台 jquery ui等写的
在日常开发中,我们主要使用的还是 php 的 内部的 语言本身提供的函数/常量,系统内部数组等. 为了和后面的tp框架提供的 "系统函数.系统常量"相区别,把php提供的东西叫语言 ...
- 再谈fedora23下Virutalbox的安装. --问题的关键在于 安装kernel-devel包
首先, 要使用 virutalbox的 rpm 安装包 进行安装. 在安装的过程中, 如果提示 有一些包, 没有, dependencies not resolved, 比如libQt..libvpx ...
- Many Website Of WallPaper
我在这里给大家推荐几个不错的壁纸网站 毕竟一张赏心悦目的壁纸能让你的工作效率提高不少 注意前方高能 一大波网站即将来袭 一系列 如你所见 alphacoders wallpaperdj Wallhav ...
- C# winform程序防止前台卡死
https://blog.csdn.net/Emiedon/article/details/51069193 在实际开发中,如果需要实时的显示后台处理的情况,我们可能要在前台用一些控件去显示 所以我们 ...
- C++笔记(2017/2/9)
this指针 this指针作用就是指向成员函数所作用的对象. 非静态成员函数中可以直接使用this来代表指向该函数作用的对象的指针. 静态成员函数中不能使用this指针. 静态成员 static 定义 ...