1. 程式人生 > >Mysql中對table的操作問題

Mysql中對table的操作問題

creat bsp mysql 訂單 記錄 一行 插入 2016年 lena

今天利用一個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);//創建主鍵索引

Mysql中對table的操作問題