Mysql中对table的操作问题
今天利用一个mysql问题来对前期学习Mysql操作的一个小小的检验!!现在总结一下Mysql中对表格的建立、插入特定的数据、以及查询满足某一段条件的数据等等进行操作。
首先需要建立如下三个表(table);
客户表 customer:
cno 客户号
cname 客户名称
商品表 goods:
gno 商品号
gname 商品名称
订单表 orders:
data 日期(8位整数表示,如20160823)
ono 订单号
cno 客户号
gno 商品号
amount 数量
Mysql 对表格的建立代码:
1 create database if not exists test; //首先创建一个数据库 2 3 use test; //进入数据库 4 5 create table customer( id int auto_increment primary key); //创建table id列自动 +1 6 7 alter table customer add column (cno varchar(20), cname varchar(20)); //添加cno列和cname列 8 9 insert into customer 10 (cno, cname) 11 values 12 ("001", "001"), 13 ("002", "002"); //这样创建好了customer表
customer表:
如此操作得到goods表以及orders表:
1.查询2015年没有被购买过的商品号和商品名称:
1 select goods.gno, goods.gname from goods 2 where goods.gno not in (select orders.gno from orders where orders.data between 20150101 and 20151231);
示列结果:
2.查询2016年的订单,显示订单的日期、订单号、客户名:
1 select orders.data, orders.ono, orders.cno from orders 2 where orders.data between 20160101 and 20161231;
示列结果:
3.删除2015年以前的订单:
1 delete from orders 2 where orders.data < 20150101; 3 4 5 select * from orders; //查询orders数据
示列结果:
4.查询订单数在4个以上商品号和总数量并按总数量降序排序:
1 select gno, amount from orders 2 where amount > 4 order by amount desc;
示列结果:
基本操作就是这样的,这几天一直在研究Mysql语法,脑袋感觉处于一种浆糊的感觉,还是需要一点点时间将这些东西慢慢吸收!
其中关于给订单创建一个合适的索引没有想到很明确的方法,我的思维是删除id主键,添加日期或者其他列作为新的索引;这样操作是因为我将id作为自动增加且主键吧
记录一下一些用到的语法:
1 alter table tablename drop id; //删除id列 2 3 alter table tablename add id int auto_increment primary key first; // 将id列添加到第一列并且赋予主键索引 4 5 6 delete from tablename where id =1;//删除id=1这一行 7 8 update tablename set column = values where id = 1;//在id=1这行中将 values赋值给column列 9 10 select * from tablename order by cast(column as signed/unsigned integer);//改变列属性将varchar改变成int
1 alter table tables add index(column);//创建索引 2 3 alter table tablename add primary key(column);//创建主键索引