数据库sql语句(视图的创建)

这篇具有很好参考价值的文章主要介绍了数据库sql语句(视图的创建)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

例题: 

建表:要注意各表之间的索引联系,建表先后顺序很重要,不然建不了,例如先建dept,在建其他表,先在dept插入数据,再在其他表插入数据

(1)

数据库sql语句(视图的创建)

 create table week8student(SNO int primary key,
 SNAME char(8) not null unique,SEX char(2),
 DEPTNO int foreign key references week8dept(DEPTNO)) 

(2) 

数据库sql语句(视图的创建)

 create table week8course(CNO int,
 CNAME char(20) not null,TNO int,CREDIT int,
 primary key(CNO,TNO),
 foreign key (TNO) references week8teacher(TNO)) 

(3) 

数据库sql语句(视图的创建)

 create table week8sc(SNO int,CNO int,GRADE int,
 primary key(SNO,CNO),
 foreign key (SNO) references week8student(SNO))

(4)

数据库sql语句(视图的创建)

 create table week8teacher(TNO int primary key,
 TNAME char(8) not null, DEPTNO int
 foreign key references week8dept(DEPTNO)) 

(5) 

 数据库sql语句(视图的创建)

 create table week8dept(DEPTNO int primary key,
 DEPTNAME char(20) not null) 

插入数据如下图

数据库sql语句(视图的创建)

sql语句:

Student 表中加入属性 SAGE(INT )
alter table week8student add sage int
 将 Student 表中的属性 SAGE 类型改为 SMALLINT
alter table week8student alter column sage smallint

关于alter语句的总结

1:向表中添加字段

Alter table [表名] add [列名] 类型

2: 删除字段

Alter table [表名] drop column [列名]

3: 修改表中字段类型 (可以修改列的类型,是否为空)

Alter table [表名] alter column [列名] 类型

4:添加主键

Alter table [表名] add constraint [ 约束名] primary key( [列名])

5:添加唯一约束

Alter table [表名] add constraint [ 约束名] unique([列名])

6:添加表中某列的默认值

Alter table [表名] add constraint [约束名] default(默认值) for [列名]
7:添加约束

Alter table [表名] add constraint [约束名] check (内容)

8:添加外键约束

Alter table [表名] add constraint [约束名] foreign key(列名) referencese 另一表名(列名)

9:删除约束

Alter table [表名] drop constraint [约束名]

10:重命名表

exec sp_rename ‘[原表名]’,’[新表名]’

11:重命名列名

exec sp_rename ‘[表名].[列名]’,’[表名].[新列名]’

12:删除主键,以及主键上的索引

alter table table_name drop constraint clusteredName
————————————————

原文链接:https://blog.csdn.net/slb190623/article/details/117199931

Course 表上建立关于 CNO 降序 的唯一索引
create unique index cno_index on week8course(CNO desc)
查询数据结构这门课的平均成绩
 select avg(sc.GRADE)'数据结构的平均成绩' 
 from week8sc sc,week8course c
 where sc.CNO = c.CNO and c.CNAME='数据结构'
 group by sc.CNO

数据库sql语句(视图的创建)

为计算机系的学生记录建立一个视图CS_STUDENT(create view....as)

补充:

create table:建表

create index:建立索引

 create view CS_STUDENT as
 select s.SNO,s.SNAME,s.SEX,s.DEPTNO,d.DEPTNAME
 from week8student s,week8dept d
 where s.DEPTNO=d.DEPTNO and d.DEPTNAME='计算机'
利用视图,列出所有计算机学生的姓名,选课名和成绩
 select cs.SNAME 姓名,c.CNAME 课程名,sc.GRADE 成绩
 from CS_STUDENT cs,week8sc sc,week8course c
 where c.CNO=sc.CNO and cs.SNO = sc.SNO

数据库sql语句(视图的创建)

查询各个系的学生人数
 select count(s.DEPTNO)'人数',d.DEPTNAME'系名'
 from week8student s,week8dept d
 where s.DEPTNO=d.DEPTNO group by s.DEPTNO,d.DEPTNAME

数据库sql语句(视图的创建)

查询选修总学分在 10 学分以上的学生姓名
 select s.SNAME 选修总学分在10分以上
 from week8course c,week8sc sc,week8student s
 where c.CNO=sc.CNO and s.SNO=sc.SNO 
 group by s.SNAME 
 having sum(c.CREDIT)>10

数据库sql语句(视图的创建)

查询各门课程取得最高成绩的课程号、学生姓名及其成绩
 select m.CNO,s.SNAME,m.maxG
 from week8sc sc2,week8student s,
 (select sc1.CNO,max(sc1.GRADE)'maxG'
 from week8sc sc1 group by sc1.CNO)m
 where m.CNO=sc2.CNO and sc2.GRADE=m.maxG and sc2.SNO=s.SNO

其中构建了一个新表m,里面包含的元素有cno,maxG

数据库sql语句(视图的创建)

查询选修了学号为 1002 的学生选修的全部课程的学生学号
 select distinct SNO from week8sc sc1
 where not exists(
   select * from week8sc sc2
   where sc2.SNO='1002'
   and not exists(
     select * from week8sc sc3
     where sc3.SNO = sc1.SNO
     and sc3.CNO = sc2.CNO))

数据库sql语句(视图的创建)

查询选修了张星老师开设的全部课程的学生姓名(双重否定,没有哪一门课,张星老师开设了,学生x没有选)
select s.SNAME from week8student s
 where not exists (
   select * from week8course c
   where c.TNO in(
     select t.TNO from week8teacher t
     where t.TNAME='张星'
     and not exists(
       select * from week8sc sc
       where sc.SNO=s.SNO and sc.CNO=c.CNO))
 )

数据库sql语句(视图的创建)

查询选修张星老师数据结构课的学生的姓名和成绩
 select s.SNAME,sc1.GRADE from week8sc sc1,week8student s
 where sc1.CNO in 
 (select c.CNO from week8teacher t,week8course c
 where t.TNAME='张星' and t.TNO=c.TNO and c.CNAME='数据结构')
 and sc1.SNO = s.SNO

数据库sql语句(视图的创建)

将张星老师数据结构课的学生成绩全部加2
 update week8sc set GRADE = GRADE+2 where SNO in (
 select sc1.SNO from week8sc sc1,week8student s
 where sc1.CNO in 
 (select c.CNO from week8teacher t,week8course c
 where t.TNAME='张星' and t.TNO=c.TNO and c.CNAME='数据结构')
 and sc1.SNO = s.SNO)

两个条件:张星老师,数据结构

从内往外看

select c.CNO from week8teacher t,week8course c
 where t.TNAME='张星' and t.TNO=c.TNO and c.CNAME='数据结构'
 

检索课程名称为数据结构,老师为张星的课程号

select sc1.SNO from week8sc sc1,week8student s
 where sc1.CNO in 
 (select c.CNO from week8teacher t,week8course c
 where t.TNAME='张星' and t.TNO=c.TNO and c.CNAME='数据结构')
 and sc1.SNO = s.SNO

检索该课程号对应的学生学号,就是上这门课的学生学号

update week8sc set GRADE = GRADE+2 where SNO in (
 select sc1.SNO from week8sc sc1,week8student s
 where sc1.CNO in 
 (select c.CNO from week8teacher t,week8course c
 where t.TNAME='张星' and t.TNO=c.TNO and c.CNAME='数据结构')
 and sc1.SNO = s.SNO)

最后为这个学号执行grade+2操作

数据库sql语句(视图的创建)

再次查询选修张星老师数据结构课的学生的姓名和成绩文章来源地址https://www.toymoban.com/news/detail-442155.html

select s.SNAME,sc1.GRADE from week8sc sc1,week8student s where sc1.CNO in  (
select c.CNO 
from week8teacher t,week8course c 
where t.TNAME='张星' and t.TNO=c.TNO and c.CNAME='数据结构') 
and sc1.SNO = s.SNO
 删除马朝阳同学的所有选课记录(delete from)
 delete from week8sc where SNO in
 (select SNO 
 from week8student 
 where SNAME='马朝阳')

到了这里,关于数据库sql语句(视图的创建)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 利用SQL语句创建、修改、删除、查看与使用数据库

    【技术路线图】 1、连接Mysql服务:mysql -u root -p 2、创建数据库:create database teacherdb; 注意:数据库的名字一旦创建后不可更改。 3、查看刚刚创建好的数据库:show databses; 4、删除数据库并查看是否删除掉:drop database teacherdb; 5、输出创建数据库时的SQL语句信息:show create dat

    2023年04月21日
    浏览(75)
  • 使用SQL语句创建实验数据库(以学生表为例)

     (1) 创建数据库stuexpm create database stuexpm   (2) 创建studentinfo表,显示studentinfo表的基本结构 use stuexpm create table studentInfo ( StudentID varchar(6) not null primary key comment \\\'学号, Name varchar(8) not null comment\\\'姓名‘, Sex varchar(2) not null default \\\'男\\\' comment\\\'性别\\\', Birthday date not null comment\\\'出生日期

    2024年02月07日
    浏览(40)
  • python-Excel数据模型文档转为MySQL数据库建表语句(需要连接数据库)-工作小记

    将指定Excel文档转为create table 建表语句。该脚本适用于单一且简单的建表语句 呈现效果  代码   仅作为笔记记录,如有问题请各位大佬来指导 

    2024年02月14日
    浏览(36)
  • Linux系统下SQLite创建数据库, 建表, 插入数据保姆级教程

    1,创建数据库: sqlite test.db  我这边是sqlite2版本, 直接使用命令sqlite test.db创建一个名称为test的数据库; test是你自定义是数据库名 , 创建好数据库后, 接下来开始创建表格 2.创建表格, 就是常规的sql建表语句 CREATE TABLE  ids_logs ( english_details TEXT, chinese_details TEXT, event_definition TEXT

    2024年02月08日
    浏览(50)
  • 数据库期末复习(SQL,范式,数据库设计例题)

    创表 视图 例题:建立一个视图V1,显示老师与学生的授课关系,包括年份,学期,课程名称,老师ID,老师姓名,学生ID,学生姓名 向表中添加或删除约束 添加信息 例题:给“Aufr”同学选上2010年秋季学期的所有课程 删除信息 例题:删除“Comp. Sci.”学院“Ploski”同学,所有

    2024年02月02日
    浏览(48)
  • 数据库实验:SQL的数据视图

    视图是由数据库中的一个表或多个表导出的虚拟表,其作用是方便用户对数据的操作 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的

    2024年02月05日
    浏览(36)
  • SQL Server数据库 -- 索引与视图

    一、索引 聚集索引 非聚集索引 二、视图 三、自定义函数 标量函数 表值函数 四、游标 五、总结 在学习完创建库表、查询等知识点后,为了更加方便优化数据库的存储和内容,我们需要学习一系列的方法例如索引与视图等等,从而使我们更加熟练和使用数据库,突破表面,

    2024年02月14日
    浏览(33)
  • GaussDB云数据库SQL应用系列-视图管理

    一、前言 GaussDB是一款基于云计算技术的高性能关系型数据库,支持多种数据模型和分布式架构。在GaussDB中,视图管理是非常重要的一项功能,它可以帮助用户更方便地管理和查询数据。 数据库视图管理是指对数据库中的视图进行创建、修改、删除、查询等操作的过程。 参

    2024年02月06日
    浏览(30)
  • 数据库基础——数据库、数据表和SQL语句

    数据库是用来存储、管理数据的仓库 数据表是数据的存储结构 Structured Query Language,结构化查询语言,用来操作数据库 安装MySQL,自行百度 进入cmd使用命令 mysql -hAddress -uUser -p(Password) 登录数据库 -p后直接回车可进入密文登录 如果出现以下报错,则打开任务管理器-服务-开启

    2024年02月09日
    浏览(56)
  • MySQL数据库——MySQL创建视图(CREATE VIEW)

    创建视图是指在已经存在的 MySQL 数据库表上建立视图。视图可以建立在一张表中,也可以建立在多张表中。 可以使用 CREATE VIEW 语句来创建视图。 语法格式如下: 语法说明如下。 视图名 : 指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。 SEL

    2024年02月02日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包