SQL实验五

USE master
CREATE DATABASE myTest
GO

Use myTest
GO
--1.创建学生表  student
--
输入如下数据
--
030y10101    张三
--
030y10102    李四
--
030y10103    王五
--
030y10104    赵六
CREATE TABLE student
(
    xh 
VARCHAR(20PRIMARY KEY NOT NULL,
    xm 
VARCHAR(20NULL
)
INSERT INTO [student]
(xh,xm)
VALUES
(
'030y10101','张三')
INSERT INTO [student]
(xh,xm)
VALUES
(
'030y10102','李四')
INSERT INTO [student]
(xh,xm)
VALUES
(
'030y10103','王五')
INSERT INTO [student]
(xh,xm)
VALUES
(
'030y10104','赵六')


--2.创建课程表  subject
--
01  高等数学
--
02  英语
--
03  化学
--
04  离散数学
--
05  操作系统
CREATE TABLE [subject]
(
    kcbh 
VARCHAR(10PRIMARY KEY NOT NULL,
    kcm 
VARCHAR(20)
)
INSERT INTO [subject]
(kcbh,kcm)
VALUES
(
'01','高等数学')
INSERT INTO [subject]
(kcbh,kcm)
VALUES
(
'02','英语')
INSERT INTO [subject]
(kcbh,kcm)
VALUES
(
'03','化学')
INSERT INTO [subject]
(kcbh,kcm)
VALUES
(
'04','离散数学')
INSERT INTO [subject]
(kcbh,kcm)
VALUES
(
'05','操作系统')

--3.创建学生成绩表  score  (不用约束)
--
包含字段xh ,kcbh,cj
create table [score]
(
    xh 
varchar(20),
    kcbh 
varchar(10),
    cj 
float
)

--4.利用求笛卡儿积
--
把student 与subject取积后存入socre中
INSERT INTO score(xh,kcbh)
SELECT xh,kcbh FROM student,subject

--5.区别 SELECT INTO 和 INSERT INTO FROM 
--
SELECT * INTO Table1 FROM Table2
--
insert into Table1(fld1, fld2) select fld1, 5 from Table2
--
以上两句都是将 Table2 的数据插入到 Table1,但两句又有区别的。
--
第一句(select into from)要求目标表(Table1)不存在,因为在插入时会自动创建。
--
第二句(insert into select from)要求目标表(Table1)存在,由于目标表已经存在,所以我们除了插入源表(Table2)的字段外,还可以插入常量


--6.执行如下语句  观察变化
SELECT a.xh,a.xm,p.kcbh,p.cj
FROM student AS a INNER join score AS p
ON a.xh = p.xh

SELECT a.xh,a.xm,p.kcbh,p.cj
FROM student AS a LEFT OUTER join score AS p 
ON a.xh = p.xh

SELECT a.xh,a.xm,p.kcbh,p.cj
FROM student AS a right OUTER join score AS p 
ON a.xh = p.xh


--7.向student表中加入数据
--
030y10110   陈名
--
030y10111   李垂
INSERT INTO [student]
(xh,xm)
VALUES
(
'030y10110','陈名')
INSERT INTO [student]
(xh,xm)
VALUES
(
'030y10111','李垂')

--8.向score表中加入数据
--
030y10120       01         56
--
030y10121       01         77
INSERT INTO [myTest].[dbo].[score]
(
[xh],[kcbh],[cj])
VALUES
(
'030y10120','01',56)
INSERT INTO [myTest].[dbo].[score]
(
[xh],[kcbh],[cj])
VALUES
(
'030y10121','01',77)

--9.创建视图  view1 包含
--
xh,xm ,kcdh,kcmc,cj
CREATE VIEW view1
AS
    
SELECT b.xh,b.xm,c.kcbh,c.kcm,a.cj 
    
FROM score AS a INNER JOIN student AS b ON
    a.xh 
= b.xh INNER JOIN subject AS c ON
    a.kcbh 
= c.kcbh
posted @ 2008-05-30 03:17  ajayumi  阅读(444)  评论(1)    收藏  举报