自考实践课——数据库

简介: 自考实践课——数据库

数据库,培养计划中学习过,自考中学习过,软考中学习过,项目中用过。这次的实践课,上手一操作,图形化操作比较熟练,sql语句来操作还是有些不熟练哒,不过没关系,知识是需要反复的,技能也是需要反复操练的。这次实践课是一次操练的机会。三道数据库的题,新建库、表和索引;插入数据;修改表结构;查询特定数据。

       知识网是通过找联系把知识联系起来的。我把今天的理解与之前的两篇文章联系一下:

SQL DML-数据查询

SQl DDL-数据库的创建

       新建库、表和索引,修改表结构属于DDL,插入数据、查询特定数据,属于DML。

【旧知识】

1. --创建名称为“某某考生实践考试”的数据库
2. create database  某某考生实践考试


1. --创建表
2. use  某某考生实践考试
3. create table 考生基本信息
4. (
5. 准考证号 char(12),
6. 姓名 char(8) not null,
7. 年龄 smallint,
8. 性别 char(2),
9. 地区 char(10),
10. 工作单位 char(20),
11. 联系电话 char(12),
12. 电子邮件地址 char(20),
13. primary key (准考证号)
14. )


select * from Employees where City='London'


       其中最最熟悉,最先接触的就是查询语句。


【新东西】

 

1. --修改“考生基本信息”的“工作学习单位”列名为“工作单位”,应用系统自带触发器sp_rename
2. exec sp_rename'考生基本信息.[工作学习单位]','工作单位'


1. --创建索引
2. create index 索引姓名 on 考生基本信息(姓名)

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

1. --插入个人信息真实数据
2. insert into 考生基本信息
3. values (123456789001,'李某某',24,'女','某某地区','某某单位',01234567890,'01234567890@163.com')
4. insert into 考核科目
5. values (02375,'运筹学基础'),(02628,'管理经济学'),(04735,'数据库系统原理')


       存在即更新,不存在即插入——这个是在网上查到东西,理了好久才理清楚的。当表的非自增长属性开的时候,才可以插入或删除记录。

1. --判断数据是否存在,存在即更新,不存在即插入
2. if exists(select CategoryID from dbo.Categories Where CategoryID='7'  )                        
3. ---- 存在记录才更新
4. Update dbo.Categories
5. set CategoryName ='software',
6.         Description ='Delphi,Office',
7.         picture=''
8. Where CategoryID=7
9. else
10. --设置表Categories的主键为非自增长
11. set identity_insert Categories on
12. 
13. --不存在记录才插入
14. Insert into dbo.Categories(CategoryID ,CategoryName ,Description,Picture)     
15. Select 7,'software' ,'Delphi,Office',null
16. go
17. 
18. Insert into dbo.Categories(CategoryID ,CategoryName ,Description,Picture)     
19. select 9,'Condiments','sauces,relishes',null union
20. select 13,'books','SQL,Programs',null union
21. select 15,'Dairy Products','Cheeses,Milks',null
22. 
23. --设置表Categories的主键为自增长
24. set identity_insert Categories off

       本来在网上搜索insert into ...select 与insert into ...values的区别。却发现它们是两回事。

insert into...values是插入语句,insert into...select是表复制语句。而表复制语句有两种,一种要求第二张表也就是目标表必须存在,一种要求第二张表不存在。

       详情请戳:SELECT INTO 和 INSERT INTO SELECT 两种表复制语句

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

1. --查找与表Categories有外键关联表Products的外键
2. select name  
3. from  sys.foreign_key_columns f join sys.objects o on f.constraint_object_id=o.object_id
4. where
5. f.parent_object_id=object_id('Products')
6. 
7. --删除与表Categories关联的外键
8. alter table Products drop constraint FK_Products_Categories
9. 
10. --删除查出的记录
11. delete from Categories where ( CategoryName ='Produce' or CategoryName ='Confections')

       数据库的约束这一项,对于我来说比较陌生。主键/外键约束。

1. --设置表Categories的主键不是自增长
2. set identity_insert Categories on
3. 
4. --删除主键约束
5. alter table categories drop constraint PK_Categories
6. 
7. --修改表结构
8. alter table Categories alter column CategoryID char(20) not null
9. 
10. --添加主键约束
11. alter table categories add constraint PK_Categories primary key( CategoryID)


【总结】

        这次在完成实践考试的过程中,真的体会到了,自己看代码看半天,也找不到问题在哪儿,转移一下注意力,请同学过来看看,伸个懒腰之后,突然就悟了!通了!所以我们遇到问题卡着的时候不要放弃,只要是问题,总有解决的办法。越是摸不着头脑的错误,出错的原因越是简单。


相关文章
|
5月前
|
C#
【自考】之数据库系统原理
【自考】之数据库系统原理
36 0
|
存储 SQL 安全
自考数据库原理汇总
自考数据库原理汇总
67 0
|
9天前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
43 6
|
7天前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
39 3
Mysql(4)—数据库索引
|
9天前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
27 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
14天前
|
缓存 算法 关系型数据库
Mysql(3)—数据库相关概念及工作原理
数据库是一个以某种有组织的方式存储的数据集合。它通常包括一个或多个不同的主题领域或用途的数据表。
38 5
Mysql(3)—数据库相关概念及工作原理
|
1天前
|
存储 关系型数据库 MySQL
如何在MySQL中创建数据库?
【10月更文挑战第16天】如何在MySQL中创建数据库?
|
5天前
|
SQL Oracle 关系型数据库
安装最新 MySQL 8.0 数据库(教学用)
安装最新 MySQL 8.0 数据库(教学用)
34 4
|
3天前
|
存储 SQL 关系型数据库
【入门级教程】MySQL:从零开始的数据库之旅
本教程面向零基础用户,采用通俗易懂的语言和丰富的示例,帮助你快速掌握MySQL的基础知识和操作技巧。内容涵盖SQL语言基础(SELECT、INSERT、UPDATE、DELETE等常用语句)、使用索引提高查询效率、存储过程等。适合学生、开发者及数据库爱好者。
11 0
【入门级教程】MySQL:从零开始的数据库之旅
|
6天前
|
存储 关系型数据库 MySQL
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
13 2