自考实践课——数据库

编程入门 行业动态 更新时间:2024-10-21 14:27:39

<a href=https://www.elefans.com/category/jswz/34/1767222.html style=自考实践课——数据库"/>

自考实践课——数据库


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

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

SQL DML-数据查询

SQl DDL-数据库的创建

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

【旧知识】

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

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

select * from Employees where City='London'

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

【新东西】

 

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

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

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

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

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

--判断数据是否存在,存在即更新,不存在即插入
if exists(select CategoryID from dbo.Categories Where CategoryID='7'  )                        ---- 存在记录才更新Update dbo.Categoriesset CategoryName ='software',Description ='Delphi,Office',picture=''Where CategoryID=7
else--设置表Categories的主键为非自增长set identity_insert Categories on--不存在记录才插入Insert into dbo.Categories(CategoryID ,CategoryName ,Description,Picture)     Select 7,'software' ,'Delphi,Office',null
goInsert into dbo.Categories(CategoryID ,CategoryName ,Description,Picture)     select 9,'Condiments','sauces,relishes',null unionselect 13,'books','SQL,Programs',null unionselect 15,'Dairy Products','Cheeses,Milks',null    --设置表Categories的主键为自增长set identity_insert Categories off

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

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

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

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

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

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

--设置表Categories的主键不是自增长
set identity_insert Categories on--删除主键约束
alter table categories drop constraint PK_Categories--修改表结构
alter table Categories alter column CategoryID char(20) not null--添加主键约束
alter table categories add constraint PK_Categories primary key( CategoryID)

【总结】

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



更多推荐

自考实践课——数据库

本文发布于:2024-03-08 23:28:04,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1722836.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:自考   数据库

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!