精华内容
下载资源
问答
  • 数据库上机实验
    2021-10-27 13:53:50

    使用源码查询1中的user表完成如下操作:

    首先建立user表,sql语言为:

    CREATE TABLE user(
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,name VARCHAR(20) NOT NULL UNIQUE COMMENT '编号',
    age TINYINT UNSIGNED NOT NULL DEFAULT 18  COMMENT '年龄',
    sex ENUM('男','女','保密') NOT NULL DEFAULT '保密' COMMENT '性别',
    addr VARCHAR(20) NOT NULL DEFAULT '北京',
    married TINYINT(1) NOT NULL DEFAULT 0 COMMENT '0代表未结婚,1代表已婚',
    salary FLOAT(8,2) NOT NULL DEFAULT 0 COMMENT '薪水'
    )ENGINE=INNODB CHARSET=UTF8;
    INSERT user VALUES(1,'king',23,'男','北京',1,50000);
    INSERT user(username,age,sex,addr,married,salary) VALUES('queen',27,'女','上海',0,25000);
    INSERT user SET username='imooc',age=31,sex='女',addr='北京',salary=40000;
    INSERT user VALUES(NULL,'张三',38,'男','上海',0,15000),
    (NULL,'张三风',38,'男','上海',0,15000),
    (NULL,'张子轩',39,'女','北京',1,85000),
    (NULL,'汪杨',42,'男','深圳',1,95000),
    (NULL,'刘德凯',58,'男','广州',0,115000),
    (NULL,'吴峰',28,'男','北京',0,75000),
    (NULL,'浦丽',18,'女','北京',1,65000),
    (NULL,'刘小明',36,'女','广州',0,15000);

    建完表后就可以创建视图啦~

    1.创建视图user_view,显示user表的name,age,salary并将字段名显示为user_name、user_age,user_salary.

    CREATE VIEW user_view(user_name,user_age,user_salary) AS
    SELECT name,age,salary from user
    with local check option;
    

    2.查看视图的详细结构

    SHOW CREATE VIEW user_view;

    3.更新视图,插入三条记录:

    李四,28,23000

    王武,30,35000

    严淼,34,5600

    INSERT into user_view(user_name,user_age,user_salary) 
    VALUES
    ('李四',28,'23000'),
    ('王武',30,'35000'),
    ('严淼',34,'5600');

    4.修改视图,使视图中的显示年龄大于30岁的用户信息。

    CREATE OR REPLACE VIEW
    user_view(user_name,user_age,user_salary) AS
    SELECT name,age,salary from user
    WHERE age>=30
    with local check option;

    5.删除视图

    DROP VIEW user_view;

    更多相关内容
  • 数据库上机实验数据库上机实验
  • 数据库上机实验报告(一) 及实验结果展示 及拓展题目
  • 数据库上机实验

    2018-01-06 13:34:33
    数据库上机实验03: 【实验内容】 使用以下语句在服务器上创建数据库STUxxxx(其中xxxx为自己的学号)。 Create database STUxxxx 在STUxxxx数据库中使用SQL语句创建如下的表结构: 1.学生情况表(XS)结构 2...
  • 数据库上机实验作业报告
  • 北京科技大学SQL数据库上机实验报告,含实验程序,运行结果,实验步骤等
  • 一个数据库上机实验包……内含实验指导书,一份带题目答案运行结果截图的报告,4个sql可导入文件,供参考
  • sql server数据库上机实验报告
  • sql 数据库上机实验

    2013-04-30 21:11:25
    这是一个关于数据库系统原理 sql 简单的数据库操作语言,主要是一些关于创建表,删除表,创建以及删除约束、自然连接,字符匹配,数据更新与删除等,主要是用于学生们数据库上机实验的常用题目,希望可以帮到你哦,...
  • 数据库上机实验心得(一) 数据库集中上机报告 学 生 马志鹏 学 号 0221090118 班 级 02210901 专 业计算机应用技术 重庆邮电大学移通学院 2011年6月 第一天Access数据库基本操作 1 实验目的 1熟悉的掌握Access数据库...
  • 数据库上机实验一、二

    千次阅读 多人点赞 2022-03-16 20:44:11
    数据库原理及应用 ——基于Sql Server2012》李春葆 著的上机实验一、二,主要内容是创建数据库与通过select语句进行相应的查询,希望三连支持!

    学习完了数据库的基本语法,上机实验也要开始了,在我上一篇关于sql server排序规则排查错误博客中,学习到了很多,具体可以点击此处
    下面开始上机实验,因为数据库的实验大多是查询语法,故这里将每一行代码写出,顺便对几个新颖的关键词做一些解释。
    对于数据库与表的创建见文章末尾,这里就不再多谈,下面就直接开始我们的22个查询语句吧
    使用的教材是《数据库原理与技术——基于sql server2012》李春葆 著。
    如果遇到排序规则冲突的情况(一般在SSMS上不会发生),请在条件输入:COLLATE Chinese_PRC_CI_AS
    完成不易,你的三连就是我创作的最大动力!
    有好的方法欢迎交流,以下思路方法均为个人思路,不一定是最优解!
    22个查询语句:

    1.查询图书品种的总数目

    -- T1
    select count(distinct 图书名) as'图书总数' from book2128
    

    2.查询每种图书品种的数目

    -- T2
    select  图书名,count(*) as'图书数目'
    from book2128
    group by 图书名
    

    3.查询各班的人数

    select d.班号 ,count(s.学号)as'人数'
    from depart2128 d,student2128 s
    where d.班号=s.班号
    group by  d.班号
    

    4.查询各系的人数

    select  d.系名,count(s.学号) as'人数'
    from depart2128 d,student2128 s
    where d.班号=s.班号
    group by d.系名
    

    5.查询借阅图书学生的学号、姓名、书名和借书日期

    select s.学号,s.姓名,bo.图书名,b.借书日期
    from borrow2128 b,student2128 s,book2128 bo
    where b.学号=s.学号 and bo.图书编号=b.图书编号
    
    

    6.查询借有图书的学生的学号和姓名

    select  distinct s.学号,s.姓名
    from borrow2128 b,student2128 s
    where b.学号=s.学号
    

    7.查询每个学生的借书数目

    select distinct s.姓名,count(b.图书编号) as'借阅图书数目'
    from student2128 s,borrow2128 b
    where s.学号=b.学号
    group by s.姓名
    

    8.找出借书超过两本的学生的学号、姓名和所借图书册数

    select s.学号,s.姓名,count(b.图书编号)as'所借数目'
    from student2128 s,borrow2128 b
    where  b.学号=s.学号
    group by  s.学号, s.姓名
    having  count(b.图书编号)>2
    

    9.查询借阅了‘操作系统’一书的学生,输出学号姓名及班号

    select s.学号,s.姓名,s.班号
    from(
        select  bo.图书名,bo.图书编号,b.学号
        from book2128 bo
        join borrow2128 b on (
            b.图书编号=bo.图书编号 and 图书名='操作系统'
            )
            )a
    join student2128 s
    on(
        s.学号=a.学号
        )
    

    10.查询每个班的借书总数

    select distinct  s.班号,count(b.图书编号)as '借书总数'
    from student2128 s, borrow2128 b
    where s.学号=b.学号
    group by s.班号
    

    11.若图书编号以前3位数字进行分类,查询每类图书的平均价

    select  distinct  left(bo.图书编号,3)as'图书编号',avg(bo.定价) as'平均价'
    from book2128 bo
    group by left(bo.图书编号,3)
    

    12.查询平均价高于30的图书类别

    select  distinct  left(bo.图书编号,3)as'图书编号',avg(bo.定价) as'平均价'
    from book2128 bo
    group by left(bo.图书编号,3)
    having  avg(b.定价)>30
    

    13.查询图书类别的平均价,最高价

    select  distinct  left(b.图书编号,3)as'图书编号类别',avg(b.定价)as'平均价',max(b.定价)as'最高价'
    from book2128 b
    group by left(b.图书编号,3)
    

    14.假设借书期限为45天,查询过期未还图书的编号,书名,学生学号和姓名
    本题有点小迷,因为没有说什么会过期啊(暂留疑问,后续补上)只要把日期2022-3-17改成相应的还书日期即可

    select s.学号,s.姓名,bo.图书编号,bo.图书名
    from student2128 s,borrow2128 b,book2128 bo
    where s.学号=b.学号 and bo.图书编号=b.图书编号 and datediff(day,b.借书日期,'2022-3-17')>45
    

    15.查询书名包括“工程”关键词的图书,输出书号、书名、作者

    select bo.图书编号,bo.图书名,bo.作者
    from book2128 bo
    where bo.图书名 like '%工程%'
    
    

    16.查询现有图书中价格最高的图书,输书名以及作者

    select 图书名,作者
    from book2128
    where 定价=(select  max(定价) from  book2128)
    
    

    17.查询所有借阅“C语言程序设计”一书的学生的学号和姓名,再查询所有 借阅了“C语言程序设计”但没有借“C习题解答”的学生的学号和姓名
    (中途使用go)

    select  s.学号,s.姓名
    from student2128 s,borrow2128 b,book2128 bo
    where s.学号=b.学号 and b.图书编号=bo.图书编号 and bo.图书名='C程序设计'
    
    go
    
    select  s.学号 , s.姓名
    from student2128 s,borrow2128 b,book2128 bo
    where s.学号=b.学号 and b.图书编号=bo.图书编号 and bo.图书名='C程序设计' and not exists(
        select * from  book2128 bo1,borrow2128 b1
        where bo1.图书编号=b1.图书编号 and bo.图书名='C习题解答' and b1.学号=b.学号
        )
    

    18.查询所有没有借书的学生的学号和姓名

    select  学号,姓名
    from student2128
    where  学号 not in(
        select  distinct  学号 from borrow2128
        )
    

    19.查询每个系所借图书的总数

    select  d.系名,count(b.学号) as'所借图书的总数'
    from depart2128 d,student2128 s,borrow2128 b
    where  d.班号=s.班号 and s.学号=b.学号
    group by  d.系名
    
    

    20.查询各出版社的图书总数

    select  b.出版社,count(b.图书编号)
    from book2128 b
    group by  b.出版社
    
    

    21.查询各出版社的图书占图书总数的百分比(四舍五入到一位小数)

    select 出版社,cast(round(count(图书编号)*100.0/(select count(*) from book2128),1) as  numeric(5,1)) as 百分比
    from
    book2128  b
    group by 出版社
    

    22.查询各出版社的图书被借的数目

    select  bo.出版社,count(*)as'借书数目'
    from book2128 bo,borrow2128 b
    where b.图书编号=bo.图书编号
    group by bo.出版社
    

    以上是全部题目了,下面附创建数据库与表,并且插入数据的代码:

    create  database  Library2128
    use Library2128
    -- 排序方法
    ALTER DATABASE Library2128 COLLATE Chinese_PRC_CI_AS
    
    -- Create Table
    create  table depart2128(
        班号 nvarchar(10) not null  primary key ,
        系名 nvarchar(10) not null
    )
    
    create  table student2128(
        学号 nvarchar(10) not null primary key ,
        姓名 nvarchar(10) not null ,
        性别 nvarchar(10) not null,
        出生日期 datetime not null,
        班号 nvarchar(10) not null
    )
    
    create  table book2128(
        图书编号 nvarchar(10) not null  primary key ,
        图书名 nvarchar(10)  not null,
        作者 nvarchar(10) not null,
        定价 float  not null,
        出版社 nvarchar(10) not null
    )
    
    
    create  table  borrow2128(
        学号 nvarchar(10) not null,
        图书编号 nvarchar(10) not null  primary key (学号,图书编号),
        借书日期 datetime
    )
    
    -- Insert values 
    insert into book2128(图书编号,图书名,作者,定价,出版社)
    values
    (	'10011'	,	'C语言设计 '	,	'李洪      '	,	24,	'清华大学出版社 '	)	,
    (	'10012'	,	'C语言设计 '	,	'李洪      '	,	24	,'清华大学出版社 '	)	,
    (	'10013'	,	'C习题解答 '	,	'李洪      '	,	12	,'清华大学出版社 '	)	,
    (	'10014'	,	'C习题解答 '	,	'李洪      '	,	12	,'清华大学出版社 '	)	,
    (	'10020'	,	'数据结构  '	,	'徐华      '	,	29	,'人民邮电出版社 '	)	,
    (	'10021'	,	'数据结构  '	,	'徐华      '	,	29,	'清华大学出版社 '	)	,
    (	'10023'	,	'高等数学  '	,	'王涛      '	,	30	,'高等教育出版社 '	)	,
    (	'10034'	,	'软件工程  '	,	'张明      '	,	34	,'机械工业出版社 '	)	,
    (	'20025'	,	'信息学    '	,	'张港      '	,	35	,'清华大学出版社 '	)	,
    (	'20026'	,	'信息学    '	,	'张港      '	,	35	,'清华大学出版社 '	)	,
    (	'20042'	,	'电工学    '	,	'王明      '	,	30	,'人民邮电出版社 '	)	,
    (	'20056'	,	'操作系统  '	,	'曾平      '	,	26,	'清华大学出版社 '	)	,
    (	'20057'	,	'操作系统  '	,	'曾平      '	,	26	,'清华大学出版社 '	)	,
    (	'20058'	,	'操作系统  '	,	'曾平      '	,	26	,'清华大学出版社 '	)	,
    (	'20067'	,	'数字电路  '	,	'徐汉      '	,	32	,'高等教育出版社 '	)	,
    (	'20140'	,	'数据库原理'	,	'陈曼      '	,	32	,'高等教育出版社 '	)	,
    (	'20090'	,	'网络工程  '	,	'黄军      '	,	38	,'高等教育出版社'	)	;
    insert into depart2128 values (
            '0501',	'计算机系  '
     )
    
    insert into depart2128 values (
              '0502','计算机系'
                                  )
    
    insert  into depart2128 values (
             '0801' ,'电子工程系'
                                   )
    
    insert  into depart2128 values (
             '0802','电子工程系'
                                   )
    insert  into student2128 (学号, 姓名, 性别, 出生日期, 班号)
    values
    ('1',	'张任',      	'男',   	'1995-01-02'	,'0501'),
    ('2',	'程华',      	'男',   	'1996-01-10',	'0501'),
    ('3',	'张丽',      	'女',   	'1995-06-07',	'502'),
    ('4'	,'王英' ,     	'女' ,  	'1994-12-10'	,'0502'),
    ('5',	'李静',      	'女' ,  	'1995-04-05'	,'0502'),
    ('10',	'许兵'   ,   	'男',   	'1995-08-10',	'0801'),
    ('11',	'张功',      	'男',   	'1995-06-02',	'0801'),
    ('12',	'李华',      	'男',   	'1994-10-03',	'0801'),
    ('13',	'马超'  ,       '男' , 	'1996-02-03'	,'0802'),
    ('14',	'曾英',      	'女'   ,	'1994-03-06'	,'0802');
    
    insert  into borrow2128 (学号, 图书编号, 借书日期)
    values
    ('1',	'10020',	'2013-12-05'),
    ('2',	'20025',	'2013-11-08'),
    ('1',	'20059',	'2014-04-11'),
    ('2',	'10011',	'2013-10-02'),
    ('2',	'10013',	'2014-04-03'),
    ('3',	'10034'	,'2014-04-10'),
    ('3',	'20058'	,'2014-04-13'),
    ('4',	'10012',	'2014-04-06'),
    ('5',	'10023',	'2014-02-03'),
    ('12',	'20067',	'2014-03-06')
    
    展开全文
  • 2. 掌握使用SQL 语句创建和删除数据库 2. 将新创建的数据库设置为当前数据库 2. 会保存密码历史记录 3. 将启用帐户锁定时间, 帐户锁定阈值和 在此后
  • 数据库上机实验报告
  • 数据库上机实验.pdf

    2021-10-11 00:59:29
    数据库上机实验.pdf
  • 数据库上机实验.docx

    2021-10-03 15:30:19
    数据库上机实验.docx
  • 北科大数据库上机实验报告
  • 合工大数据库上机实验
  • 数据库上机实验报告.doc
  • access数据库上机实验指导书VBA实验报告.pdf
  • 第 PAGE 页码 页码页 / 总共 NUMPAGES 总页数 总页数页 数据库上机实验报告 数据库上机实验报告 试验内容 1 数据表的建立 基本表简单的带有主键 带有外码约束的外码来自其他表或者本表 2 数据表的修改 添加删除列 ...
  • 合工大数据库上机实验2.docx
  • 数据库上机实验报告.pdf
  • 大数据合工大数据库上机实验 数据库及应用课程实验报告 实验名称 Visual FoxPro 6.0的基本操作 实验类型 验证设计 实验学时 8学时 学 号 姓 名 班 级 指导教师 罗贺 实验地点 管理学院一号楼四楼机房 实验时间 2012...
  • 1、用SQL命令创建一个学生作业管理数据库Homework,数据文件的逻辑名称为Homework_Data,数据文件存放在D盘根目录下,文件名为HomeworkData.mdf,数据文件的初始存储空间大小为10MB,最大存储空间为500MB,存储空间...

    一、实验目的

    1、熟悉数据库管理软件的使用。

    2、熟练掌握数据库的创建、修改和删除语句。

    3、掌握表的创建、修改和删除语句。

    二、实验内容

    给定如表3.6、表3.7和表3.8所示的学生信息。

    表3.6 学生表(Student)

    学号

    姓名

    性别

    专业班级

    出生日期

    联系电话

    0433

    张艳

    生物04

    1986-9-13

    0496

    李越

    电子04

    1984-2-23

    13812901234

    0529

    赵欣

    会计05

    1984-1-27

    13502221234

    0531

    张志国

    生物05

    1986-9-10

    13312561234

    0538

    于兰兰

    生物05

    1984-2-20

    13312001234

    0591

    王丽丽

    电子05

    1984-3-20

    13320801234

    0592

    王海强

    电子05

    1986-11-1

    表3.7 课程表(Course)

    课程号

    课程名

    学分数

    学时数

    任课教师

    K001

    计算机图形学

    2.5

    40

    胡晶晶

    K002

    计算机应用基础

    3

    48

    任泉

    K006

    数据结构

    4

    64

    马跃先

    M001

    政治经济学

    4

    64

    孔繁新

    S001

    高等数学

    3

    48

    赵晓尘

    表3.8  学生作业表(Score)

    课程号

    学号

    作业1成绩

    作业2成绩

    作业3成绩

    K001

    0433

    60

    75

    75

    K001

    0529

    70

    70

    60

    K001

    0531

    70

    80

    80

    K001

    0591

    80

    90

    90

    K002

    0496

    80

    80

    90

    K002

    0529

    70

    70

    85

    K002

    0531

    80

    80

    80

    K002

    0538

    65

    75

    85

    K002

    0592

    75

    85

    85

    K006

    0531

    80

    80

    90

    K006

    0591

    80

    80

    80

    M001

    0496

    70

    70

    80

    M001

    0591

    65

    75

    75

    S001

    0531

    80

    80

    80

    S001

    0538

    60

    80

    1、用SQL命令创建一个学生作业管理数据库Homework,数据文件的逻辑名称为Homework_Data,数据文件存放在D盘根目录下,文件名为HomeworkData.mdf,数据文件的初始存储空间大小为10MB,最大存储空间为500MB,存储空间自动增长量为10MB;日志文件的逻辑名称为Homework_Log,日志文件物理地存放在D盘根目录下,文件名为HomeworkData.ldf,初始存储空间大小为5MB,最大存储空间为500MB,存储空间自动增长量为5MB。

    CREATE DATABASE Homework
    ON
    (NAME=Homework_Data,
    FILENAME='D:\HomeworkData.mdf',
    SIZE=10,
    MAXSIZE=500,
    FILEGROWTH=10)
    LOG ON
    (NAME=Homework_Log,
    FILENAME='D:\HomeworkData.ldf',
    SIZE=5,
    MAXSIZE=500,
    FILEGROWTH=5)

    2、用SQL命令修改数据库Homework,添加一个次要数据文件,逻辑名称为Homework_Datanew,存放在D盘根目录下,文件名为Homework_Datanew.ndf。数据文件的初始大小为100MB,最大容量为200MB,文件自动增长容量为10MB。

    ALTER DATABASE Homework
    ADD FILE
    (NAME=Homework_Datanew,
    FILENAME='D:\Homework_Datanew.ndf',
    SIZE=100,
    MAXSIZE=200,
    FILEGROWTH=10)

    3、对表3.6,表3.7和表3.8,分别以下表的方式给出各字段的属性定义和说明。

    字段名

    数据类型

    长度或者精度

    默认值

    完整性约束

    说明

    ……

    ……

    ……

    ……

    ……

    ……

    ……

    ……

    3、表3.6学生表

    字段名

    数据类型

    长度或者精度

    默认值

    完整性约束

    说明

    sno

    char

    4

    Primary key

    Not null

    学号

    sname

    varchar

    20

    Not null

    姓名

    ssex

    char

    2

    Check(‘男’,’女’)

    Not null

    性别

    major

    Varchar

    30

    Not null

    专业班级

    birth

    date

    null

    出生日期

    phone

    char

    11

    null

    联系电话

    表3.7课程表

    字段名

    数据类型

    长度或者精度

    默认值

    完整性约束

    说明

    cno

    char

    4

    Primary key

    Not null

    课程号

    cname

    varchar

    30

    Not null

    课程名

    credit

    numeric

    (3,1)

    Not null

    学分数

    xtime

    numeric

    (4,1)

    Not null

    学时数

    tname

    varchar

    20

    null

    任课教师

    表3.8学生作业表

    字段名

    数据类型

    长度或者精度

    默认值

    完整性约束

    说明

    cno

    char

    4

    Primary key

    Foreign key

    Not null

    课程号

    sno

    char

    4

    Primary key

    Foreign key

    Not null

    学号

    Cj1

    numeric

    (4,1)

    null

    作业1成绩

    Cj2

    numeric

    (4,1)

    null

    作业2成绩

    Cj3

    numeric

    (4,1)

    null

    作业3成绩

    4、使用SQL命令在学生作业管理数据库中建立学生表、课程表和学生作业表。

    创建学生表(Student)
    Create table student
    (sno char(4) not null primary key,
    Sname varchar(20) not null,
    Ssex char(2) not null check(ssex in('男','女')),
    Major varchar(30) not null,
    Birth date null,
    Phone char(11) null)
    创建课程表(Course)
    Create table course
    (cno char(4) not null primary key,
    Cname varchar(30) not null,
    Credit numeric(3,1) not null,
    Stime numeric(4,1) not null,
    Tname varchar(20) null)
    创建学生作业表(Score)
    Create table score
    (cno char(4) not null,
    Sno char(4) not null,
    Cj1 numeric(4,1) null,
    Cj2 numeric(4,1) null,
    Cj3 numeric(4,1) null,
    Primary key(cno,sno),
    Foreign key(cno) references course(cno),
    Foreign key(sno) references student(sno))
    5、alter table student
    Add address nvarchar(20)

    5、在学生表中增加一个住址列,列名为address,数据类型为nvarchar(20)。

    ALTER TABLE 学生表
    ADD 
    Address NVARCHAR(20)

    三、实验指导

    1、启动SQL Server2012软件。

    2、SQL Server中,程序不区别大小写,特别要注意程序中的标点符号,一定要在英文半角状态下输入,否则会出错。

    3、在创建表时,使用字符串类型时应遵循以下原则:

    (1)从速度方面考虑,要选择固定的列,可以使用char类型。

    (2)要节省空间,使用动态的列,可以使用varchar类型。

    (3)如果要搜索的内容不区分大小写且内容较多,可以使用text类型。

    在创建表时,使用哪种数字类型,应遵循以下原则:

    (1)选择最小的可用类型,如果值永远不超过255,则使用tinyint比int强。

    (2)对于完全都是数字的,可以选择整数类型。

    (3)浮点类型用于可能具有小数部分的数。例如货物单价、网上购物交付金额等。

    设置表的主键约束和外键约束,以保证数据的完整性,应选择能够唯一标识一行记录的列或列的组合作为表的主键,外键首先是另一个表的主键,在该表中才能给它设置成外键。

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,651
精华内容 1,860
关键字:

数据库上机实验