资讯详情

头歌 数据库系统实验 答案 善用目录

头歌 实验数据库系统 答案 善用目录

其他作业链接

感谢您的分享和支持。如果您有答案提交,也可以点击以下链接联系作者。

点击联系作者

作者博客

选择题加粗是正确答案

头歌java实训答案集

头歌MySQL数据库培训答案 有目录

SQL Server 实验1.1:创建和使用数据库

第1关 走进SQL Server2012

没有参考代码

第2关 使用 create database 创建单句数据库

--********** 创建数据库student **********-- --********** Begin **********-- create database student   --********** End **********-- go 

第3关 创建包含自定义数据文件的数据库

--********** 创建数据库student **********-- --********** Begin **********--  create database student on  (name=studentdata1, filename='/home/studentdata1.mdf', maxsize=10MB ), (name=studentdata2, filename='/home/studentdata2.mdf', maxsize=10MB )  --********** End **********-- go  

第4关 在向数据库中添加数据文件和日志文件

--********** 创建数据库student **********-- --********** Begin **********--  create database student  --********** End **********-- Go  --********** 添加数据文件 **********-- --********** Begin **********--       alter database student     ??add file     ???(         name=studentdata1,     filename= '/home/studentdata1.ndf',     ???size=6MB,         maxsize=20MB,         filegrowth=1MB     ??)    --********** End **********-- Go  --********** 添加日志文件 **********-- --********** Begin **********--   alter database student     ??add log file     ???(     ???name=studentlog1,     filename= '/home/studentdata1.ldf',         maxsize=20MB,         filegrowth=1MB     ??)   --********** End **********-- Go  

第5关 向指定文件组添加数据文件

--********** 创建数据库student **********-- --********** Begin **********-- create database student  --********** End **********-- go --**********新建文件组**********-- --********** Begin **********--                      alter database student     ??add filegroup stufilegroup  --********** End **********-- go --**********向文件组中新增文件**********--
--********** Begin **********--

    
    alter database student
add file
        (
       name='studentdata',
    filename= '/home/studentdata.ndf'
      )
     to FILEGROUP stufilegroup
    

--********** End **********--
go

--**********设置默认文件组**********--
--********** Begin **********--

    
    alter database student

MODIFY FILEGROUP stufilegroup DEFAULT
 
    

--********** End **********--
go

第6关 删除数据库

--********** 创建数据库student **********--
--********** Begin **********--

create database student

--********** End **********--
go

--********** 删除数据库student **********--
--********** Begin **********--

drop database student


--********** End **********--
Go

SQL Server 实验1.2:创建和使用数据表

第1关 创建一个简单的数据表

--********** 创建数据库 **********--
--********** Begin **********--

create database teach

--********** End **********--
go

use teach
--********** 创建数据表 **********--
--********** Begin **********--


create table c
(     
	cno varchar(10),
    cname varchar(10),
	credit float default 2.0 
)

--********** End **********--
go

--********** 评测数据 **********--
--********** Begin **********--

use teach

exec sp_columns  c


--********** End **********--
go



第2关 向数据表中新增列

--********** 创建数据库 **********--
--********** Begin **********--

drop database teach
 create database teach

--********** End **********--
go

use teach
--********** 创建数据表 **********--
--********** Begin **********--

create table s
(
	sno varchar(50),
	sname varchar(50),
	age int,
	dept varchar(50)
)


--********** End **********--
go

use teach
--********** 增加新列 **********--
--********** Begin **********--

alter table s
add birthday date


--********** End **********--
go

--********** 测试数据 **********--
--********** Begin **********--

use teach

--显示列信息--
exec sp_columns  s


--********** End **********--
Go

第3关 修改数据表中的列定义

--********** 创建数据库 **********--
--********** Begin **********--

drop database teach
create database teach
create table s
(
  sno varchar(10),
  sname varchar(10),
  age int,
  dept varchar(10)
)

--********** End **********--
go

use teach
--********** 创建数据表 s **********--
create table s
(
  sno varchar(10),
  sname varchar(10),
  age int,
  dept varchar(10)
)
    
go

use teach
--********** 修改列定义 **********--
--********** Begin **********--

alter table s
alter column sname varchar(50)
alter table s
alter column age char(10)
    
 
--********** End **********--
go

--********** 测试数据 **********--
--********** Begin **********--

use teach

--显示列信息--
exec sp_columns  s


--********** End **********--
Go

第4关 删除数据表中的列

--********** 创建数据库**********--
--********** Begin **********--
drop database teach
create database teach
    

--********** End **********--
go

use teach
--********** 创建数据表 **********--
--********** Begin **********--

create table s
(
	sno varchar(10),
	sname varchar(10),
	age int,
	dept varchar(10)
)

    
    
    
    

--********** End **********--
go

use teach
--********** 删除列定义 **********--
--********** Begin **********--


    alter table s
drop column age
    

--********** End **********--
go

--********** 评测数据 **********--
--********** Begin **********--

use teach

exec sp_columns  s

--********** End **********--
go

SQL Server 实验1.3:创建和使用数据表中约束

第1关 创建带主键和唯一约束的数据表

--********** 创建数据库**********--
--********** Begin **********--
create database teach



--********** End **********--
go

use teach
--********** 创建数据表 s **********--
--********** Begin **********--
create table s
(
    sno char(6) CONSTRAINT sno_pk PRIMARY KEY,
    sname varchar(8) CONSTRAINT sn_uq UNIQUE,
    age int ,
    dept varchar(20)
)



--********** End **********--

--********** 创建数据表 sc **********--
--********** Begin **********--
create table sc
(
    sno char(6) NOT NULL,
    cno varchar(10) NOT NULL,
    grade int ,
    CONSTRAINT sno_cno_pk PRIMARY KEY(sno,cno)
)



--********** End **********--
go

--********** 评测数据 **********--
--********** Begin **********--

use teach

--主键约束--
select b.column_name 主键名
from information_schema.table_constraints a
inner join information_schema.constraint_column_usage b
on a.constraint_name = b.constraint_name
where a.constraint_type = 'PRIMARY KEY' and a.table_name = 's'
go

--主键约束--
select b.column_name 主键名
from information_schema.table_constraints a
inner join information_schema.constraint_column_usage b
on a.constraint_name = b.constraint_name
where a.constraint_type = 'PRIMARY KEY' and a.table_name = 'sc'
go

--唯一约束--
SELECT
  idx.name AS 唯一约束名,
  col.name AS 列名
FROM
  sys.indexes idx
    JOIN sys.index_columns idxCol 
      ON (idx.object_id = idxCol.object_id 
          AND idx.index_id = idxCol.index_id 
          AND idx.is_unique_constraint = 1)
    JOIN sys.tables tab
      ON (idx.object_id = tab.object_id)
    JOIN sys.columns col
      ON (idx.object_id = col.object_id
          AND idxCol.column_id = col.column_id)
where object_name(idx.object_id)='s'
go

--********** End **********--

第2关 创建带外键、检查约束的数据表

--********** 创建数据库 **********--
--********** Begin **********--
create database teach


--********** End **********--
go

use teach
--********** 创建数据表s **********--
--********** Begin **********--
CREATE TABLE s
(
    sno char(6) PRIMARY KEY,
    sname varchar(8) UNIQUE,
    age int NOT NULL,
    dept varchar(20) NOT NULL
)



--********** End **********--

    
--********** 创建数据表sc **********--
--********** Begin **********--
create table sc
(
    sno char(6) foreign key references s(sno),
    cno char(10) NOT NULL,
    grade int check (grade>=0 and grade<=100) NOT NULL,
    PRIMARY KEY(sno,cno)
)



--********** End **********--
go


--********** 测试数据 **********--
--********** Begin **********--

use teach

select
d.name as 外键列,
object_name(b.parent_object_id) as 外键表,
c.name as 主键列,
object_name(b.referenced_object_id) as 主健表
from sys.foreign_keys A
inner join sys.foreign_key_columns B on A.object_id=b.constraint_object_id
inner join sys.columns C on B.parent_object_id=C.object_id and B.parent_column_id=C.column_id 
inner join sys.columns D on B.referenced_object_id=d.object_id and B.referenced_column_id=D.column_id 
where object_name(B.referenced_object_id)='s'

SELECT
  col.name AS check列名,
  chk.definition
FROM
  sys.check_constraints chk
    JOIN sys.tables tab
      ON (chk.parent_object_id = tab.object_id)
    JOIN sys.columns col
      ON (chk.parent_object_id = col.object_id
          AND chk.parent_column_id = col.column_id)
where object_name(chk.parent_object_id)='sc'

--********** End **********--
Go



第3关 向数据表中新增完整性约束

--********** 创建数据库 **********--
--********** Begin **********--
create database teach


--********** End **********--
go

use teach
--********** 创建数据表 **********--
--********** Begin **********--
CREATE TABLE s
(
    sno varchar(50) PRIMARY KEY,
    sname varchar(50) ,
    age int ,
    dept varchar(50) ,
)



--********** End **********--
go

use teach
--********** 增加新约束 **********--
--********** Begin **********--
ALTER TABLE s
ADD check (age between 19 and 23)



--********** End **********--
go

--********** 测试数据 **********--
--********** Begin **********--

use teach

--显示列信息--
exec sp_columns  s

--check约束--
SELECT
  col.name AS check列名,
  chk.definition
FROM
  sys.check_constraints chk
    JOIN sys.tables tab
      ON (chk.parent_object_id = tab.object_id)
    JOIN sys.columns col
      ON (chk.parent_object_id = col.object_id
          AND chk.parent_column_id = col.column_id)
where object_name(chk.parent_object_id)='s'

--********** End **********--
Go



第4关 删除数据表中的完整性约束

--********** 创建数据库**********--
--********** Begin **********--
    DROP database teach
   create database teach

--********** End **********--
go

use teach
--********** 创建数据表 **********--
--********** Begin **********--
CREATE TABLE s
(
   sno varchar(10) CONSTRAINT sno_pk PRIMARY KEY, 
   sname varchar(10) ,
   age int ,
   dept varchar(10)
)

    
    

--********** End **********--
go

use teach
--********** 删除完整性约束 **********--
--********** Begin **********--
ALTER TABLE s
DROP CONSTRAINT sno_pk

    
    

--********** End **********--
go

--********** 评测数据 **********--
--********** Begin **********--

use teach

exec sp_columns  s

--主键约束--
select b.column_name 主键名
from information_schema.table_constraints a
inner join information_schema.constraint_column_usage b
on a.constraint_name = b.constraint_name
where a.constraint_type = 'PRIMARY KEY' and a.table_name = 's'
go


第5关 删除数据表

--********** 创建数据库**********--
--********** Begin **********--
DROP database teach
 create database teach


--********** End **********--
go

use teach
--********** 创建数据表 **********--
--********** Begin **********--
create table s
(
    sno char(6) primary key,
    sname varchar(8),
    age int,
    dept varchar(20) 
)

create table sc
(
    sno char(6) foreign key references s(sno),
    cno varchar(10),
    grade int,
    primary key(sno,cno)
)

--********** End **********--

--********** 删除数据表 **********--
--********** Begin **********--
DROP TABLE sc
DROP TABLE s



--********** End **********--
go

--********** 评测数据 **********--
--********** Begin **********--

use teach

--显示数据库中的所有表名--
SELECT * FROM INFORMATION_SCHEMA.TABLES

--********** End **********--
go

SQL Server 实验2.1 单表查询

第1关 查询单表中若干列


create database teach
go

use teach
create table s
(
  sno char(10) primary key,
  name varchar(20) unique,
  sex char(2) default 'm',
  age int check(age between 19 and 23),
  dept varchar(20) not null
)

insert into s
values('001','tom','m',20,'cs'),('002','jerry','m',19,'cs'),('003','amy','f',22,'is')
go

use teach
--********** 查询指定列 **********--
--********** Begin **********--
select name,dept
from s


--********** End **********--

--********** 查询所有列 **********--
--********** Begin **********
select *
from s


--********** End **********--

--********** 目标列名改为显示列名 **********--
--********** Begin **********
select name as 姓名
from s


--********** End **********--

--********** 取消重复行 **********--
--********** Begin **********
select distinct dept
from s


--********** End **********--
go

第2关 查询单表中若干行

drop database teach
create database teach
go

use teach
create table c
(
	cno char(10) primary key,
	cname varchar(50) not null,
	credit float default 2.0
)

insert into c
values('c01','database system',3.5),('c02','software system design',4),('c03','math',3)
go

use teach
--********** 1、比较大小 **********--
--********** Begin **********--
select cname 
from c
where credit >3




--********** End **********--

--********** 2、确定范围 **********--
--********** Begin **********--
select cno,credit
from c
where credit not between 2.0 and 3.0




--********** End **********--

--********** 3、确定集合 **********--
--********** Begin **********--
select *
from c
where cno in ('c01','c02')




--********** End **********--

--********** 4、字符匹配 **********--
--********** Begin **********--
select cname
from c
where cname like '%system%'


--********** End **********--
go

第3关 聚集函数

drop database teach
create database teach
go

use teach
create table sc
(
	sno char(10),
	cno char(10),
	grade int check(grade between 0 and 100),
	primary key(sno,cno)
)

insert into sc
values('001','c01',90),('001','c02',87),('002','c01',85),('002','c02',92),('003','c01',89)
go

use teach
--********** 1、最大值和最小值**********--
--********** Begin **********--
select max(grade) ,min(grade) 
from sc


--********** End **********--

--********** 2、总和**********--
select sum(grade) as 总分
from sc
where sno = '001'


--********** End **********--

--********** 3、统计元组个数**********--
select count(distinct sno) as 人数
from sc



--********** End **********--
go

第4关 分组和排序

drop database teach
create database teach
go

use teach
create table sc
(
	sno char(10),
	cno char(10),
	grade int check(grade between 0 and 100),
	primary key(sno,cno)
)

insert into sc
values('001','c01',90),('001','c02',87),('002','c01',85),('002','c02',80),('003','c01',89)
go

use teach
--********** 1、无分组结果筛选**********--
--********** Begin **********--
select cno,avg(grade) as 平均分
from sc
group by cno


--********** End **********--

--********** 2、有分组结果筛选+排序**********--
select cno,avg(grade) as 平均分
from sc
group by cno
having avg(grade) > 85
order by avg(grade) ASC



--********** End **********--
go

SQL Server 实验2.2 连接查询

第1关 等值连接

drop database teach
create database teach
go

use teach
create table s
(
  sno char(10) primary key,
  name varchar(20) unique,
  sex char(2) default 'm',
  age int check(age between 19 and 23),
  dept varchar(20) not null
)

create table sc
(
	sno char(10) foreign key references s(sno),
	cno char(10),
	grade int check(grade between 0 and 100),
	primary key(sno,cno)
)

insert into s
values('001','tom','m',20,'cs'),('002','jerry','m',19,'cs'),('003','amy','f',22,'is')

insert into sc
values('001','c01',90),('001','c02',87),('002','c01',85),('002','c02',92)
go

use teach
--********** 1、where 等值连接查询所有值**********--
--********** Begin **********--
select s.*,cno,grade
from s,sc
where s.sno=sc.sno


--********** End **********--

--********** 2、left join 等值连接查询所有值**********--

select s.*,cno,grade
from s left join sc
on s.sno=sc.sno



--********** End **********--

--********** 3、 加复合条件的 where 等值连接查询指定值**********--


select name,cno,grade
from s,sc
where s.sno=sc.sno and dept = 'cs'


--********** End **********--
go

第2关 多表连接

drop database teach
create database teach
go

use teach
create table s
(
  sno char(10) primary key,
  name varchar(20) unique,
  sex char(2) default 'm',
  age int check(age between 19 and 23),
  dept varchar(20) not null
)

create table c
(
	cno char(10) primary key,
	cname varchar(50) not null,
	credit float default 2.0
)

create table sc
(
	sno char(10) foreign key references s(sno),
	cno char(10) foreign key references c(cno),
	grade int check(grade between 0 and 100),
	primary key(sno,cno)
)

insert into s
values('001','tom','m',20,'cs'),( 

标签: amy限时继电器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台