SQL指令上機教學

張貼日期:Dec 03, 2013 5:2:12 AM

----請複製以下指令,依教學指示執行----

1.

CREATE DATABASE bob;

2.

USE bob;

2.5

DROP TABLE Orders;

DROP TABLE Books;

DROP TABLE Bookstores;

3.

CREATE TABLE Books

(

id int NOT NULL,

bookname char(20) NOT NULL,

author char(10),

price int,

publisher char(25),

PRIMARY KEY (id)

);

CREATE TABLE Bookstores

(

no int NOT NULL,

name char(10) NOT NULL,

rank int,

city char(8),

PRIMARY KEY (no)

);

 

CREATE TABLE Orders

(

no int NOT NULL,

id int NOT NULL,

quantity int,

PRIMARY KEY (no,id),

FOREIGN KEY (no) REFERENCES Bookstores (no),

FOREIGN KEY (id) REFERENCES Books (id)

);

4.

INSERT INTO Books (id, bookname, author, price, publisher)

VALUES (1, '三國演義', '羅貫中', 120, '古文出版社');

INSERT INTO Books (id, bookname, author, price, publisher)

VALUES (2, '水滸傳', '施耐庵', 170, '中庸出版社');

INSERT INTO Books (id, bookname, author, price, publisher)

VALUES (3, '紅樓夢', '曹雪芹', 170, '春秋出版社');

INSERT INTO Books (id, bookname, author, price, publisher)

VALUES (4, '西遊記', '吳承恩', 140, '聊齋出版社');

INSERT INTO Books (id, bookname, author, price, publisher)

VALUES (5, '水經注', '酈道元', 120, '易經出版社');

INSERT INTO Books (id, bookname, author, price, publisher)

VALUES (6, '道德經', '老子', 190, '大唐出版社');

 INSERT INTO Bookstores (no, name, rank, city)

VALUES (1, '巨蟹書局', 20, '臺北市');

INSERT INTO Bookstores (no, name, rank, city)

VALUES (2, '射手書局', 10, '高雄市');

INSERT INTO Bookstores (no, name, rank, city)

VALUES (3, '水瓶書店', 30, '新竹市');

INSERT INTO Bookstores (no, name, rank, city)

VALUES (4, '天秤書局', 20, '臺中市');

INSERT INTO Bookstores (no, name, rank, city)

VALUES (5, '獅子書局', 30, '臺南市');

 INSERT INTO Orders (no, id, quantity)

VALUES (1, 1, 30);

INSERT INTO Orders (no, id, quantity)

VALUES (1, 2, 20);

INSERT INTO Orders (no, id, quantity)

VALUES (1, 3, 40);

INSERT INTO Orders (no, id, quantity)

VALUES (1, 4, 20);

INSERT INTO Orders (no, id, quantity)

VALUES (1, 5, 10);

INSERT INTO Orders (no, id, quantity)

VALUES (2, 1, 30);

INSERT INTO Orders (no, id, quantity)

VALUES (2, 2, 40);

INSERT INTO Orders (no, id, quantity)

VALUES (3, 2, 20);

INSERT INTO Orders (no, id, quantity)

VALUES (4, 2, 20);

INSERT INTO Orders (no, id, quantity)

VALUES (4, 4, 30);

INSERT INTO Orders (no, id, quantity)

VALUES (4, 5, 40);

5.

SELECT *

FROM Books;

SELECT bookname, author, price

FROM Books;

6.

SELECT bookname,  price

FROM Books

WHERE price > 150;

7.

SELECT DISTINCT price

FROM Books;

8.

SELECT bookname, price * 0.8 AS 新價格

FROM Books;

8.5

SELECT id, bookname, price

FROM Books

WHERE id IN

(

SELECT DISTINCT id

FROM Orders

);

8.8

SELECT id, bookname, price

FROM Books

WHERE id NOT IN

(

SELECT DISTINCT id

FROM Orders

);

 

22.

DELETE FROM Books

WHERE id = 7;

DELETE FROM Books

WHERE id = 6;

DELETE FROM Books

WHERE price = 120;

23.

UPDATE Books

SET bookname = '三國志'

WHERE id = 1;

UPDATE Books

SET bookname = '三國志'

WHERE bookname = '三國演義';

UPDATE Bookstores

SET name = '元智書坊', rank = rank + 10

WHERE no = 2;

11.

SELECT *

FROM Bookstores

WHERE city LIKE '臺_市';

12.

SELECT *

FROM Books

WHERE bookname LIKE '水__';

SELECT *

FROM Books

WHERE bookname LIKE '水%';

SELECT *

FROM Books

WHERE bookname LIKE '%經%';

 

13.

SELECT no, name, city

FROM Bookstores

ORDER BY no;

SELECT no, name, city

FROM Bookstores

ORDER BY no ASC;

SELECT no, name, city

FROM Bookstores

ORDER BY no DESC;

SELECT no, name, rank, city

FROM Bookstores

ORDER BY rank DESC, no ASC;

14.

SELECT COUNT(*)

FROM Bookstores;

15.

SELECT COUNT(no)

FROM Orders;

SELECT COUNT(DISTINCT no)

FROM Orders;

SELECT COUNT(DISTINCT id)

FROM Orders;

  

16.

 SELECT SUM(quantity)

FROM Orders;

 

SELECT SUM(quantity)

FROM Orders

WHERE no = 2;

17.

SELECT AVG(quantity)

FROM Orders;

SELECT AVG(quantity)

FROM Orders

WHERE no = 2;

18.

SELECT MAX(quantity)

FROM Orders

WHERE no = 1;

SELECT MIN(quantity)

FROM Orders

WHERE no = 1;

19.

SELECT no, COUNT(id)

FROM Orders

GROUP BY no;

 

SELECT id, COUNT(no)

FROM Orders

GROUP BY id;

20.

SELECT no, SUM(quantity)

FROM Orders

GROUP BY no;

SELECT no, SUM(quantity)

FROM Orders

GROUP BY no

HAVING SUM(quantity) > 80;

21.

SELECT name, rank

FROM Bookstores

WHERE rank < ( SELECT AVG(rank) FROM Bookstores );

9.

SELECT Bookstores.no, name, rank, city, id, quantity

FROM Bookstores, Orders

WHERE Bookstores.no = Orders.no;

SELECT name, bookname, quantity

FROM Bookstores, Orders, Books

WHERE Bookstores.no = Orders.no

AND Books.id=Orders.id ;

10.

SELECT no, name, rank, city

FROM Bookstores

WHERE rank > 10 and no > 2;