• 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);//创建主键索引
  • 相关阅读:
    基于Freescale的主流芯片HCS08
    BizTalk Server 2010 映射器(Mapper) [ 下篇 ]
    BizTalk Server 2010 使用 WCF Service [ 中篇 ]
    Ext JS 4 Beta 1发布了
    Step by Step WebMatrix网站开发之一:Webmatrix安装
    REST WebService与SOAP WebService的比较
    BizTalk Server 2010 使用 WCF Service [ 上篇 ]
    BizTalk Server 2010 映射器(Mapper) [ 中篇 ]
    BizTalk Server 2010 映射器(Mapper) [ 上篇 ]
    ExtJS 4 Beta 2预览:Ext.Brew包
  • 原文地址:https://www.cnblogs.com/ZNwithLC/p/7463997.html
Copyright © 2020-2023  润新知