//数据库列练习
一 增加列的语法
1 增加列 alter table 表名 add 列名 [列类型 列参数];
2 增加一列至制定列的后面 alter table 表名 add 列名 [列类型 列参数] after 前一列的名称
3 增加一列并放在第一列 alter tbale 表名 add 列名 [列类型 列参数] first;
二 修改列的语法
1 修改列的参数 alter table 表名 modify 列名 [新参数];
2 修改列的名称及参数 alter table 表名 change 旧列名 新列名[新参数];
三删除列
1 删除列 alter table 表名 drop 列名;
商城 商品表分析
goods_id 商品的唯一标识 唯一 自增
goods_name 商品名称
goods_brand 商品品牌
goods_type 商品类型
goods_price 商品价格
goods_number 商品库存数量
建立数据库
create database czshop charset utf8;
建表
create table goods(
goods_id int not null primary key auto_increment
)charset utf8;
////////////////
update goods set goods_name=concat('htc',substring(goods_name,4)) where goods_name like '诺基亚%';
/////////////////////分析
不及格是六十分
select name,count(score > 60) from result group by name;
///////////////////////
insert into result
values
('林子','数学',70),
('林子','语文',20),
('林子','地理',60),
///查出每个栏目下id最大的商品
select cat_id,goods_id,goods_name from goods where goods_id=in(select max(goods_id) from goods group by cat_id);
////////////////分析
//先求出所有栏目挤压的货款
select cat_id,sum(shop_price*goods_number) as hk from goods group by cat_id;
//然后筛选出超过两万的货款
select cat_id,sum(shop_price*goods_number) as hk from goods group by cat_id having hk > 20000;
//分析
先算出所省的钱
select goods_name,market_price-shop_price from goods;
然后计算出省钱200 以上的
是用having实现的:select goods_name,(market_price-shop_price) as discount from goods having discount > 200;
使用where实现的:select goods_name,market_price-shop_price from goods where market_price-shop_price > 200;
//分析
先算出所有人的平均成绩 并 把他们分为一个人
select name,avg(score),sum(score < 60) as jg from result group by name having jg >= 2;
我们在算出所有及格小于两门的人
查询出2门及2门以上不及格者的平均成绩
//分析
先查出所有人的平均成绩
select avg(score),sum(score < 60) from goods group by cat_id;
//
select goods_id,cat_id,goods_name from goods where goods_id in(select max(goods_id) from goods group by cat_id) order by cat_id,goods_id desc;