写出创建如下三张数据表的SQL语句

1.写出创建如下三张数据表的SQL语句 “教师表”表结构:
教师号:普通编码定长字符类型,长度为10,主键。
教师名:普通编码可变长字符类型,长度为20,非空。
所在部门:普通编码可变长字符类型,长度为30.
职称:普通编码定长字符类型,长度为6,取值为:“教授”、“副教授”、“其他”。

“课程”表结构:
课程号:普通编码定长字符类型,长度为20,主键。
课程名:普通编码可变长字符类型,长度为40,非空。
学时数:微整形。
开课学期:微整形

“授课”表结构:
教师号:普通编码定长字符类型,长度为10,引用教师表的外键。
课程号:普通编码定长字符类型,长度为20,引用课程表的外键。
授课时数:整形。
授课年份:整形。
主键:(教师号,课程号,授课年份)。

2.依据上题所创建的三张表,写出下列操作的SQL语言。
a、查询教授职称的教师姓名和所在部门
b、查询每学期开设的学时数大于40的课程门数
c、查询2012年全部课程的授课情况,列出课程名、学时数、教师名和授课时数。
d、删除没人讲授的课程。

3.依据第一题所创建的三张表,写出创建满足如下要求的视图的QL语句:查询2014授课年份全体授课教师的教师名、所授的课程名和授课时数。

在SSMS中,用【创建表】来设计,包括约束;然后保存,选中该新表,右键【编写表脚本】,SQL就有了
项目”表结构:项目号:普通编码定长字符类型,长度为10,主键。项目写出创建如下三张表的sQL语句。
按照要求用SQL语句创建表格:选课表:表名——SC属性:Sno字符型,最大7个字符表示学生学号。
Cno字符型,最大4个字符表示课程号。Grade整型表示成绩。约束:主码——Sno,Cno;Sno,Cno均为外码)
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-01-16
CREATE TABLE TEACHER
(
 TID CHAR(10) primary key,
 TNAME VARCHAR(20),
 TDEPT VARCHAR(30),
 TJNAME CHAR(6)
)
insert into TEACHER values('110','黄嘉欣','管理学系','教授')
insert into TEACHER values('111','刘而已','计算机系','教师')
insert into TEACHER values('112','王嘉骥','外语系','副教授')

CREATE TABLE COURSE1
(
  CNO CHAR(20) primary key,
  CNAME VARCHAR(40),
  CHOUR tinyint ,
  TERM tinyint 
)
insert into COURSE1 values('011','酒店管理',35,1)
insert into COURSE1 values('012','管理学基础',75,1)
insert into COURSE1 values('021','JAVA基础',80,2)
insert into COURSE1 values('022','安卓开发',70,2)
insert into COURSE1 values('031','英语作文书写',40,1)
insert into COURSE1 values('032','日语听力练习',70,1)

insert into COURSE1 values('033','日语写作',70,1)
insert into COURSE1 values('023','数据结构',20,1)

create table tcourse
(
TID CHAR(10) ,
CNO CHAR(20) ,
thour int,
tyear int --这个题有些矛盾,如果这里设为了主键,下面插入数据就没法插入重复的,c.3.就没有意义
)
ALTER TABLE tcourse ADD CONSTRAINT TID_cons FOREIGN KEY (TID) REFERENCES teacher;
ALTER TABLE tcourse ADD CONSTRAINT CNO_cons FOREIGN KEY (CNO) REFERENCES course1;

insert into tcourse values('110','011',35,2014)
insert into tcourse values('110','012',75,2012)
insert into tcourse values('111','021',80,2015)
insert into tcourse values('111','022',70,2013)
insert into tcourse values('112','031',40,2014)
insert into tcourse values('112','032',70,2014)
--a.
SELECT TNAME,TDEPT FROM TEACHER WHERE TJNAME='教授'
--b.
SELECT COUNT(CNO) FROM COURSE1 WHERE CHOUR>40
--C.
select CNAME,CHOUR,TNAME,thour FROM COURSE1 C1,TEACHER TR ,tcourse TE 
WHERE C1.CNO=TE.CNO AND TR.TID = TE.TID AND TE.tyear=2012
--D.
DELETE COURSE1 WHERE CNO NOT IN(SELECT CNO FROM tcourse)
--3.
CREATE VIEW QL
as
SELECT TNAME,CNAME,thour  FROM COURSE1 C1,TEACHER TR ,tcourse TE 
WHERE C1.CNO=TE.CNO AND TR.TID = TE.TID AND TE.tyear=2014

SELECT * FROM QL

我用的数据库是SQL2008 R2,已测试。

本回答被网友采纳
第2个回答  2020-07-02

SQL Server数据库基本操作之如何创建表(SQL语句创建)

写出创建如下三张数据表的SQL语句。
在SSMS中,用【创建表】来设计,包括约束;然后保存,选中该新表,右键【编写表脚本】,SQL就有了项目”表结构:项目号:普通编码定长字符类型,长度为10,主键。项目写出创建如下三张表的sQL语句。按照要求用SQL语句创建表格:选课表:表名——SC属性:Sno字符型,最大7个字符表示学生学号。Cno字符型,最...

写出创建如下三张数据表的SQL语句
在SSMS中,用【创建表】来设计,包括约束;然后保存,选中该新表,右键【编写表脚本】,SQL就有了项目”表结构:项目号:普通编码定长字符类型,长度为10,主键。项目写出创建如下三张表的sQL语句。按照要求用SQL语句创建表格:选课表:表名——SC属性:Sno字符型,最大7个字符表示学生学号。Cno字符型,最...

用SQL语句创建这三张表
SC表:create table sc (sno bigint,cno bigint,grade int )注意:sc表你两个字段同名,这是数据库不允许的(C表的主键字段我已经帮你设置为CNO)。如果想增加主键以及关系 将创建表中的代码 cno bigint , 替换成 cno bigint primary key,sno bigint , 替换成 sno bigint pri...

假设教学库有如下3个数据表,根据要求写出相应的SQL语句。
create table 学生表(学号 char(6),姓名 char(8),团员否 char(2),出生日期 datetime,primary key(学号));create table 成绩表(学号 char(6),课程号 char(8),成绩 char(3) , primary key(学号,课程号));create table 课程表(课程号 char(8),课程名 char(8),课时...

求三表联合查询的SQL查询语句
1、DBMS(DataBaseManagementSystem,数据库管理系统)和数据库。平时谈到“数据库”可能有两种含义:MSSQLServer、Oracle等某种DBMS;存放一堆数据表的一个分类(Catalog)2、数据库的构成-管理软件\/服务\/数据文件(表,视图...)3、不同品牌的DBMS有自己的不同的特点:MYSQL、MSSQLServer、DB2、Oracle、Access...

求三表联合查询的SQL查询语句
1、SQL语句:select u.*,r.*,r.id rid from user u left join sys_user_role sur on u.id = sur.useridleft join sys_role r on sur.roleid = r.id 图片:(表名截图)请点击输入图片描述 请点击输入图片描 注1:user(用户表),sys_role(角色表),sys_user_role(关系表)...

执行以下SQL语句创建Students, courses, enrollment三个表,并插入测试...
--1 select sno, sname from student where sname like 'S%'--2 select sno, cno from sc where grade is null --3 select sno, cno from sc where grade is not null --4 select sno, sname from student where sdept = 'computer'and sage > 18 ...

求用SQL语句建立三个表(满意有加分)
这句话就是建立了一个约束,表中的user_id一定要是user表中的id,不然的话要插入数据是插不进去的。其中varchar就是一个数据类型 默认值就是再插入的此值为null是默认给的值:用法如下:email varchar(50) default aa@mail.bnu.edu.cn 最后的一个表你自己试着自己写,不会的话,我在写给你,...

SQL数据库的表。怎么同时连接3个表查询。
可以参考下面的方法:1、select * from 表1,表2,表3 where 表1.字段=表2.字段 and 表1.字段=表3.字段 2、select * from 表1 join 表2 on 表1.字段=表2.字段 and join 表3 on 表1.字段=表3.字段 如果没有AND,前面就需要加括号了。

我需要写一个oracle数据库的SQL,操作三张表,第一张表是城市,第二张表...
select 城市id,城市名称,sum(日数据),sum(月数据),sum(年数据) from 城市表 a,企业表 b where a.id=b.cityID group 日数据,月数据,年数据

相似回答