数据库初级篇--EA & ER & SQL Server

时间:2021-08-09 17:42:14

前言

       自己建数据库之前的心情是复杂中夹杂着一点躁乱,因为打算这一次的数据库要自己建一下,对于之后的未知数说实话心里有惴惴不安,事实也是如此,这次数据库的创建真的是一波好几折啊,不过我更加坚信的一件事是:兵来将挡,水来土掩。自己要多一份自信。
    
   先来说说这次建数据库的整过过程,自从了解到EA可以用来建立数据库之后,着手研究了EA工具的ER图部分,之后生成数据库文件中发现建立的表访问不了;于是我想肯定是想让我多学习点东西,所以就去学习一些基本的T-SQL语言,惊奇的是之前数据库不能的访问的问题解决了。请听小编慢慢道来~

EA工具画ER图

       我们建数据库首先要画的是ER图,通过ER模型,清楚实体之间的联系(这是手动建表和生成表都要做的工作)。今天说一下强大的EA工具,可以生成多种类型的代码,帮助数据库的创建,同时还可以生成文档,传说EA已经强大到整个软件开发过程中都可以参与,值得我们深入的学习。
   下面是给大家介绍如何在EA工具中建立ER图(我使用的是12版,不过都是大同小异)。

  • 新建项目–弹出模型向导–选中Database–Entity Relationship Diagram–确定
    数据库初级篇--EA & ER & SQL Server

  • 进入如下界面:
    右边紫色框里是常用工具,我自己画了一个实体学生和其两个属性学号和姓名。
    数据库初级篇--EA & ER & SQL Server

  • 转换模型
    当你的ER图画完之后,全选你要生成的模型,右键–转换,进入如下界面:
    数据库初级篇--EA & ER & SQL Server

  • 模型生成并设置

    • 你发现在项目浏览中多了一个modeling:
      数据库初级篇--EA & ER & SQL Server

    • 双击之后,看到这样的表(属性已经生成):

      数据库初级篇--EA & ER & SQL Server

    • 右击这个表选择特性–通用进行相关设置,这里我们可以选择数据库,设置主键和外键,如下图:
      数据库初级篇--EA & ER & SQL Server
      数据库初级篇--EA & ER & SQL Server
      数据库初级篇--EA & ER & SQL Server

  • 设计好表后我们可以生成DLL语言:全选–右键–源码工程–生成DLL;如下图,设置好后点击运行
    数据库初级篇--EA & ER & SQL Server

  • 生成了sql一个的文档,我们在SQL Server中运行就可以生成自己的表了。这样数据库很方便就创建出来了~

        关于创建数据库本该到这里就结束的,我以为就这样结束了,不过事情好像不是这个样子的呢~在搭建三层的时候访问我的数据库中一直提示数据库的访问错误,我看了看之前生成的脚本,发现和我们自考学习的数据库T-SQL语言很像,我想我应该用sql 语言来建一下数据库吧。


数据库设计

       之前使用SSMS(SQL Server Management Studio)创建的,操作很简单,这次突破一下,用sql语言来建。

sql语言创建数据库

    例如我们创建一个名为yy的数据库,主数据文件为10mb,最大大小不受限制,每次增长10%,事务日志文件大小为1MB,最大大小不受限制,文件每次增长10%

/* 建立数据库 名为 YY */
create database yy

/* 建立主文件*/
on primary (name = 'yy',
filename = 'E:\计算机\机房重构\数据库\yy.mdf', /*建立主数据文件的位置*/
size = 10mb, maxsize = unlimited, filegrowth =10% )

/*建立数据日志文件*/
log on (name = 'yy_log',filename = 'E:\计算机\机房重构\数据库\yy_log.ldf',
size = 10mb, maxsize = unlimited, filegrowth =10% )

go

效果展示:
数据库初级篇--EA & ER & SQL Server

如果要删除数据库的话:

drop database /*数据库名*/

表的操作

在查询编辑器中创建表的格式如下:
create table [<库名.>]<表名>
(<列名><列属性>[列级完整性约束条件]
[,<列名><列属性>[列级完整性约束条件]] [,…n]
[,<表级完整性约束条件>] [,…n])

这里什么是约束条件呢?

- PRIMARY KEY [(列名)]:指定主键
- UNIQUE KEY [(列名)]:指定列值取唯一
- FOREIGEN KEY [(外键列)]

下面是我创建了一个表user

CREATE TABLE User_info
(
[UserID] varchar(50) NOT NULL,
[UserName] varchar(50),
[PassWord] varchar(50),
[Level] varchar(50),
[Head] varchar(50),
CONSTRAINT [PK_User] PRIMARY KEY CLUSTERED ([UserID])
)
go

这是效果展示:
数据库初级篇--EA & ER & SQL Server

其他操作

  • 修改表
alter table <表名>
[add <新列名> <数据类型> [完整性约束]]
[drop <完整性约束名>]
[alter column <列名> <数据类型> ]
  • alter column 举例
use 数据库名
go

alter table 表名
alter column <新列名> <数据类型>
go
  • drop 举例
use 数据库名
go

alter table 表名
drop column <列名>
go
  • 输入数据
insert [into] 表名 [(列名1,列名2,列名3...)]
ualues (表达式1,表达式2...) '这里的表达式要和列名对应
  • 修改数据与删除数据
update 表名
set 列名 = [表达式]
[where <条件>]
delete [from] 表名
[where <表达式>]
  • 删除表
drop table [数据库].<表名>

   这样我自己的表就建好了,不过对于数据库还是没有完,如何使数据保持一致性是自己之后要完成的工作。


再次回顾sql脚本

       现在有了对数据库语言的一些基础,自己再去看脚本,看看这个文档是哪里出现了问题。这是我的文档中的一部分:
数据库初级篇--EA & ER & SQL Server

         我注意到创建表的时候,表名用[ ]括起来了,我查了一下,这个中括号的意思是使得括号中的内容不作为关键字存在,为了避免与关键词冲突,加中括号,不过一般可以不加。很神奇的是当我去掉中括号后,我的这个表就可以访问了。具体的原因,我现在也不太清楚,希望路过的不吝指教,我也要多多学习。


结语

        学着学着,发现数据库的内容自己要学的还有很多,自己要加油,就会收获的。经过这一次,真切的体会到问题解决之后的快感,无以言白。很棒,自己也敢于接受更大的挑战!