在线Mysql网址
http://mysql.jsrun.net/
dbfiddle.uk
- 数据准备
double(M, D);
1: M 是总位数(包括整数部分和小数部分)。
2: D 是小数部分的位数。
3: 例如:DOUBLE(10, 2) 表示总共有 10 位,其中小数部分占 2 位。可直接使用
在 MySQL 中,如果定义
DOUBLE
类型时不加参数列表,它会使用默认的精度和显示格式。
CREATE DATABASE week8;
use week8;
CREATE table 商品(
id int(10),
name varchar(30),
price int(10),
discount double,
city varchar(30)
);
insert into 商品 values(1,'牛奶',3,0.95,'内蒙');
insert into 商品 values(2,'面包',4,0.5,'内蒙');
insert into 商品 values(3,'方便面',5,0.75,'内蒙');
insert into 商品 values(4,'饼干',6,0.8,'内蒙');
insert into 商品 values(5,'牛肉干',10,0.66,'内蒙');
insert into 商品 values(6,'月饼',10,0.66,'内蒙');
insert into 商品 values(7,'巧克力',10,0.66,'内蒙');
- 效果
- case练习(对商品进行位置摆放)
select name as 商品名称,city as 生产地,
case
when id is null then '商品编号错误'
when id < 4 then '第一排'
when id >=4 and id <=7 then '第二排'
else '第三排'
end as 位置
from 商品;
- 数值0的影响
insert into 商品 values(0,'西瓜',10,0.66,'新疆');
select name as 商品名称,city as 生产地,
case
when id is null then '商品编号错误'
when id < 4 then '第一排'
when id >=4 and id <=7 then '第二排'
else '第三排'
end as 位置
from 商品;
- null值的影响
insert into 商品 values(null,'面包',10,0.66,'杭州');
select name as 商品名称,city as 生产地,
case
when id is null then '商品编号错误'
when id < 4 then '第一排'
when id >=4 and id <=7 then '第二排'
else '第三排'
end as 位置
from 商品;
- 测试
查询商品表中的name,city列,将英文列名替换为中文
对city列字段进行替换:若city为空,替换为'未填写',若city为杭州,替换为'南方',若city为内蒙,替换为'北方',其他city,替换为'待分类'
insert into 商品 values(8,'玉米',10,0.66,null);
select name as 商品名称,city as 生成地,
case
when city is null then '未填写'
when city = '杭州' then '南方'
when city = '内蒙' then '北方'
else '待分类'
end as 地理位置
from 商品;