利用SQL語句查詢(基於MSSQL)

用SQL語句建立第2章習題6中的4個表,針對建立的4個表用SQL語句完成以下查詢

(1)求供應工程J1零件的供應商號碼SNO

(2)求供應工程J1零件P1的供應商號碼SNO

(3)找出所有供應商的姓名和所在城市

(4)找出所有零件的名稱、顏色和重量

(5)找出使用供應商S1所供應零件的工程號碼

(1)先建數據庫,建表和導入數據:

CREATE DATABASE SPJ 
on primary
(
name=SPJ_data,
filename='E:\Data2\SPJ_data.mdf',
size=10MB,
filegrowth=10%,
maxsize=UNLIMITED
)
log on
(
name=SPJ_log,
filename='E:\Data2\SPJ_log.ldf',
maxsize=10MB,
filegrowth=1MB
)

USE SPJ;
CREATE TABLE S(
SNO CHAR(3) PRIMARY KEY,
SNAME CHAR(10),
STATUS CHAR(2),
CITY CHAR(10));
 
CREATE TABLE P(
PNO CHAR(3),
PNAME CHAR(10),
COLOR CHAR(4),
WEIGHT INT,
PRIMARY KEY(PNO));
 
CREATE TABLE J(
JNO CHAR(3),
JNAME CHAR(10),
CITY CHAR(10),
PRIMARY KEY(JNO));
 
CREATE TABLE SPJ(
SNO CHAR(3),
PNO CHAR(3),
JNO CHAR(3),
QTY INT,
PRIMARY KEY(SNO,PNO,JNO),
FOREIGN KEY(SNO) REFERENCES S(SNO),
FOREIGN KEY(PNO) REFERENCES P(PNO),
FOREIGN KEY(JNO) REFERENCES J(JNO)
);

INSERT INTO S(SNO,SNAME,STATUS,CITY) VALUES
('S1','精益','20','天津'),
('S2','盛錫','10','北京'),
('S3','東方紅','30','北京'),
('S4','豐泰盛','20','天津'),
('S5','爲民','30','上海');
INSERT INTO P(PNO,PNAME,COLOR,WEIGHT) VALUES
('P1','螺母','紅',12),
('P2','螺栓','綠',17),
('P3','螺絲刀','藍',14),
('P4','螺絲刀','紅',14),
('P5','凸輪','藍',40),
('P6','齒輪','紅',30);
 
INSERT INTO J VALUES
('J1','三建','北京'),
('J2','一汽','長春'),
('J3','彈簧廠','天津'),
('J4','造船廠','天津'),
('J5','機車廠','唐山'),
('J6','無限電廠','常州'),
('J7','半導體廠','南京');
 
INSERT INTO SPJ VALUES
('S1','P1','J1',200),
('S1','P1','J4',700),
('S1','P2','J2',100),
('S2','P3','J1',400),
('S2','P3','J2',200),
('S2','P3','J4',500),
('S2','P3','J5',400),
('S2','P5','J1',400),
('S3','P1','J1',200),
('S3','P3','J1',200),
('S4','P5','J1',100),
('S4','P6','J3',300),
('S4','P6','J4',200),
('S5','P2','J4',100),
('S5','P3','J1',200),
('S5','P6','J2',200),
('S5','P6','J4',50);

 

(2)開始用SQL語句查詢

(1)求供應工程J1零件的供應商號碼SNO

select distinct SNO from SPJ where JNO='J1';

(2)求供應工程J1零件P1的供應商號碼SNO

select distinct SNO from SPJ where JNO='J1' and PNO='p1';

(3)找出所有供應商的姓名和所在城市

select SNAME,CITY from S ;

(4)找出所有零件的名稱、顏色和重量

select PNAME,COLOR,WEIGHT FROM P;

(5)找出使用供應商S1所供應零件的工程號碼

select distinct PNO from SPJ where SNO='S1';

 額 ,先寫這麼多,後面再總結下常見的在MSSQL上的SQL語句查詢,今天不想寫了😶

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章