1. 受注管理データベースがあり、倉庫テーブル、従業員テーブル、発注書フォーム、サプライヤーテーブルを以下のように含みます。 倉庫テーブル(倉庫番号、都市、エリア) 従業員表(倉庫番号、従業員番号、給与) 発注書フォーム(従業員番号、サプライヤー番号、発注番号、注文日) サプライヤーテーブル(サプライヤー番号、サプライヤー名、都市) 以下の操作(1問から12問まで各3点、13問4点、合計40点)を完了するためにSQL文を使用してください。 : 1. 従業員関係からすべての賃金値を取得し、結果に重複する価値を要求しない。 2. 給与1,230元以上の従業員番号と所在都市を検索します。 3. 面積が400を超える倉庫の従業員番号と、その従業員が働く都市を検索します。 4. 給与1250元以上の倉庫がある都市を調べる 5. 全従業員の賃金が1210元を超える倉庫の情報を検索する。 6. 倉庫番号で昇順に並べ替え、給与順に降順に並べ替え、すべての従業員情報を出力します。 7. 北京と上海の倉庫労働者の賃金総額を取得する。 8. WH2倉庫で働く従業員の最大給与額を求めること。 9. 従業員が少なくとも2名ある各倉庫の平均給与を取得すること。 10. 北京にないすべてのサプライヤー情報を取得。 11. 各従業員が扱った総金額が最も高い発注情報を記載します。 12. 従業員がいない倉庫の情報を検索すること。 13. 従業員の給与がwh1倉庫内の任意の従業員の給与以上である倉庫番号を検索する
2. 既存のリレーショナルデータベースは以下の通りです: データベース名:教師データベース 教師表(番号6)、名前、性別、民族、職種、ID番号) コーススケジュール(コース番号 char(6)、名称) 授業スケジュール(ID、教師番号、クラス番号、授業時間数) SQL言語で以下の関数を実装するSQL文コード(問題ごとに5点、合計40点): 1. 上記の3つのテーブルのデータベースおよびテーブル作成コードを作成する; 必須使用例:主キー(教師用テーブル)。 番号、カリキュラム。 コース番号)、異物キー(授業スケジュール。 先生の番号、授業のスケジュール。 クラス番号)、デフォルト(民族)、空でない(民族、名前)、ユニーク(ID番号)、チェック(性別、授業時間数)、自動番号(ID) 2. コーススケジュールのコードに以下のコース情報を追加する (1) コース番号 コース名 100001 SQL Server データベース 100002 データ構造 100003 VBプログラミング (2) コース番号100003のコース名を変更する:Visual Basic Programming (3) コース番号付きのコース情報を削除する100003 3. [クラススケジュールビュー]を作成するためのコードを書き出す(教師番号、名前、コース番号、コース名、授業時間); 4. 埋め込みテーブルの値関数とコードの検索を行い、[コース教師]を作成する; 検索:コース「SQL Server Database」の全教員名; 5. [授業時間数を数える]を書き出して作成:最大授業時間数、最小クラス時間数、平均授業時間の保存手順、実行コードを出力します。 6. 書き出して作成する:教師の代用教員の授業時間の合計を計算し、その値をストアドプロシージャおよび実行コードに返します。 実施:「郭先生」の総授業時間を計算します。 7. 90時間以上の授業を修了したすべての教員の情報を取得し、番号や名前も含めて取得します。 8. ルールを作成し、それを教師テーブルのタイトル欄に割り当て、値が(「教授」「准教授」「講師」「ティーチングアシスタント」)のいずれかであることを定めます。
3. 3つのテーブルからなる人材情報管理データベースがあります。 人材基本情報フォームRCDA(番号、氏名、性別、生年月日、給与状況) タレントプロフェッショナル専門表 ZYTC(人数、専攻、職業年数、専門職名、英語力) 才能達成実績表 CJDA(番号、実績名、実績カテゴリー、実績出典) 以下の操作を完了するにはSQL言語を使用してください(1問あたり4点、合計40点): 1. RCDAテーブル内のすべての情報を照会します。 2. 番号、名前、性別、生年月日、給与状況を照会し、数字のフィールド値に従って降順に並べます。 3. クエリ番号、氏名、性別、生年月日、給与状況、5,000元を超える給与状況の記録を検索し、給与ステータス欄の値に応じて昇順に並べます。 4. RCDA表のすべてのフィールドの情報を照会し、すべてのゲイ男性の記録を選択するよう依頼します。 5. RCDAフォームのすべての記録の名前と給与状況を確認する; 6. RCDA表にある全男性の名前、性別、給与状況を確認し、給与順に並べ替えること; 7. RCDAフォームで20歳から30歳の従業員の氏名と生年月日を確認する。 8. RCDA表で全員の賃金の合計を見つけ、列の見出しを「賃金の合計」に変更します。 9. RCDA表で男女労働者の賃金合計を確認する; 10. RCDA表の全所有者の平均給与を確認する;
- use master
- --删除数据库
- if exists (select * from sysdatabases where name='订货管理')
- DROP database 订货管理
- GO
- --创建数据库
- CREATE DATABASE 订货管理
- GO
- --切换数据库
- USE 订货管理
- Go
- --1/创建仓库表(仓库号,城市,面积)
- create table 仓库表
- (
- 仓库号 char(4) primary key,
- 城市 varchar(4) not null,
- 面积 int
- )
- go
- --2/创建供应商表(供应商号,供应商名,城市)
- create table 供应商表
- (
- 供应商号 char(2) primary key,
- 供应商名 char(2),
- 城市 varchar(10)
- )
- Go
- --3/创建职工表(仓库号,职工号,工资)
- create table 职工表
- (
- 仓库号 char(4) not null references 仓库表(仓库号),
- 职工号 char(2) primary key,
- 工资 int
- )
- Go
- --4/创建订购单表(职工号,供应商号,订购单号,订购日期)
- create table 订购单表
- (
- 职工号 char(2) not null references 职工表(职工号),
- 供应商号 char(2) references 供应商表(供应商号),
- 订购单号 char(2) primary key,
- 订购日期 datetime
- )
- Go
- --1、 从职工关系中检索所有工资值,要求结果中没有重复值。
- select 职工号,工资 from 职工表
- --2、 检索工资多于1230元的职工号和他们所在的城市。
- select 城市,职工号 from 仓库表
- inner join 职工表 on 仓库表.仓库号=职工表.仓库号
- where 工资>1230
- --3、 检索工作在面积大于400的仓库的职工号以及这些职工工作所在的城市。
- select 职工号,城市 from 职工表
- inner join 仓库表 on 职工表.仓库号=仓库表.仓库号
- where 面积>400
- --4、 检索出哪些城市至少有一个仓库的职工工资为1250元
- select 城市 from 仓库表 where 仓库号 in
- (select 仓库号 from 职工表 where 工资=1250)
- --5、 检索所有职工的工资都多于1210元的仓库的信息。
- select * from 仓库表 where 仓库号 in
- (select 仓库号 from 职工表
- except
- select 仓库号 from 职工表 where 工资<=1210)
- --6、 先按仓库号升序排序,再按工资降序排序并输出全部职工信息。
- select * from 职工表 order by 仓库号,工资
- --7、 求北京和上海的仓库职工的工资总和。
- select sum(工资) from 职工表 where 仓库号 in
- (select 仓库号 from 仓库表 where 城市='北京' or 城市='上海')
- --8、 求在wh2仓库工作的职工的最高工资值。
- select MAX(工资) from 职工表 where 仓库号='wh2'
- --9、 求至少有两个职工的每个仓库的平均工资。
- select 仓库号,AVG(工资) as 职工平均工资 from 职工表
- group by 仓库号
- having COUNT(职工号)>=2
- --10、 检索出不在北京的全部供应商信息。
- select * from 供应商表 where 城市<>'北京'
- --11、 列出每个职工经手的具有最高总金额的订购单信息。
- --12、 检索哪些仓库中还没有职工的仓库的信息。
- select * from 仓库表 where 仓库号 in
- (select 仓库号 from 仓库表
- Except
- select 仓库号 from 职工表)
- --13、 检索有职工的工资大于或等于wh1仓库中任何一名职工工资的仓库号
- select distinct 仓库号 from 职工表
- where 工资 >= (select min(工资) from 职工表 where 仓库号='wh1')
-
コードをコピーします
- --1、
- create database 教师数据库
- go
- use 教师数据库
- go
- create table 教师表
- (
- 编号 char(6) primary key,
- 姓名 nchar(4) not null,
- 性别 nchar(1) check([性别] in ('男', '女')),
- 民族 nchar(8) default '汉族' not null,
- 职称 nchar(12),
- 身份证号 char(18) unique )
- go
- create table 课程表
- (课号 char(6) primary key,
- 名称 char(40) not null
- )
- go
-
- create table 任课表
- (
- ID int IDENTITY(1, 1),
- 教师编号 char(6) references 教师表(编号),
- 课号 char(6) references 课程表(课号),
- 课时数 integer check([课时数] between 0 and 200)
- )
- go
- --2、
- insert 课程表 values('100001', 'SQL Server数据库')
- insert 课程表 values('100002', '数据结构')
- insert 课程表 values('100003', 'VB程序设计')
- update 课程表 set 名称='Visual Basic程序设计' where 课号='100003'
- delete 课程表 where 课号='100003'
- --3、
- create view [任课表视图] as
- select 教师编号,姓名,任课表.课号,名称,课时数 from 教师表
- inner join 任课表 on 教师表.编号=任课表.教师编号
- inner join 课程表 on 课程表.课号=任课表.课号
- --4、
- create function [某门课任课教师](@课程名 varchar(15))
- returns table as
- return (select 名称,课时数,教师姓名=姓名 from 任课表视图 where 名称=@课程名)
- go
- select * from [某门课任课教师]('SQL Server数据库')
- --5、
- create procedure [统计课时数]
- as
- select 最大课时数=max(课时数) ,最小课时数=min(课时数),平均课时数=avg(课时数)
- from 任课表
- go
- execute [统计课时数]
- --6、
- create procedure [统计课时]
- @教师名 nchar(16)
- as
- declare @总课时 int
- select @总课时=sum(课时数) from 任课表视图
- where 姓名=@教师名
- go
- execute [统计课时] '郭老师'
- --7、
- select 编号, 姓名 from 教师表
- where 编号 in (select distinct 教师编号 from 任课表 where 课时数>=90)
- 8、
- create rule zhicheng_rule
- as @zhicheng in ('教授','副教授','讲师', '助教')
- go
- sp_bindrule zhicheng_rule, '教师表.职称'
コードをコピーします
- use master
- --删除数据库
- if exists (select * from sysdatabases where name='人才信息管理')
- DROP database 人才信息管理
- GO
- --创建数据库
- CREATE DATABASE 人才信息管理
- GO
- --切换数据库
- USE 人才信息管理
- Go
- --人才基本情况表RCDA(编号,姓名,性别,出生日期,工资现状)
- create table RCDA
- (
- 编号 char(4) primary key,
- 姓名 varchar(10) not null,
- 性别 varchar(2) not null,
- 出生日期 datetime,
- 工资现状 int
- )
- go
- --人才专业特长表ZYTC(编号,专业,专业年限,职称,英语水平)
- create table ZYTC
- (
- 编号 char(4) primary key,
- 姓名 varchar(10) not null,
- 性别 varchar(2) not null,
- 出生日期 datetime,
- 工资现状 int
- )
- go
- --人才成就成果表CJDA(编号,成果名称,成果类别,成果出处)
- create table CJDA
- (
- 编号 char(4) primary key,
- 成果名称 varchar(10) not null,
- 成果类别 varchar(10) not null,
- 成果出处 varchar(10) not null
- )
- go
- --1.查询RCDA表中的所有信息;
- Select * from RCDA
- --2. 查询编号、姓名、性别、出生日期、工资现状,并按编号的字段值降序排列。
- Select 编号,姓名,性别,出生日期,工资现状 from RCDA
- order by 编号 desc
- --3.查询编号、姓名、性别、出生日期、工资现状,要求查询出工资现状超过5000,或少于3000元的记录,且查询结果按工资现状字段值升序排列。
- Select 编号,姓名,性别,出生日期,工资现状 from RCDA
- Where 工资现状>5000 or 工资现状<3000 order by 工资现状
- --4.查询RCDA表中所有字段的信息,要求选择所有男同志的记录。
- Select * from RCDA where 性别='男'
- --5.在RCDA表中查询所有记录的姓名和工资现状的情况;
- Select 姓名,工资现状 from RCDA
- --6.在RCDA表中查询所有男性的姓名、性别和工资现状的情况,并按工资现状降序排序;
- Select 姓名,性别,工资现状 from RCDA order by 工资现状 desc
- --7. 在RCDA表中查询年龄在20-30岁间的职工的姓名,出生日期;
- select 姓名,出生日期,datediff(yy,出生日期,getdate()) as 年龄 from RCDA
- where datediff(yy,出生日期,getdate()) between 20 and 30
- --8. 在RCDA表中求所有人的工资总和,并将列标题改为“工资总和”;
- Select sum(工资现状) as 工资总和 from RCDA
- --9. 在RCDA表中查询男职工和女职工的工资总和;
- Select 性别,sum(工资现状) as 工资总和 from RCDA group by 性别
- --10. 在RCDA表中查询所有人的平均工资;
- Select avg(工资现状) from RCDA
コードをコピーします
|