sql数据库实验
❶ 设计1个sql小实验,帮忙给点思路
给你一个可以实践的例子,可以先在企业管理器环境下操作,如果想练习T——SQL语句就在查询分析器环境下做。
一、创建数据库
二、创建数据库包含的数据表:
在刚创建的数据库内建立名为“员工”的数据表文件,其数据列的结构如下
列名 数据类型 长度 是否空
员工编号 Char(定长字符型) 4个字节 主键
姓名 Varchar(可变长字符型) 20个字节 √
性别 Char (定长字符型) 2个字节 √
出生日期 Smalldatetime(短日期类型) √
工资 Smallmoney(小货币型)
在职否 Bit(逻辑类型) √ 默认值为1
三、向表中输入数据
请向数据表“员工”中送入2行数据,如下
员工编号 姓名 性别 出生日期 工资 在职否
1001 张三 男 1978年1月1日 5000 1
1002 李四 女 1980年12月11日 4500 0
1003 王五六 女 1988年09月30日 3500 1
注:有其它需要再提
❷ SQL Server 数据库设计 实验目的:熟悉SQL Server软件的使用;进一步熟悉T-SQL的基本语法;了解数据库设计
20分就想搞这个...晕死
❸ 有关 SQL2005 数据库实验题的问题
1.
select min(t.s_count) s_count, t.tname from (select count(sc.sno) as s_count, project.tname from sc, project where sc.cno = project.cno group by project.tname) t;
2.
select student.sname, project.pname, case when sc.grade>=90 then "优秀" when sc.grede<60 then "不及格" as grade_lvl from sc, student, project where sc.sno = student.sno and sc.cno = project.cno and sc.grade>=90 or sc.grade<60;
3.
首先查出课题,班级,分数;
再按课题,班级分组,成绩在60-70分的为count(1);成绩在70-80分的为count(1);成绩在80-90分的为count(1);就是想要的结果了,自己尝试一下。
❹ 求SQL的数据库实验报告..关于学生管理系统的..
SQL> create table stu (
2 stu_id number,
3 name varchar2(20),
4 class varchar2(20),
5 sex char(1)
6 );
表已创建。
SQL> alter table stu add constraint pk primary key (stu_id);
表已更改。
SQL> insert into stu values(1, '王昭君', '一班', 'f');
已创建 1 行。
SQL> insert into stu values(2, '杨玉环', '二班', 'f');
已创建 1 行。
SQL> insert into stu values(3, '貂蝉', '三班', 'f');
已创建 1 行。
SQL> insert into stu values(4, '西施', '四班', 'f');
已创建 1 行。
SQL> insert into stu values(5, '帅哥', '五班', 'm');
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from stu;
STU_ID NAME CLASS S
---------- -------------------- -------------------- -
1 王昭君 一班 f
2 杨玉环 二班 f
3 貂蝉 三班 f
4 西施 四班 f
5 帅哥 五班 m
SQL> delete from stu where stu_id = 5;
已删除 1 行。
SQL> update stu set sex = 'm' where stu_id = 1;
已更新 1 行。
SQL> select * from stu;
STU_ID NAME CLASS S
---------- -------------------- -------------------- -
1 王昭君 一班 m
2 杨玉环 二班 f
3 貂蝉 三班 f
4 西施 四班 f
SQL> alter table stu add column age number;
alter table stu add column age number
*
第 1 行出现错误:
ORA-00904: : 标识符无效
SQL> alter table stu add age number;
表已更改。
SQL> desc stu;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
STU_ID NOT NULL NUMBER
NAME VARCHAR2(20)
CLASS VARCHAR2(20)
SEX CHAR(1)
AGE NUMBER
SQL> update stu set age = 2000 where stu_id = 1;
已更新 1 行。
SQL> select a from (select age a from stu);
A
----------
2000
SQL> select count(*) from stu group by sex;
COUNT(*)
----------
1
3
SQL> select name from stu order by stu_id desc;
NAME
--------------------
西施
貂蝉
杨玉环
王昭君
SQL> spool off;
帮你写的
❺ 求sql详细数据库实验报告,步骤~~~答好加分~~~
引用
microsoft activeX Data objects 2.X library
microsoft activeX Data objects recordset 2.X
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "Driver=;server=(local);uid=sa;pwd=;database=账户管理"
conn.ConnectionTimeout = 30
conn.Open
rs.Open "select * from 账户信息", conn, adOpenStatic, adLockReadOnly, adCmdText
text1=rs.fields("列")'实现显示功能
...
要实现查询就在rs.open的时候把条件代入
下一个上一个用rs.movenext这种方式
添加新记录的代码
with rs
.addnew
.fields("列")=text1
...
.update
end with
删除:
rs.Delete adAffectCurrent
❻ SQL数据库 游标实验
我也是菜鸟,写了一个你瞧瞧。
select*fromaaax;
银行ys贷款金额jerq贷款日期贷款年限nxgs公司名称
工行 3 2017-5-8 15 塞德斯公司
建行 5 2018-6-9 12 塞德斯公司
中国银行 6 2016-6-8 5 塞德斯公司
中国银行 66 2016-6-8 77 dfgfdgh
建行 34 2016-6-8 55 dfgfdgh
declare
v_yhvarchar2(100);
v_jenumber;
v_rqvarchar2(100);
v_nxvarchar2(100);
v_gsvarchar2(100);
vv_gsvarchar2(100);
vv_sumnumber;
cursoremp_cursorisselect*fromaaa;
cursoremp_cursor2isselectgs,sum(je)fromaaagroupbygs;
begindbms_output.enable(500000);
openemp_cursor2;loopfetchemp_cursor2intovv_gs,vv_sum;exitwhenemp_cursor2%notfound;
DBMS_OUTPUT.PUT_LINE(vv_gs||'总贷款金额为'||vv_sum||'万元,具体情况为如下:');
openemp_cursor;
loop
fetchemp_cursorintov_yh,v_je,v_rq,v_nx,v_gs;
exitwhenemp_cursor%notfound;
ifvv_gs=v_gsthen
DBMS_OUTPUT.PUT_LINE(v_yh||','||v_rq);endif;
endloop;
closeemp_cursor;endloop;closeemp_cursor2;
end;
效果
❼ 数据库实验-sql存储过程
CREATE PROCEDURE P1
@XH VARCHAR(10) AS
IF @XH NOT IN(SELECT 学号 FROM 选课) INSERT 选课 VALUES(@XH,'1',0)
ELSE IF NOT EXISTS(SELECT * FROM 选课 WHERE 学号=@XH AND 成绩>=60)
DELETE FROM 选课 WHERE 学号=@XH
ELSE SELECT * FROM 选课 WHERE 学号=@XH
❽ 100分高分求sql语言的数据库实验报告...
以下是日期的查询
简单的例子
select
*
from
View_Change
where
Wname='AAAA'
select
*
from
View_Change
where
Updatetime>'2007-10-13'
下面是统计
select
Wno,Count(Wnum)
as
统计
from
View_Change
where
Updatetime>'2007-10-13'
group
by
Wno
如果改为复杂点点的统计的话
select
Wno,Count(Wnum)
as
统计
from
View_Change
where
Updatetime>='2008-01-01'
and
Updatetime<'2009-01-01'
and
Wno=1
and
Type='出库'
group
by
Wno
ftp://220.184.188.33/
里面的几个文档案就是创建的过程
我也好久没做过了
都忘记了
大部分都是企业管理器内做的
❾ 数据库实验要SQL语言编写的
-- Create table
create table Student
(
S_No varchar2(20),
S_Name varchar2(20) not null,
S_Sex varchar2(2) default '男',
S_Birthday date
)
;
-- Add comments to the table
comment on table Student
is '学生';
-- Create/Recreate primary, unique and foreign key constraints
alter table Student
add constraint Pri_S_No primary key (S_NO);
-- Create table
create table Course
(
C_No varchar2(20),
C_Name varchar2(40),
Grade number(4,1)
)
;
-- Add comments to the table
comment on table Course
is '课程';
-- Add comments to the columns
comment on column Course.Grade
is '分数';
-- Create/Recreate primary, unique and foreign key constraints
alter table Course
add constraint Pri_C_No primary key (C_NO);
-- Create table
create table T_Course
(
S_no varchar2(20),
C_no varchar2(20),
Grade number(4,1)
)
;
-- Add comments to the table
comment on table T_Course
is 'take the course选课信息';
-- Add comments to the columns
comment on column T_Course.Grade
is '成绩';
-- Create/Recreate primary, unique and foreign key constraints
alter table MEA.T_Course
add constraint For_S_No foreign key (S_NO)
references Student (S_No);
alter table MEA.T_Course
add constraint For_C_No foreign key (C_NO)
references Course (C_No);
3:
-- Add/modify columns
alter table Student add S_Tel varchar2(20);
-- Add comments to the columns
comment on column Student .S_Tel
is '电话';
4:
-- Add/modify columns
alter table Course modify C_Name CVARCHAR2(20);
5:
INSERT INTO Student (S_No, S_Name,S_Sex, S_Birthday ) VALUES ('A001','日月哥','女',to_date('20110515','yyyyMMdd'))
其他你自己来
6:
update Course set Grade =Grade +1
7:
-- Create/Recreate indexes
create unique index PK_oo on Student(S_Birthday order by desc);
8:
select s.S_No, avg(tc.Grade) from Student s,T_Course tc where s.S_No=tc.S_No group by s.S_No
9:
delete T_Course tc where tc.S_No='A000';
delete Student s where s.S_No='A000';
思考题自己来,我用的orcal,这都不给分的话,爆你菊花啦
❿ 求SQL数据库实验报告
*****系实验(上机)报告
课程名称 数据库系统基础
实验名称 数据查询与存储过程
学号 33
学生姓名 嘻习喜戏
成绩
年 月 日
序号 5 实验名称 SQL数据查询
实验目的:
熟练掌握SQL SELECT 语句,能够运用该语句完成各种查询。
实验内容:
用SQL SELECT 语句完成下列查询:
1. 查询客户表中的所有记录。
2. 从订购单表中查询客户号信息(哪些客户有订购单)。
3. 查询单价在20元以上(含)的产品信息。
4. 查询单价在20元以上(不含)的产品名称为牛奶的产品信息。
5. 查询单价在20元以上(不含)的产品名称为牛奶或德国奶酪的产品信息。
6. 查询有2003年7月订购单的客户名称、联系人、电话号码和订单号信息。
7. 查询有德国奶酪订货的客户的名称、联系人和电话号码信息。
8. 查询有德国奶酪订购需求的订单名细记录。
9. 查询所有订购数量(即订单名细中每个订购项目的数量)都在10个以上的订购单的信息。
10. 找出和德国奶酪同等价位的所有产品信息。
11. 查询单价范围在10元到30元范围内的产品信息(使用BETWEEN…AND)。
12. 从客户表中查询出客户名称中有“公司”二字的客户信息(使用LIKE运算符)。
13. 从客户表中查询出客户名称中没有“公司”二字的客户信息(使用NOT LIKE运算符)。
14. 按产品的单价升序列出全部产品信息。
15. 先按产品名称排序,再按单价排序列出全部产品信息。
16. 从产品表中查询共有几种产品。
17. 从订购名细表中查询德国奶酪的订购总数。
18. 计算德国奶酪所有订购的总金额。
19. 求所有订购单的平均金额,在查询结果中列出订购单的个数和平均金额。
20. 求每个订购单订购的项目数和总金额。
21. 求每个客户包含了德国奶酪订购的订单号及其最高金额和最低金额。
22. 求至少有两个订购项目的订购单的平均金额。
23. 找出尚未最后确定订购单(即订购日期为空值的记录)的有关客户信息(客户的名称、联系人和电话号码)和订单号。
24. 找出在2000年1月1日之后签订的订购单的客户信息(客户的名称、联系人和电话号码)、订单号和订购日期。
25. 列出每类产品(相同名称)具有最高单价的产品信息(产品号、名称、规格说明和单价,提示:使用内外层互相关嵌套查询)。
26. 确定哪些客户目前没有订购单(使用谓词NOT EXISTS)。
27. 查询目前有订购单的客户的信息(使用谓词EXISTS)。
28. 查询符合条件的产品信息,要求该产品的单价达到了任意一款产品名称为牛奶的单价的一半(使用ANY或SOME量词)。
29. 查询符合条件的产品信息,要求该产品的单价大于任何一款产品名称为牛奶的单价(使用ALL量词)。
30. 设计如下的连接操作,并分析各自的特点:
•广义笛卡儿积
•内连接
•外连接
•左连接
•右连接
•全连接
掌握存储过程的创建命令,按照题目要求创建存储过程,理解存储过程的作用。
(1) 建立存储过程。查询单价范围在x元到y元范围内的产品信息。
(2) 建立存储过程。查询在某年某月某日之后签订的订购单的客户信息(客户的名称、联系人和电话号码)、订单号和订购日期。
(3) 建立存储过程。将某产品的订购日期统一修改为一个指定日期。
(4) 建立存储过程。删除没有签订单的客户信息。
实验要求:
用SELECT语句完成本次实验,并提交上机报告。
(1) 掌握存储过程的创建命令,按照实验内容的要求创建存储过程,理解存储过程的作用。
(2) 用CREATE PROCEDURE和EXECUTE 语句完成本次实验,并提交上机报告。
实验准备(本实验预备知识和为完成本实验所做的准备):
仔细阅读课本第五章关于SQL的数据查询功能的内容
实验过程(实验的操作过程、遇到的问题及其解决办法或未能解决的问题):
用SQL SELECT 语句完成以上30题查询
实验总结(总结本次实验的收获、未解决的问题以及体会和建议等):
熟练掌握SQL SELECT 语句,能够运用该语句完成各种查询
附录(SQL语句):
--1. 查询客户表中的所有记录。
select * from 客户
--2. 从订购单表中查询客户号信息(哪些客户有订购单)
select 客户号from 订单where 订单号!=null
--3. 查询单价在元以上(含)的产品信息。
select *from 产品where 单价> 20 or 单价=20
--4. 查询单价在元以上(不含)的产品名称为牛奶的产品信息。
select *from 产品where 单价>20 and 产品名称='牛奶'
--. 查询单价在元以上(不含)的产品名称为牛奶或德国奶酪的产品信息
select *from 产品where 单价>20 and (产品名称='牛奶'or 产品名称='德国奶酪')
--6. 查询有年月订购单的客户名称、联系人、电话号码和订单号信息
select 客户名称,联系人, 电话,订单号from 客户,订单where (year(订购日期)=2003 and month (订购日期)=7)and (订单.客户号=客户.客户号)
--7. 查询有德国奶酪订货的客户的名称、联系人和电话号码信息。
select 客户名称,联系人, 电话from 客户
where
(客户号= (select 客户号from 订单where(订单号 =(select 订单号from 订单明细
where 产品号= ( select 产品号from 产品where 产品名称= ' 德国奶酪' )))))
--8. 查询有德国奶酪订购需求的订单名细记录。
select * from 订单明细where (数量!=null and 产品号=(select 产品号from 产品where 产品名称= '德国奶酪'))
--9. 查询所有订购数量(即订单名细中每个订购项目的数量)都在个以上的订购单的信息。
select * from 订单where (订单号in (select 订单号from 订单明细where (数量>10)))
--10. 找出和德国奶酪同等价位的所有产品信息。
select * from 产品where (
--11. 查询单价范围在元到元范围内的产品信息(使用BETWEEN…AND)。
select * from 产品where (单价between 10 and 30)
--12. 从客户表中查询出客户名称中有“公司”二字的客户信息(使用LIKE运算符)
select * from 客户where 客户名称like '%公司%'
--13. 从客户表中查询出客户名称中没有“公司”二字的客户信息(使用NOT LIKE运算符)。
select * from 客户where 客户名称not like '%公司%'
--14. 按产品的单价升序列出全部产品信息。
select *from 产品order by 单价
--15. 先按产品名称排序,再按单价排序列出全部产品信息。
select * from 产品order by 产品名称,单价
--16. 从产品表中查询共有几种产品。
select count ( distinct 产品名称) as 产品总数from 产品
--17. 从订购名细表中查询德国奶酪的订购总数
select sum (数量) as '订购奶酪数量'
from 订单明细
where 产品号in(select 产品号from 产品where 产品名称='德国奶酪')
--18. 计算德国奶酪所有订购的总金额
declare @a money
select @a=(select 单价from 产品where 产品名称='德国奶酪')
declare @b int
select @b=(select sum (数量) as '订购奶酪数量'
from 订单明细
where 产品号in(select 产品号from 产品where 产品名称='德国奶酪'))
declare @c int
select @c=@a*@b
select @c as 总金额
--19. 求所有订购单的平均金额,在查询结果中列出订购单的个数和平均金额。
select 订单均值= avg(单价*数量) ,订单个数=count ( 订单号)
from 订单明细,产品
where 产品.产品号=订单明细.产品号
--20. 求每个订购单订购的项目数和总金额。
select 订单号, count (产品.产品号) as 项目数,sum(数量*单价) as 总金额
from 产品,订单明细
where (产品.产品号=订单明细.产品号)
group by 订单号
--21.求每个客户包含了德国奶酪订购的订单号及其最高金额和最低金额
select 客户.客户号,产品.产品号,数量*单价as 总金额
from 客户,订单,订单明细,产品
where 客户.客户号=订单.客户号and 订单.订单号=订单明细.订单号and 订单明细.产品号=产品.产品号and
产品名称='德国奶酪'
order by 客户号
compute max(数量*单价),min (数量*单价) by 客户号
--22.求至少有两个订购项目的订购单的平均金额
select 订单号,avg(数量*单价),count(产品.产品号)
from 订单明细,产品
where 订单明细.产品号=产品.产品号
group by 订单号
having count(产品.产品号)>=2
--23.找出尚未最后确定订购单(即订购日期为空值的记录)的有关客户信息
-- (客户的名称、联系人和电话号码)和订单号
select 客户名称,联系人,电话,订单明细.订单号
from 客户, 订单明细,订单
where(客户.客户号= 订单.客户号) and 订购日期=null
--24.找出在年月日之后签订的订购单的客户信息
--(客户的名称、联系人和电话号码)、订单号和订购日期
select 客户名称,联系人,电话,订单号,订购日期
from 客户,订单
where 客户.客户号=订单.客户号
and year(订购日期)>1996 and month(订购日期)>4 and day(订购日期)>2
--25.列出每类产品(相同名称)具有最高单价的产品信息
--(产品号、名称、规格说明和单价,提示:使用内外层互相关嵌套查询)
select A.产品号, A.产品名称, A.规格说明, A.单价
from 产品A
where 单价= (SELECT MAX(单价)
FROM 产品B
WHERE A.规格说明= B.规格说明)
--26.确定哪些客户目前没有订购单(使用谓词NOT EXISTS)
select *
from 客户
where not exists (select* from 订单where 客户号=订单.客户号)
--27.查询目前有订购单的客户的信息(使用谓词EXISTS)
select *
from 客户
where exists (select* from 订单where 客户号=订单.客户号)
--28.查询符合条件的产品信息,要求该产品的单价达到了任
--意一款产品名称为牛奶的单价的一半(使用ANY或SOME量词)
select *
from 产品a
where(单价>any(select 单价/2 from 产品b where b.产品名称='牛奶'))
--29.查询符合条件的产品信息,要求该产品的单价大于任何
-- 一款产品名称为牛奶的单价(使用ALL量词)
select *
from 产品a
where(单价>all(select 单价from 产品b where b.产品名称='牛奶'))
--30.设计如下的连接操作,并分析各自的特点:
-- •广义笛卡儿积
SELECT *
FROM 客户CROSS JOIN 订购单
WHERE 客户.客户号= 订购单.客户号
-- •内连接
SELECT *
FROM 客户INNER JOIN 订购单
ON 客户.客户号= 订购单.客户号
-- •外连接
-- •左连接
SELECT *
FROM 客户LEFT JOIN 订购单
ON 客户.客户号= 订购单.客户号
-- •右连接
SELECT *
FROM 客户RIGHT JOIN 订购单
ON 客户.客户号= 订购单.客户号
-- •全连接
SELECT *
FROM 客户FULL JOIN 订购单
ON 客户.客户号= 订购单.客户号
说明:
1. 上机报告上传到211.68.36.251的数据库文件夹中的上传目录
2. 文件名的命名规则为:学号+姓名+实验+序号。如:9724101汪伟的第二次上机报告名为:9724101汪伟实验2
3. 封面由学生填写;
4. 正文的实验名称、实验目的、实验内容、实验要求已经由教师指定;
5. 实验准备由学生在实验或上机之前填写;
6. 实验过程由学生记录实验的过程,包括操作过程、遇到哪些问题以及如何解决等;
7. 实验总结由学生在实验后填写,总结本次实验的收获、未解决的问题以及体会和建议等;
8. 将相关的语句粘贴到附录中。
你自己改改吧。想要word原版的话再说一声。