USE master
CREATE DATABASE myTest
GO
![]()
Use myTest
GO
--1.创建学生表 student
--输入如下数据
--030y10101 张三
--030y10102 李四
--030y10103 王五
--030y10104 赵六
CREATE TABLE student
(
xh VARCHAR(20) PRIMARY KEY NOT NULL,
xm VARCHAR(20) NULL
)
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(10) PRIMARY 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)
评论()
收藏
举报