1. 程式人生 > >數據庫表操作練習

數據庫表操作練習

生產 value goods alter log ins sco pre cnblogs

/*
1、創建成績表,字段包括:學生姓名,語文成績,數學成績,英語成績

     向表中插入多條數據;
     查詢:

           (1) 查詢所有學生的數學成績和總成績
           (2) 查詢所有學生的語文和數學成績和,按從高到低排序
           (3) 查詢班級總成績最高的學生姓名
           (4) 查詢班裏所有姓李學生的總成績最高的姓名
 */
-- 創建表
 create table examres(
   id int primary key auto_increment,
   name VARCHAR(20),
   Chinese FLOAT(5,2),
   Math FLOAT(5,2),
   English FLOAT(5,2)
 );
-- 插入數據
INSERT INTO examres (name, Chinese, Math, English) VALUES (‘egon‘,61.2,75.3,88),
  (‘alex‘,75,86,83),
  (‘yuanhao‘,98,96,50),
  (‘wupeiqi‘,86,90,87),
  (‘buer‘,100,100,100);

-- (1) 查詢所有學生的數學成績和總成績
SELECT Math,sum(Chinese+Math+English) as toal_score FROM examres GROUP BY Math;

-- (2) 查詢所有學生的語文和數學成績和,按從高到低排序                      -- 不能添加name 或 *
SELECT sum(Chinese+Math) FROM examres GROUP BY Chinese+Math ORDER BY Chinese+Math DESC;

-- (3) 查詢班級總成績最高的學生姓名
SELECT name,max(Chinese+Math+English) FROM examres GROUP BY name ORDER BY max(Chinese+Math+English) DESC  LIMIT 1;
SELECT name,sum(Chinese+Math+English) as toal_score FROM examres GROUP BY name ORDER BY sum(Chinese+Math+English) DESC  LIMIT 1;
SELECT name,Chinese+Math+English as toal_score FROM examres where Chinese+Math+English=(SELECT max(Chinese+Math+English) from examres);

-- (4) 查詢班裏所有姓李學生的總成績最高的姓名
ALTER TABLE examres CHARACTER SET utf8;
SELECT name,Chinese+Math+English as toal_score FROM examres where name LIKE ‘e%‘ ORDER BY Chinese+Math+English DESC LIMIT 1;




/*
2、創建一張某超市的購物表,字段包括:商品名,購物價格,商品生茶日期,商品分類;

     向該表中插入多條數據;


     查詢:(1)每一類商品花的總價格

                (2)統計每類商品各有多少件

                (3)統計水果花了多少錢(兩種方式實現)

                (4)統計購買的2017-01-12日生產的商品中價格最貴的商品(插入的數據中包括2017-01-12生產的商品)

                (5)統一購買商品的總價格

 */

-- 創建表
CREATE TABLE goods_list(
      id INT PRIMARY KEY AUTO_INCREMENT,
      name VARCHAR(20),
      price FLOAT(6,2),
      pro_date DATE,
      class VARCHAR(20)
) CHARACTER SET utf8;

-- 插入值
INSERT INTO goods_list (name, price, pro_date, class) VALUES (‘蘋果‘,20,20170612,‘水果‘),
                                             (‘香蕉‘,800,20170602,‘水果‘),
                                             (‘水壺‘,120,20170612,‘電器‘),
                                             (‘被罩‘,70,20170612,‘床上用品‘),
                                             (‘音響‘,420,20170612,‘電器‘),
                                             (‘床單‘,55,20170612,‘床上用品‘),
                                             (‘草莓‘,34,20170612,‘水果‘);

-- (1)每一類商品花的總價格
SELECT class,sum(price) FROM goods_list GROUP BY class;

-- (2)統計每類商品各有多少件
SELECT class,count(price) FROM goods_list GROUP BY class;

-- (3)統計水果花了多少錢(兩種方式實現)
SELECT class,sum(price) FROM goods_list WHERE class=‘水果‘ GROUP BY class;

SELECT sum(price) FROM goods_list WHERE price in (SELECT price FROM goods_list WHERE class=‘水果‘);

-- (4)統計購買的2017-06-12日生產的商品中價格最貴的商品(插入的數據中包括2017-01-12生產的商品)
SELECT id,name,price,pro_date FROM goods_list WHERE pro_date=20170612 ORDER BY price DESC LIMIT 1;


-- (5)統一購買商品的總價格
SELECT sum(price) as toal_price FROM goods_list;

  

數據庫表操作練習