文档库 最新最全的文档下载
当前位置:文档库 › 数据库SQL查询语句实验报告

数据库SQL查询语句实验报告

数据库SQL查询语句实验报告
数据库SQL查询语句实验报告

实验一简单查询

在订单数据库中完成如下的查询

(1) 查询所有业务部门的员工姓名、职称、薪水

命令:

select employeeName2612,headShip2612,salary2612

from Employee2612

where department2612='业务科'

结果:

(2) 查询名字中含有“有限”的客户姓名和所在地。

命令:

select CustomerName2612,address2612

from Customer2612

where CustomerName2612 like '%有限%'

结果:

(3) 查询出姓“王”并且姓名的最后一个字为“成”的员工。

命令:

select *

from Employee2612

where employeeName2612 like '王%成'

结果:

(4) 查询住址中含有上海或南昌的女员工,并显示其姓名、所属部门、职称、住址,其中性别用“男”和“女”显示。

命令:

select employeeName2612,department2612,headShip2612,address2612,

case sex2612

when 'M' then '男'

when 'F' then '女'

end as 性别

from Employee2612

where address2612 like '%上海%' or address2612 like '%南昌%' and sex2612='F' 结果:

(5) 在表sales中挑出销售金额大于等于10000元的订单。

命令:

SELECT orderNo2612,sum(quantity2612*price2612) as total

FROM OrderDetail2612

GROUP BY orderNo2612

HA VING sum(quantity2612*price2612)>10000

结果:

(6) 选取订单金额最高的前10%的订单数据。

命令:

select TOP 10 PERCENT orderNo2612, sum(quantity2612*price2612) as total from OrderDetail2612

group by orderNo2612

ORDER BY total desc

结果:

(7) 查询出职务为“职员”或职务为“科长”的女员工的信息。

命令:

select *

from Employee2612

where headShip2612 in ('科长','职员') and sex2612='F'

结果:

(8) 查找定单金额高于8000的所有客户编号。

命令:

select CustomerNo2612

from OrderDetail2612 as a,OrderMaster2612 as b

where a.orderNo2612=b.orderNo2612

group by CustomerNo2612

having sum(quantity2612*price2612)>8000

结果:

(9) 选取编号界于“C20050001”和“C20050004”的客户编号、客户名称、客户地址。命令:

SELECT CustomerNo2612,CustomerName2612,address2612

FROM Customer2612

WHERE CustomerNo2612 BETWEEN 'C20050001' AND 'C20050004'

结果:

(11) 找出同一天进入公司服务的员工。

命令:

select hireDate2612,employeeName2612

from Employee2612 as a

where exists

(select * from Employee2612 as b

where a.hireDate2612=b.hireDate2612 and a.employeeNo2612!=b.employeeNo2612)

group by hireDate2612,employeeName2612

结果:

(12) 在订单主表中查询订单金额大于“E2005002业务员在2008-1-9这天所接的任一张订单的金额”的所有订单信息。

命令:

SELECT

a.orderNo2612,CustomerNO2612,salerNo2612,orderDate2612,invoiceNo2612,sum(quantity2612 *price2612) orderSum

FROM OrderDetail2612 a,OrderMaster2612 b

WHERE a.orderNo2612=b.orderNo2612

GROUP BY a.orderNo2612,CustomerNO2612,salerNo2612,orderDate2612,invoiceNo2612

HA VING sum(quantity2612*price2612) > ALL

( SELECT sum(quantity2612*price2612)

FROM OrderDetail2612 a,OrderMaster2612 b

WHERE a.orderNo2612=b.orderNo2612 and salerNo2612='E2005002' and orderDate2612='2008-01-09 00:00:00.000'

GROUP BY a.orderNo2612 )

结果:

(13) 查询既订购了“52倍速光驱”商品,又订购了“17寸显示器”商品的客户编号、订单编号和订单金额。

命令:

select b.CustomerNo2612,a.orderNo2612,sum(quantity2612*price2612) as total

from OrderDetail2612 as a,OrderMaster2612 as b,Product2612 as c,

(select d.orderNo2612 from OrderDetail2612 as d,Product2612 as e where ProductName2612='17寸显示器'and d.ProductNo2612=e.ProductNo2612) as f

where c.ProductName2612='52倍速光驱' and a.orderNo2612=b.orderNo2612 and a.orderNo2612=f.orderNo2612

group by b.CustomerNo2612,a.orderNo2612

结果:

(14) 查找与“陈诗杰”在同一个单位工作的员工姓名、性别、部门和职务。

命令:

select a.employeeName2612,a.sex2612,a.department2612,a.headShip2612

from Employee2612 as a,(select * from Employee2612 where employeeName2612='陈诗杰') as b where a.department2612=b.department2612

结果:

(15) 查询每种商品的商品编号、商品名称、订货数量和订货单价。

命令:

select b.ProductName2612,a.ProductNo2612,a.total,a.price2612

from (

select sum(quantity2612) as total,ProductNo2612,price2612

from OrderDetail2612

group by ProductNo2612,price2612) as a , Product2612 as b

where a.ProductNo2612=b.ProductNo2612

结果:

(16) 查询单价高于400元的商品编号、商品名称、订货数量和订货单价。

命令:

select b.ProductName2612,a.ProductNo2612,a.total,a.price2612

from (

select sum(quantity2612) as total,ProductNo2612,price2612

from OrderDetail2612

group by ProductNo2612,price2612

having price2612>400) as a , Product2612 as b

where a.ProductNo2612=b.ProductNo2612

结果:

(17) 分别使用左外连接、右外连接、完整外部连接查询单价高于400元的商品编号、商品名称、订货数量和订货单价,并分析比较检索的结果。

命令:

select a.ProductNo2612,ProductName2612,quantity2612,price2612

from Product2612 a LEFT OUTER JOIN OrderDetail2612 b ON a.ProductNo2612=b.ProductNo2612

group by a.ProductNo2612,quantity2612,price2612,ProductName2612

having price2612>400

select a.ProductNo2612,ProductName2612,quantity2612,price2612

from Product2612 a RIGHT OUTER JOIN OrderDetail2612 b ON a.ProductNo2612=b.ProductNo2612

group by a.ProductNo2612,quantity2612,price2612,ProductName2612

having price2612>400

select a.ProductNo2612,ProductName2612,quantity2612,price2612

from Product2612 a FULL OUTER JOIN OrderDetail2612 b ON a.ProductNo2612=b.ProductNo2612

group by a.ProductNo2612,quantity2612,price2612,ProductName2612

having price2612>400

结果:

(18) 查找每个员工的销售记录,要求显示销售员的编号、姓名、性别、商品名称、数量、单价、金额和销售日期,其中性别使用“男”和“女”表示,日期使用“yyyy-mm-dd”格式显示。

命令:

SELECT employeeNo2612,employeeName2612,

case sex2612 when 'F' then '女'

when 'M' then '男'

end as 性别, ProductName2612,quantity2612,price2612,quantity2612*price2612 orderSum,ISNULL(convert(char(10),orderDate2612,120),'') 日期

FROM Employee2612 a,OrderMaster2612 b,OrderDetail2612 c,Product2612 d

WHERE employeeNo2612=salerNo2612 and b.orderNo2612=c.orderNo2612 and c.ProductNo2612=d.ProductNo2612

结果:

(19) 查找在2008年3月中有销售记录的客户编号、名称和订单总额。

命令:

SELECT

a.CustomerNo2612,a.CustomerName2612,orderDate2612,sum(quantity2612*price2612)as 金额FROM Customer2612 a,OrderMaster2612 b,OrderDetail2612 c

WHERE a.CustomerNo2612=b.CustomerNo2612 and b.orderNo2612=c.orderNo2612 and year(orderDate2612)=2008 and month(orderDate2612)=3

GROUP BY a.CustomerNo2612,a.CustomerName2612,orderDate2612

结果:

(20) 使用左外连接查找每个客户的客户编号、名称、订货日期、订单金额,其中订货日期不要显示时间,日期格式为“yyyy-mm-dd”,按客户编号排序,同一客户再按订单金额降序排序输出。

命令:

SELECT

a.CustomerNo2612,a.CustomerName2612,ISNULL(convert(char(10),orderDate2612,120),'') Date FROM Customer2612 a LEFT JOIN OrderMaster2612 b ON a.CustomerNo2612=

b.CustomerNo2612

ORDER BY a.CustomerNo2612,orderSum2612

结果:

(21) 查找16M DRAM的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用“男”、“女”表示。

命令:

select employeeName2612,

case sex2612 when 'F' then '女'

when 'M' then '男'

end as 性别, orderDate2612,quantity2612,sum(quantity2612*price2612)as 金额

from Employee2612 a,OrderMaster2612 b,OrderDetail2612 c

where employeeNo2612=salerNo2612 and b.orderNo2612=c.orderNo2612 and ProductNo2612 in (select ProductNo2612 from Product2612 where ProductName2612='16M DRAM')

group by employeeName2612,sex2612, orderDate2612,quantity2612

结果:

(22) 查找每个人的销售记录,要求显示销售员的编号、姓名、性别、商品名称、数量、单价、金额和销售日期。

命令:

select

employeeNo2612,employeeName2612,sex2612,ProductName2612,quantity2612,price2612,sum(q uantity2612*price2612)

as ordersum, orderDate2612

from Employee2612 a,OrderMaster2612 b,OrderDetail2612 c,Product2612 d

where employeeNo2612=salerNo2612 and b.orderNo2612=c.orderNo2612 and c.ProductNo2612=d.ProductNo2612

group by employeeNo2612,employeeName2612,sex2612,ProductName2612,quantity2612,price2612, orderDate2612

结果:

(23) 查询客户姓名为“客户丙”所购货物的“客户名称”、“定单金额”、“定货日期”和“电话号码”。

命令:

SELECT a.CustomerName2612,quantity2612*price2612 订单金额,orderDate2612,telephone2612

FROM Customer2612 a,OrderMaster2612 b,OrderDetail2612 c

WHERE CustomerName2612='客户丙' and a.CustomerNo2612=b.CustomerNo2612 and b.orderNo2612=c.orderNo2612

结果:

(24) 找出公司男业务员所接且订单金额超过2000元的订单号及订单金额。

命令:

select b.orderNo2612,sum(quantity2612*price2612) ordersum

from Employee2612 a,OrderMaster2612 b,OrderDetail2612 c

where sex2612='M' and a.employeeNo2612=b.salerNo2612 and b.orderNo2612=c.orderNo2612 group by b.orderNo2612

having sum(quantity2612*price2612)>2000

结果:

(25) 查询来自上海市的客户的姓名、电话、订单号及订单金额。

命令:

select CustomerName2612,telephone2612,b.orderNo2612,sum(quantity2612*price2612) as ordersum

from Customer2612 a,OrderMaster2612 b,OrderDetail2612 c

where address2612='上海市' and a.CustomerNo2612=b.CustomerNo2612 and b.orderNo2612=c.orderNo2612

group by CustomerName2612,telephone2612,b.orderNo2612

结果:

实验二题目

首先使用命令:

UPDATE OrderMaster2612 SET orderSum2612=total

FROM OrderMaster2612 a,

(SELECT orderNo2612,sum(quantity2612*price2612) as total

FROM OrderDetail2612

GROUP BY orderNo2612) b

WHERE a.orderNo2612=b.orderNo2612

更新表OrderMaster2612 中orderSum2612 的值。

(1)查找有销售记录的客户编号、名称和订单总额。

命令:

SELECT a.CustomerNo2612,CustomerName2612,sum(orderSum2612) Sum

FROM Customer2612 a,OrderMaster2612 b

WHERE a.CustomerNo2612=b.CustomerNo2612 and orderSum2612!=0

GROUP BY a.CustomerNo2612,CustomerName2612

结果:

(2) 在订单明细表中查询订单金额最高的订单。

命令:

SELECT *

FROM OrderMaster2612

WHERE orderSum2612=(SELECT max(orderSum2612) FROM OrderMaster2612)

结果:

(3) 查询没有订购商品的客户编号和客户名称。

命令:

SELECT a.CustomerNo2612,CustomerName2612,

FROM Customer2612 a

WHERE NOT EXISTS (

SELECT *

FROM OrderMaster2612 b,OrderDetail2612 c

WHERE a.CustomerNo2612=b.CustomerNo2612 and b.orderNo2612=c.orderNo2612) GROUP BY a.CustomerNo2612,CustomerName2612

结果:

(4) 找出至少被订购3次的商品编号、订单编号、订货数量和订货金额,并按订货数量的降序排序输出。

命令:

SELECT productNo2612,orderNo2612,quantity2612,quantity2612*price2612 订货金额

FROM OrderDetail2612

WHERE productNO2612 IN(

SELECT productNo2612

FROM OrderDetail2612

GROUP BY productNo2612

HA VING count(*)>=3)

ORDER BY productNo2612 desc

结果:

(5) 使用子查询查找16M DRAM的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用“男”、“女”表示。

命令:

SELECT employeeName2612,

CASE sex2612 WHEN'F' THEN '女'

WHEN 'M' THEN '男'

END AS 性别, orderDate2612,quantity2612,sum(quantity2612*price2612)as 金额

FROM Employee2612 a,OrderMaster2612 b,OrderDetail2612 c

WHERE employeeNo2612=salerNo2612 and b.orderNo2612=c.orderNo2612 and ProductNo2612 in

(SELECT ProductNo2612 FROM Product2612 WHERE ProductName2612='16M DRAM')

结果:

(6) 查询sales表中订单金额最高的订单号及订单金额。

命令:

SELECT orderNo2612,orderSum2612

FROM OrderMaster2612

WHERE orderSum2612=(SELECT max(orderSum2612) FROM OrderMaster2612)

结果:

(7) 计算出一共销售了几种商品。

命令:

SELECT count(distinct productNo2612) 商品种类

FROM OrderDetail2612

结果:

(8) 显示OrderDetail表中每种商品的订购金额总和,并且依据销售金额由大到小排序输出。

命令:

SELECT productNo2612,sum(quantity2612*price2612) 订购金额

FROM OrderDetail2612

GROUP BY productNo2612

ORDER BY 订购金额DESC

结果:

(9) 查找销售总额少于1000元的销售员编号、姓名和销售额。

命令:

SELECT employeeNo2612,employeeName2612,sum(orderSum2612) 销售额

FROM OrderMaster2612 a RIGHT OUTER JOIN Employee2612 b ON salerNo2612=employeeNo2612

WHERE employeeNo2612 NOT IN (

SELECT salerNo2612

FROM OrderMaster2612

WHERE salerNo2612 NOT IN(

SELECT salerNo2612

FROM OrderMaster2612

GROUP BY salerNo2612

HA VING sum(orderSum2612)<1000))

GROUP BY employeeNo2612,employeeName2612

结果:

(10) 找出目前业绩未超过5000元的员工,并按销售业绩的降序排序输出。

命令:

SELECT employeeNo2612,employeeName2612,sum(orderSum2612) 销售额

FROM OrderMaster2612 a RIGHT OUTER JOIN Employee2612 b ON salerNo2612=employeeNo2612

WHERE salerNo2612 IN(

SELECT salerNo2612

FROM OrderMaster2612

GROUP BY salerNo2612

HA VING sum(orderSum2612)<5000)

GROUP BY employeeNo2612,employeeName2612

ORDER BY 销售额DESC

结果:

(11) 在Employee表中查询薪水超过员工平均薪水的员工信息。

命令:

SELECT employeeNo2612,employeeName2612,salary2612

FROM Employee2612

WHERE salary2612>(

SELECT avg(salary2612)

FROM Employee2612)

GROUP BY employeeNo2612,employeeName2612,salary2612

结果:

(12) 计算每一种商品的销售数量、平均销售单价和总销售金额。

命令:

SELECT productNo2612,count(quantity2612) 销售数量,avg(price2612) 平均销售单价,sum(quantity2612*price2612) 总销售额

FROM OrderDetail2612

GROUP BY productNo2612

ORDER BY productNo2612

结果:

(13) 查找至少有3次销售的业务员名单和销售日期。

命令:

SELECT employeeName2612,orderDate2612

FROM Employee2612 a,OrderMaster2612 b,(

SELECT salerNo2612

FROM OrderMaster2612

GROUP BY salerNo2612

HA VING count(*)>=3) c

WHERE employeeNo2612=b.salerNo2612 and b.salerNo2612=c.salerNo2612 GROUP BY employeeName2612,orderDate2612

结果:

(14) 用存在量词查找没有订货记录的客户名称。

命令:

SELECT CustomerName2612

FROM Customer2612 a

WHERE NOT EXISTS (

SELECT CustomerNo2612

FROM OrderMaster2612 b

WHERE a.CustomerNo2612=b.CustomerNo2612)

结果:

(15) 查询订单中所订购的商品数量没有超过10个的客户编号和客户名称。

命令:

SELECT a.CustomerNo2612,a.CustomerName2612

FROM Customer2612 a

WHERE EXISTS (

SELECT *

FROM OrderDetail2612 b,OrderMaster2612 c

WHERE a.CustomerNo2612=c.CustomerNo2612 and b.orderNo2612=c.orderNo2612

GROUP BY a.CustomerNo2612

HA VING sum(quantity2612)<10)

结果:

(16) 在销售明细表中按商品编号进行汇总,统计每种商品的销售数量和金额。

命令:

SELECT productNo2612,sum(quantity2612) 销售数量,sum(quantity2612*price2612) 金额FROM OrderDetail2612

GROUP BY productNo2612

结果:

(17) 按客户编号统计每个客户2008年2月的订单总金额。

命令:

SELECT a.CustomerNo2612,orderSum2612,orderDate2612

FROM Customer2612 a LEFT OUTER JOIN OrderMaster2612 b ON

a.CustomerNO2612=

b.CustomerNo2612

WHERE year(orderDate2612)='2008' and month(orderDate2612)='2'

结果:

(18) 查找定单金额高于8000的所有客户编号。

命令:

SELECT CustomerNo2612

FROM OrderDetail2612 as a,OrderMaster2612 as b

WHERE a.orderNo2612=b.orderNo2612

GROUP BY CustomerNo2612

HA VING sum(quantity2612*price2612)>8000

结果:

(19) 显示每种商品的销售金额总和,并依销售金额由大到小输出。命令:

SELECT productNo2612,sum(price2612*quantity2612) 销售金额

FROM OrderDetail2612

GROUP BY productNo2612

ORDER BY 销售金额desc

结果:

(20) 查找销售金额最大的客户名称和总货款。

命令:

SELECT top 1 CustomerName2612,max(总货款) 总货款

FROM (SELECT CustomerNo2612,sum(orderSum2612) 总货款

FROM OrderMaster2612

GROUP BY CustomerNo2612) a,OrderMaster2612 b,Customer2612 c

WHERE a.CustomerNo2612=b.CustomerNo2612 and b.CustomerNo2612=c.CustomerNo2612 GROUP BY CustomerName2612

ORDER BY 总货款desc

结果:

(21) 查找至少销售了3种商品的客户编号、客户名称、商品编号、商品名称、数量和金额。

命令:

SELECT a.CustomerNo2612,a.CustomerName2612, c.productNo2612,productName2612,quantity2612,quantity2612*price2612 金额,orderDate2612 FROM Customer2612 a,OrderMaster2612 b,OrderDetail2612 c,Product2612 d

WHERE b.orderNo2612=c.orderNO2612 and c.productNo2612=d.productNo2612 and a.CustomerNo2612 IN(

SELECT CustomerNo2612

FROM OrderMaster2612

WHERE orderNo2612 IN (

SELECT orderNO2612

FROM OrderDetail2612

GROUP BY orderNo2612

HA VING count(*)>=3))

ORDER BY a.CustomerNo2612, c.productNo2612

结果:

(22) 找出目前业绩超过232000元的员工编号和姓名。

命令:

SELECT employeeNo2612,employeeName2612

FROM OrderMaster2612,Employee2612

WHERE salerNo2612=employeeNo2612

GROUP BY employeeNo2612,employeeName2612

HA VING sum(orderSum2612)>232000

结果:

数据库SQL语句

1、select x.商品代号,分类名,数量,品牌 From 商品表现1 x,商品表2 y Where x.商品代号=y.商品代号 (从商品库中查询出每一种商品的商品代号、分类名、数量和品牌等信息。)2、select distinct 产地 From商品表2 (从商品库中查询出所有商品的不同产地。) 3、select distinct 品牌 From 商品表2 (从商品库中查询出所有商品的不同品牌) 4、select count(distinct产地)as产地数From商品表2 (从商品库中查询出所有商品的不同产地的总数。) 5、select x.商品代号,分类名,产地,品牌 From商品表1 x.,商品表2 y Where x,商品代号=y.商品代号and (品牌=‘熊猫’or品牌=‘春兰’) (从商品库中查询出品牌为熊猫或春兰的所有商品的商品代号、分类名、产地和品牌。) 19、select 商品表1.商品代号,单价,数量,产地 From 商品表1,商品表2 Where 商品表达式1.商品代号=商品表达式2.商品代号 (从商品库中查询出每种商品的商品代号、单价、数量和产地。) 20、select count(*) From 商品表1 Where数量》10 (从商品库中查询出数量大于10的商品种数。) 21、select * From商品表1 Where数量between 10 and20 (从商品库中查询出数量在10和20之间的所有商品。) 22、select分类名,max(单价)as最高单价 From商品表1 Group by 分类名 (从商品库中查询出每类(即类名相同)商品的最高单价)23、select分类名,avg(数量)as平均 数量 From商品表1 Group by分类名 (从商品库中查询出每类(即分类名相 同)商品的平均数量) 24、select分类名,sum(数量)as总 数量 From商品表1 Group by分类名 (从商品库中查询出每类(即分类名相 同)商品的总数量。) 25、select* From商品表1 Where单价>all(select单价 From商品表1 Where分类名’电视机’) (从商品库中查询出比所有电视机的 单价都高的每种商品) 26、select* From商品表1 Where单价>all(select avg(单价) From商品表1) (从商品库中查询出比所有商品单价 的平均值要高的全部商品) 27、select* From商品表1 Where数量=some(select max(数量) From商品表1) (从商品库中查询出数量最多的一种 商品) 28、select distinct分类名 From商品表1. Group by 分类名having count(*)>1 (从商品库中查询出同一类商品多于一 种的所有分类名) 29、select商品表1.*,产地 From商品表1,商品表2 Where商品表1.商品代号=商品表2.商 品代事情and产地in( Select 产地 From商品表1 x ,商品表2 y Where x.商品代号=y.商品代号 Group by产地having count(*)=1) (从商品库中查询出同一产地的商品 只有一种的所有商品) 30、select*,单价*数量as总价值 From商品表1 Order by总价值desc (从商品库中查询出每种商品的总价 值,并按降序排列出来 6、select 学生。学生号,count(*)as选 课门数 From学生,选课 Where学生.学生号=选课.学生号 Group by 学生。学生号 (从教学库中查询出互个学生选课的 门数。) 7、select distinct x.* From 学生产x,选课y,选课z Where y.学生号=z.学生号and y .课程 号<>z.课程号and x.学生号=y.学生号 (从教学库中查询出至少选修了两门 课程的全部学生。) 8、select * From 学生 Where 学生号in (select 学生号 From 选课 Group by 学生号having coount (*)=1) (从教学库中查询出只选修了一门课 程的全部学生。) 9、select x.学生号,y.学生号,y.课程号 From 选课x,选课y Where x.学生号=@sl and y.学生号=@ s2 and x.课程号=y.课程号 (从教学库中查询出学生号为@s1的学 生和学生号为@s2的学生所选修的共 同课程的课程号。) 10、select x.* From 课程x,选课y Where x.课程号=y.课程号and y .学生 号=@s1 and y.课程号not in( select 课程号 from 选课 where 选课.学生号=@s2) (从教学库中查询出学生号为@S1的学 生所选修、而学生号为@s2的学生没有 选修的全部课程。) 11、select * From 课程 Where not exists( select * from 选课 where 课程.课程号=选课.课程号) (从教学库中查询出所有未被学生选 修的课程。) 12、select * From 课程 Where exists(Select * From 选课 Where 课程.课程号=选课.课程号) (从教学库中查询出所有已被学生选 修的课程。)

sqlserver数据库综合实验报告格式

华北科技学院计算机系综合性实验 实验报告 课程名称数据库原理与应用 实验学期 2009 至 2010 学年第一学期学生所在系部管理系 年级三年级专业班级商务B071班 学生姓名李荣妹学号 4121 任课教师郭红 实验成绩 计算机系制

《数据库原理与应用》课程综合性实验报告

(3)建表如下图: 图书表的结构 读者表的结构罚款表的结构 借阅表的结构密码表的结构 输入数据:图书 读者 S只学生,t指老师,1指没有超期,0表示超期 借阅 罚款

密码: (4)、创建视图。以sa的身份登录数据库,创建视图V1,V2,V3 create VIEW V1 create VIEW V2 create VIEW V3 AS AS AS select * from 图书 select * from 借阅 select * from 罚款 建立视图V5,查看在库的图书:create view V5 as select *from 图书 where 借阅状态=‘在库’ 建立已被借出去的图书视图 create view V6 as

select * from 图书 where 借阅状态='出库' 建立逾期未还的图书的学生视图: create view V7 as select * from 借阅 where datediff(day,convert(smalldatetime,借出日期),getdate())>’30’ and 借书证号 in(select 借书证号 from 读者,借阅 Where 借阅.借书证号=读者.借书证号 and 读者类别=‘s’ 四、物理设计和自定义完整性 建立索引:为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引是表中建立索引的表项: 图书表(图书编号,条形码号)读者(借书证号)借阅(借书证号,条形码号)罚款表(借书证号,条形码号)密码(借书证号) (2)建立触发器 a.对已有借书证的读者进行查询借书是否超期(这里归定30天): create trigger T1 on 读者 for insert as select 借阅.借书证号,读者.读者姓名,图书.图书编号,图书.书名,借阅.借出日期 from 读者,借阅,图书 where 读者.借书证号=借阅.借书证号 and 图书.条形码号=借阅.条形码号 and 读者类别='s' and Datediff(day,convert(smalldatetime,借出日期),getdate())>=30 b.建立触发器T2(还书时): create trigger T2 on 借阅 for insert as begin update 图书 set 借阅状态='在库' where 条形码号=(select 条形码号 from inserted) update 借阅 set 归还日期=getdate(); update 读者 set 书数=书数-1 where 借书证号=(select 借书证号 from inserted) end c.建立触发器T3(借书书时): create trigger T3 on 借阅 for insert as begin update 图书 set 借阅状态='入库' where 条形码号=(select 条形码号 from inserted) update 借阅 set 借出日期=getdate(); update 读者 set 书数=书数+1 where 借书证号=(select 借书证号 from inserted) end d.建立触发器T4,实现超出借书数目时禁借(针对老师的): create trigger T4 on 读者 for insert

SQL数据库实验报告 (1)

资源与环境科学学院实验报告 一、上机实习名称:SQL Server的安装及数据库的建立 二、实验目的: 1、通过对某个商用数据库管理系统的使用,了解DBMS的工作原理和系统构架。 2、熟悉对DBMS的操作 3、熟悉如何使用SSMS和SQL建立数据库和表,并加深对于完整性的理解。 三、实验内容: 1、根据安装文件的说明安装数据库管理系统。 2、学会启动和停止数据库服务,思考可以用哪些方式来完成启动和停止。 3、掌握管理工具的使用 (1)SQL Server Management Studio的使用 ?连接服务器的方法 ?查询分析器的使用 (2)配置管理器的使用 4、了解数据库系统的逻辑组件: 它们主要是数据库对象,包括基本表、视图、触发器、存储过程、约束等。今后将学习如何操作这些数据库对象。 5.在SSMS中创建数据库和表 四、实验步骤 1. SQL Server 2008的体系结构和特点介绍 SQL Server 是一个关系数据库管理系统。由微软公司2008年第三季度正式发布, SQL Server 2008是一个重大的产品版本,在安全性、可用性、易管理性、可扩展性、商业智能等方面有了更多的改进和提高,对企业的数据存储和应用需求提供了更强大的支持和便利,使得它成为迄今为止最强大和最全面的SQL Server版本。 SQL Server 2008 版本体系:根据不同的用户类型和使用需求,微软公司推出了5种不同的SQL Server版本,包括企业版(Enterprise)、标准版(Standard)、工作组版(Workgroup)、学习版(Express)和移动版(Compact)

sql语句大全1

SQL语句大全 --语句功能 --数据操作 SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 --数据定义 CREATE TABLE --创建一个数据库表 DROP TABLE --从数据库中删除表 ALTER TABLE --修改数据库表结构 CREATE VIEW --创建一个视图 DROP VIEW --从数据库中删除视图 CREATE INDEX --为数据库表创建一个索引DROP INDEX --从数据库中删除索引 CREATE PROCEDURE --创建一个存储过程 DROP PROCEDURE --从数据库中删除存储过程CREATE TRIGGER --创建一个触发器 DROP TRIGGER --从数据库中删除触发器CREATE SCHEMA --向数据库添加一个新模式DROP SCHEMA --从数据库中删除一个模式CREATE DOMAIN --创建一个数据值域 ALTER DOMAIN --改变域定义 DROP DOMAIN --从数据库中删除一个域 --数据控制 GRANT --授予用户访问权限 DENY --拒绝用户访问 REVOKE --解除用户访问权限 --事务控制 COMMIT --结束当前事务 ROLLBACK --中止当前事务 SET TRANSACTION --定义当前事务数据访问特征--程序化SQL DECLARE --为查询设定游标 EXPLAN --为查询描述数据访问计划 OPEN --检索查询结果打开一个游标 FETCH --检索一行查询结果 CLOSE --关闭游标 PREPARE --为动态执行准备SQL 语句EXECUTE --动态地执行SQL 语句 DESCRIBE --描述准备好的查询

数据库SQL查询语句大全

经典SQL查询语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1. dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tab name(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!

SQL 数据库实验报告3

一、实验内容 (1)掌握在SQL Server管理平台中对表进行插入、修改和删除数据操作的方法。 (2)掌握使用Transact-SQL语句对表进行插入、修改和删除数据操作的方法。 二、实验器材(设备、元器件) Window7操作系统,SQL Server软件 三、实验步骤 (1)启动SQL Server管理平台,在对象资源管理器中展开studentsdb数据库文件夹。 (2)在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些表的数据结构如图所示在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些表的数据结构如图所示 (3)在SQL Server管理平台中创建student_info、curriculum表。 学生基本情况表student_info 课程信息表curriculum

①启动SQL Server管理平台,在对象资源管理器中展开studentsdb数据库文件夹。 ②在SQL Server管理平台中创建student_info表。 ③在SQL Server管理平台中创建curriculum表。 (4)使用Transact-SQL语句CREATE TABLE在studentsdb数据库中创建表 学生成绩表grade

①新建查询,输入Transact-SQL语句,点击执行 ②出现如下界面,学生成绩表grade建立成功 (5)在SQL Server管理平台中,将student_info表的学号列设置为主键,非空。

(6)student_info、curriculum、grade表中的数据如图所示。 student_info的数据 curriculum的数据 grade的数据 (7)在SQL Server管理平台中为student_info表添加数据

SQL-Server数据库上机实验报告

SQL-Server数据库上机实验报告

《数据库系统原理》上机实验报告 学号:1120131743 姓名:谈兆年 班级:07111301

一、实验目的与要求: ●熟练使用SQL语句 ●掌握关系模型上的完整性约束机制 二、实验内容 1:利用SQL语句创建Employee数据库 CREATE DATABASE Employee; 结果: 2:利用SQL语句在Employee数据库中创建人员表person、月薪表salary及部门表dept。 做法:按表1、表2、表3中的字段说明创建 表1 person表结构 字段名数据 类型 字段 长度 允许空 否 字段说明 P_no Char 6 Not Null 工号,主键P_na Varch10 Not 姓名

me ar Null Sex Char 2 Not Null 性别 Birth date Dateti me Null 出生日期 Prof Varch ar 10 Null 职称 Dept no Char 4 Not Null 部门代码,外键 (参照dept表)表2 salary表结构 字段名数据 类型 字段 长度 允许空 否 字段说明 P_no Char 6 Not Null 工号,主键,外键(参照person表) Base Dec 5 Null 基本工资Bonu s Dec 5 Null 奖金,要求>50 Fact Dec 5 Null 实发工资=基本工 资+奖金 Mont h Int 2 Not Null 月份

表3 dept表结构 字段名数据 类型 字段 长度 允许空 否 字段说明 Dept no Char 4 Not Null 部门代码,主键, Dna me Varch ar 10 Not Null 部门名称 程序为: CREATE TABLE dept( deptno CHAR(4) PRIMARY KEY NOT NULL, dname V ARCHAR(10) NOT NULL) CREATE TABLE Person( P_no CHAR(6) PRIMARY KEY Not Null, P_name V ARCHAR(10) Not Null, Sex CHAR(2) Not Null, Birthdate Datetime Null, Prof V ARCHAR(10) Null, Deptno CHAR(4) Not Null, FOREIGN KEY(Deptno) REFERENCES

数据库图书信息管理数据库SQL语句

实验 SQL语言 一、实验目的 1、理解数据库以及数据表的设计; 2、熟悉SQL Server2005中的数据类型; 3、熟悉使用SQL语句创建和删除模式和索引; 4、掌握使用SQL语句创建、修改和删除数据表; 5、掌握使用SQL语句查询表中的数据; 6、掌握使用SQL语句插入、修改和删除数据表中的数据; 7、掌握使用SQL语句创建、删除、查询和更新视图。 二、实验容 (一)创建数据库和模式 1、通过SQL语句创建图书信息管理数据库,命名为“db_Library”,数据文件和日志文件放在D盘下以自己学号和命名的文件夹中,数据文件的逻辑名为db_Library_data,数据文件的操作系统名为db_Library_data.mdf,文件初始大小为10MB,最大可增加至300MB,增幅为10%;日志文件的逻辑名为db_Library_log,日志文件的操作系统名为db_Library_data.ldf,文件初始大小为5MB,最大可增加至200MB,增幅为2MB。 2、通过SQL语句在该数据库中创建模式L-C。 (二)创建和管理数据表 要求为各数据表的字段选择合适的数据类型及名称;为各数据表设置相应的完整性约束条件。 1、通过SQL语句将以下数据表创建在L-C模式下: 课程信息表(tb_course)——课程编号Course number 、课程名Course name 、先修课The first course 、学分credit 2、通过SQL语句将以下数据表创建在该数据库的默认模式dbo下: 图书类别信息表(tb_booktype)——类别编号Type number 、类别名称Category name 图书信息表(tb_book)——图书编号ISBN 、类别编号Type number、书名title 、作者author、BookPublic、定价BookPrice、库存数Inventory number 读者信息表(tb_reader)——读者编号Reader ID 、、性别、学号Student ID 、班级、系部pastern 借阅信息表(tb_borrow)——图书编号、读者编号、借阅日期Borrowing date 、归还日期Return date 3、通过SQL语句对读者信息表进行修改:删除系部字段、添加所在系字段。 4、通过SQL语句对图书信息表进行修改:将定价的数据类型改为REAL。 5、通过SQL语句删除课程信息表。 (三)创建和删除索引 1、使用SQL语句在图书信息表上创建一个非聚簇索引IX_S_QUANTITY,要求按照该表中库存数字段的降序创建。 2、使用SQL语句在读者信息表上创建一个唯一的非聚簇索引IX_S_NAME,要求按照该表中的字段的升序创建。 3、使用SQL语句删除之前创建的两个索引。 (四)数据库及数据表设计

数据库SQL查询语句大全修订稿

数据库S Q L查询语句 大全 公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

经典SQL查询语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definitio n only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type

注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词 A:UNION 运算符

数据库sqlserver实验报告

实验一熟悉常用的 DBMS:SQL SERVER2008、Oracle 试验内容及要求: (1)了解不同数据库管理系统及不同版本的相应功能特点 目前,商品化的数据库管理系统以关系型数据库为主导产品,技术比较成熟。面向对象的数据库管理系统虽然技术先进,数据库易于开发、维护,但尚未有成熟的产品。国际国内的主导关系型数据库管理系统有Oracle、Sybase、INFORMIX和INGRES。这些产品都支持多平台,如UNIX、VMS、Windows,但支持的程度不一样。IBM的DB2也是成熟的关系型数据库。但是,DB2是内嵌于IBM的AS/400系列机中,只支持OS/400操作系统。 1.MySQL MySQL是最受欢迎的开源SQL数据库管理系统,它由MySQL AB开发、发布和支持。MySQL AB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL是MySQL AB的注册商标。 MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass- deployed)的软件中去。与其他数据库管理系统相比,MySQL具有以下优势: (1)MySQL是一个关系数据库管理系统。 (2)MySQL是开源的。 (3)MySQL服务器是一个快速的、可靠的和易于使用的数据库服务器。 (4)MySQL服务器工作在客户/服务器或嵌入系统中。 (5)有大量的MySQL软件可以使用。 2.SQL Server SQL Server是由微软开发的数据库管理系统,是Web上最流行的用于存储数据的数据库,它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业。 目前最新版本是SQL Server2005,它只能在Windows上运行,操作系统的系统稳定性对数据库十分重要。并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。 SQL Server 提供了众多的Web和电子商务功能,如对XML和Internet标准的丰富支持,

数据库经典SQL语句大全

数据库经典SQL语句大全 篇一:经典SQL语句大全 下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk','testBack', 'c:mssql7backupMyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2? from tab_old definition only 5、说明: 删除新表: tabname 6、说明: 增加一个列:Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明: 添加主键:Alter table tabname add primary key(col) 说明: 删除主键:Alter table tabname drop primary key(col) 8、说明: 创建索引:create [unique] index idxname on tabname(col?.) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。

SQL数据库查询语句范例

推荐一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和Where子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。Select nickname,email FROM testtable Where n ame=’张三’ (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列例如,下面语句显示testtable表中所有列的数据:Select * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如:Select nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: Select 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 Select语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINC T选项时,对于所有重复的数据行在Select返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。例如: Select TOP 2 *FROM testtable Select TOP 20 PERCENT * FROM testtable (二) FROM子句 FROM子句指定Select语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和cityta ble表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: Select username,citytable.cityid FROM usertable,citytable Where usertable.cityid=citytable.cityid 在FROM子句中可用以下两种格式为表或视图指定别名: 表名 as 别名表名别名

数据库实验报告

数据库实验报告 集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)

课程名称:数据库原理与应用 实验内容:数据库安全性管理 作者所在系部:网络工程系 作者所在专业:网络工程 作者所在班级: B13521 作者姓名:李文阳 作者学号: 指导教师姓名:王振夺 北华航天工业学院教务处制 实验四数据库安全性管理 一、实验目的 1、理解数据库的安全性机制; 2、掌握SQL Server 2005的验证模式、登录管理、用户管理、角色 管理以及权限管理; 二、实验内容 (一)附加上次实验所创建的数据库“db_Library”,并回顾该库的数据表信息。 (二)设置SQL Server的安全验证模式,并以两种方式尝试登录。

(三)登录账户管理 1、以管理员身份登录SQL Server,修改sa的密码。 2、使用SQL语句创建一个SQL Server登录账户,账户名为你的名字拼音,密码自定义。创建完成后,以该账户来进行登录。 3、使用SQL语句来修改上述登录账户的密码。 4、禁用上述登录账户连接SQL Server,并进行验证。 (四)数据库用户管理 1、使用SQL语句添加db_Library数据库用户User2,其登录账户为上题所创建的SQL Server登录账户,使用默认dbo架构,并赋予该用户能够运行Select语句的权限。 (五)权限管理 1、使用SSMS将创建数据表和创建视图的权限授予User2。 2、使用SQL语句将对db_Library数据库中图书信息表的查询、插入、以及对书名和作者列的修改权限授予用户User2。 3、使用SSMS收回User2创建数据表和创建视图的权限。 4、使用SQL语句收回User2修改书名和作者列的权限。 (六)删除上述所建立的数据库用户以及登录账户。 三、实验步骤 主要实现的SQL语句。 使用T-SQL语句创建一个SQL Server登录账户,账户名为你的名字拼音,密码自定义。创建完成后,以该账户来进行登录。

数据库基本SQL语句大全

数据库基本SQL语句大全 数据库基本----SQL语句大全 一、基础 1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1、d at' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 typ e2 [not null],、、) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old definit ion only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的就是增加varchar类型的长度。 7、说明:添加主键: Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col…、) 删除索引:drop index idxname 注:索引就是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement

数据库sql查询语句上机练习1_习题_结果(单世民)

习题1 请根据给出的数据库表结构来回答相应问题: DEPT (DEPTNO INT, DNAME VARCHAR(14),LOC VARCHAR(13)); EMP (EMPNO INT,ENAME VARCHAR(10), JOB VARCHAR(9), MGR INT, HIREDATE DATE, SAL FLOAT, COMM FLOAT, DEPTNO INT); BONUS (ENAME VARCHAR(10), JOB VARCHAR(9), SAL INT, COMM INT); SALGRADE ( GRADE INT, LOSAL INT, HISAL INT); 其中表中包含如下数据: DEPT表: EMP表: SALGRADE表:

BONUS表: 无数据 根据上面描述完成下面问题: (注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原) DDL 1. 写出上述表的建表语句。此外,在DEPT上创 建名为”PK_DEPT”的主键约束,在EMP表上 创建名为”PK_EMP”的主键约束以及指向表 DEPT的外键约束”FK_DEPTNO”。 命令: Create table DEPT (DEPTNO INT NOT NULL,DNAME VARCHAR(14),LOC VARCHAR(13)); Alter table DEPT add constraint PK_DEPT PRIMARY KEY (DEPTNO); create table EMP(EMPNO INT NOT NULL,ENAME VARCHAR(10),JOB VARCHAR(9),MGR INT,HIREDATE DATE, SAL FLOAT,COMM FLOAT,DEPTNO INT); alter table EMP add constraint PK_EMP PRIMARY KEY (EMPNO); alter table EMP add constraint FK_DEPTNO foreign key(DEPTNO) references DEPT(DEPTNO);

数据库SQL语句实验报告

《数据库原理及应用》实验报告SQL语句部分 :绩成总

实验一熟悉SQL SERVER,数据定义实验 实验一成绩: 一、实验目的 1、利用查询分析器创建数据库 2、利用查询分析器用SQL语言定义基本表、索引并进行相关操作 二、实验步骤及内容 在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。 1.创建学生课程数据库 2.创建学生关系表S : 3.创建课程关系表C : 课程名学分先行课课程号Cno ccreditCname Cpno 4.创建课程关系表SC : 5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。 6、在表S上增加“出生日期”属性列。 7、删除表S的“年龄”属性列。 8、删除S姓名列的唯一值约束。 9、修改SC表成绩属性列为精确数字型。 10、在表S上,按“Sno”属性列的唯一值方式建立索引。 11、删除表SC,利用磁盘上保存的.SQL文件重新创建表SC。 12、创建教材P74页习题5中SPJ数据库中的四个关系:S、P、J、SPJ。 三、实验结果: 1.创建学生课程数据库 ; Studend create database2.创建学生关系表S : S create table(, 9Sno CHAR()PRIMARYKEY UNIQUE,)(Sname CHAR20CHAR Ssex (2), smallint Sage ,

char Sdept 20(), ); .创建课程关系表C 3: 课程号课程名先行课学分 ccredit Cpno CnoCname table C create (primary key,) Cno char(4Cname CHAR(40 ),char(), 4Cpno ,Ccredit SMALLINT); 4.创建课程关系表SC : 学号课程号成绩 grade Sno Cno createtable SC(9),Sno char(),char Cno (4, Grade smallint); 5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。 6、在表S上增加“出生日期”属性列。 ;datetimeadd Sbirthday alter table S 7、删除表S的“年龄”属性列。

数据库sql查询语句练习2_习题_结果(单世民)

现在有一教学管理系统,具体的关系模式如下:Student (no, name, sex, birthday, class) Teacher (no, name, sex, birthday, prof, depart) Course (cno, cname, tno) Score (no, cno, degree) 其中表中包含如下数据: Course表: Score表: Student表:

Teacher表: 根据上面描述完成下面问题: (注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原)DDL 1.写出上述表的建表语句。 2.给出相应的INSERT语句来完成题中给出数据的插入。 单表查询 3.以class降序输出student的所有记录(student表全部属性) 命令:select*from Student order by class desc;

4.列出教师所在的单位depart(不重复)。 命令:select distinct depart from Teacher; 5.列出student表中所有记录的name、sex和class列 命令:select name,sex,class from Student; 6.输出student中不姓王的同学的姓名。 命令:select name from Student except select name from Student where name like'王%';或

select name from Student where name not like'王%'; 7.输出成绩为85或86或88或在60-80之间的记录(no,cno,degree) 命令:select no,cno,DEGREE from Score where degree=85 or degree=86 or degree=88 or degree between 60 and 80; 8.输出班级为95001或性别为‘女’的同学(student表全部属性) 命令:select*from Student where class=95001 or sex='女';

相关文档
相关文档 最新文档