c数据库映射
㈠ c# 如何将一个数据库中的数据映射到另一个虚拟的数据库
需要一个临时表来存储,可以用触发器来实现
㈡ c 中如何创建数据库的映射表,可能会用到不同的数据库,如oracle和mysql
mysql和sqlserver中是没序列的吧
sqlserver可以在建表的时候,设置自增长。identity(1,1)
mysql可以通过 对主键用 auto_increment来实现自增
㈢ 怎么将ACCESS数据库映射到C++程序中 急!!!希望大家帮忙
C++的用场
Bjarne Stroustrup清晰地回答了这个问题。以下文字摘编自D&E简体中文版《C++语言的设计和演化》。
在以下领域,C++有着根本性的优势:低级系统程序设计、高级系统程序设计、嵌入式程序设计、数值科学计算、通用程序设计以及混合系统设计等等。让我们略微展开描述一下:
1. 低级系统程序设计:C++是迄今为止最好的低级程序设计语言。
2. 高级系统程序设计:包括操作系统核心、网络管理系统、编译系统、电子邮件系统、文字排版系统、图像和声音的编排系统、通讯系统、用户界面、数据库系统等等。
3. 嵌入式系统:包括照相机、汽车、火箭、电话交换机、汽车等等。
4. 数值/科学计算:包括仿真、实时数据获取和数据库访问等等。
Bjarne的个人主页上,有一页applications,那儿列出了一些(全部或大部分)使用C++编写的系统、应用程序和库。下面是一些例子:
1. Adobe Systems:所有主要应用程序都使用C++开发而成,比如Photoshop & ImageReady、Illustrator和Acrobat等。
2. Maya:知道“蜘蛛人”、“指环王”的电脑特技是使用什么软件做出来的吗?没错,就是Maya。
3. Amazon.com:使用C++开发大型电子商务软件。
4. Apple:部分重要“零件”采用C++编写而成。
5. AT&T:美国最大的电讯技术提供商,主要产品采用C++开发。
6. Google:Web搜索引擎采用C++编写。
7. IBM:OS/400。
8. Microsoft:以下产品主要采用C++(Visual C++)编写:
Windows XP
Windows NT:NT4、2000
Windows 9x:95、98、Me
Microsoft Office:Word、Excel、Access、PowerPoint、Outlook
Internet Explorer,包括Outlook Express
Visual Studio:Visual C++、Visual Basic、Visual FoxPro
.NET Framework类库采用C#编写,但C#编译器自身则使用C++编写而成。
Exchange
SQL Server
FrontPage
Project
所有游戏
......
9. KDE:K Desktop Environment(Linux)。
10. Symbian OS:最流行的蜂窝电话OS之一。
我通常使用C++进行高端程序开发。
“通常”一词没什么好说的,有时只是出于公司文化或个人爱好方面的原因,选用了别的语言而不是C++,或者相反。我所说的“高端”是指:关键业务处理,效率要求极高,实时性要求高等等。
我看见几乎所有严肃的工控系统软件和实时数据采集、处理和表现(主要是图形)软件,都是采用C++(或C,少部分采用Java)编写而成的。
据我的了解,我原先所在的研究院几乎每一个研究所都在不同程度地使用C++(以及一些别的语言)。
想想看,迄今为止,现代Unix操作系统的各种变体上,最常使用的是什么样的开发语言?(C/C++)
C++语言
C++语言是灵活,但首先要看看使用者能不能发挥它的灵活性;C++语言够强大,但要看看使用者有没有本事发挥它的强大功能。
使用C++语言和编译器编写一个快速的程序,并不难,不过编写一个强健而高效的大型程序,就不是那么容易了。
语言之间的区别,绝非只是大括号和begin、end或Sub、End Sub之间的区别。选择了一种语言,你就选择了一种思维方式,一种程序设计思想。要想跳出语言的束缚,首先要对语言有着深刻的认识和透彻的把握。世界上一些大师级的人物,也常常毫不掩饰自己对某种语言(我并没有专指C++)的偏爱。一些人对语言尚一知半解,就大谈要跳出语言的束缚了 — 你无需跳出,因为你根本不曾深入。
纯粹的技术性(学术性)研究,总能给人带来纯粹的快乐。C++语言复杂至极,可研究性极强,但一般来说,没有3~5年的持续学习、思考、使用,是不可能真正掌握C++的。
我不是唯语言论或唯工具论者,但我反对抹杀不同语言、不同开发工具之间的区别。抱持这种观点的人,若非无知,即是别有用心。这就好比杂牌笔记本电脑厂商最喜欢叫嚷“笔记本电脑已经进入同质时代”一样,杂牌机怎么能和IBM相比?
选择C++或选择Java,要看你个人爱好和对将来的打算。虽然只是语言上的差别,但由此决定的就业领域的确不一样。
不管你走什么样的技术路线,不管你用不用它做开发,学习C++总会带来长远的好处。一名熟悉C++的开发人员,假如他不是一个偏执狂的话,再学习Java或C#,都要容易得多。
C++不过是一门编程语言,我们总是要用它来解决实际问题,所以要学习开发工具(比如Visual C++),了解操作系统(比如API),熟悉领域知识(比如电力系统),掌握其他软件技术(比如数据库),等等。编写真正的代码,解决实际问题的能力,才是衡量一名程序员是否有真水平的唯一标准。
设计模式和统一建模语言
设计模式(Design Patterns)和统一建模语言(Unified Modeling Language,UML)是两个不同的概念。前者主要目标在于提供可重用的面向对象软件设计方案,后者则是一种描绘软件蓝图的标准语言。
当然了,可以使用UML来描述设计模式的结构。
UML所描述的模型可以映射成C++、C#、Java等语言代码,甚至可以映射到关系型数据库。映射过程可以是双向的,一般都有相应的软件工具(或插件)支持。
不同的语言,特性有所差别,这多少会影响设计模式在该语言中的实现(方式、难易)。比方说,假如使用c语言来描述设计模式,那么,继承、封装和多态等特性就变成了需要研究的设计模式,但在任何一门面向对象的语言中,这都纯属多余。
现在市面上还没有看到象样的以C#为手段讲述设计模式的书(我没有看到),但这并不打紧,倘若有兴趣,完全可以读一读《Design Patterns: Elements of Reusable Object-Oriented Software》(中文版名《设计模式》机械工业出版社)这本书,尽管它主要以C++和Smalltalk语言为讲解手段。
设计模式本身无所谓好坏,根据你要解决的目标问题,选择适当的设计模式。
系统架构
在企业级软件开发中,架构第一重要。架构有缺陷,系统就存在硬伤。优秀的架构来自于优秀的设计。这一点毋庸置疑。
任何成功的软件,即使它没有明确地使用建模思想、架构方法,但在骨子里、潜意识中,大都具有良好的设计思想和架构。
只有写过好多好多代码以后,只有做过一些够份量的企业级项目之后,才可能对软件架构形成清晰的认识。很难想象一个连几行像样的代码都没有写过的人,对程序思想和架构却有着深刻的认识。这种人,十有八九属于纸上谈兵之辈。
我们时不时会看到这种情况,软件的设计也不算太差,但程序员要么不知道怎么写实现代码,要么是代码写得缺乏效率,或不够强健,甚至有时连“架构师”自己对此都一筹莫展。
我们也常常听到一些声音,不要太拘泥于语言(技术)细节了,要从大处着眼,要有大局观,架构怎么怎么重要,这些都是大实话。不过现实情况往往是,很多程序员不是太拘泥于语言(技术)细节了,而是对语言(技术)细节掌握得还远远不够。
书本知识的重要性毋庸置疑,但绝不要以为读了两本书,自己就成了牛气的架构师、设计师或者什么建模专家。
从前的软件开发埋头实践而缺乏必要的理论指导。现在越来越走向另外一个极端:设计文稿越来越图文并茂,琳琅满目,但开发出来的软件却比以前差很多。这种表面文章,意义何在?
数据库
大多数软件都要和数据库打交道,并非只有MIS类软件如此,数据库知识几乎是非掌握不可的,无非使用深度和广度有别而已。迄今为止,我编写的每一个项目软件,都要访问数据库,有一个程序甚至同时要跟两个数据库打交道(Oracle和SQL Server)。
如果你上过任何一门数据库基础理论方面的课,或认真看过任何一本数据库基础理论方面的书,或许都不必再买更多的(类似的)书。二十多年以来,关系式数据库理论之稳定,远远超过C++语言的稳定:)
本文来自CSDN博客,转载请标明出处:
㈣ C语言数据库是什么
数据库是用来存入数据的仓库。用户可以对文件中的数据进行新增、查询、更新、删除等操作。但是C语言和数据库是两个东西,他们之间的关系就是C语言可以用来开发数据库管理软件,也可以通过C语言借助于SQL语句来操作数据库。
C语言普适性最强的一种计算机程序编辑语言,它不仅可以发挥出高级编程语言的功用,还具有汇编语言的优点,因此相对于其它编程语言,它具有自己独特的特点。具体体现在以下三个方面:
其一,广泛性。C 语言的运算范围的大小直接决定了其优劣性。C 语言中包含了34种运算符,因此运算范围要超出许多其它语言,此外其运算结果的表达形式也十分丰富。此外,C 语言包含了字符型、指针型等多种数据结构形式,因此,更为庞大的数据结构运算它也可以应付。
其二,简洁性。9 类控制语句和32个KEYWORDS是C语言所具有的基础特性,使得其在计算机应用程序编写中具有广泛的适用性,不仅可以适用广大编程人员的操作,提高其工作效率,同 时还能够支持高级编程,避免了语言切换的繁琐。
(4)c数据库映射扩展阅读
数据库架构
1、内层:最接近实际存储体,亦即有关数据的实际存储方式。
2、外层:最接近用户,即有关个别用户观看数据的方式。
3、概念层:介于两者之间的间接层。
㈤ 映射库是什么意思
综述
MFC(Microsoft Foundation Classes),是一个微软公司提供的类库class libraries,以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。
类库说明
不是只有 C++程序使用开放数据库连接,还有其他的规划环境管理数据库管理系统,并且能利用这个新的标准。你可以用 A C语言规划更新一个 SQL 服务器数据库,然后你可以使用一个现存产品开放数据库连接其兼容的报表使用格式,并且打印数据结果。
开放数据库连接系统就是如此区别使用者界面和现实的数据库管理的程序以供开发者使用。 你不再必须使用其他数据库开发工具来做这项工作,因为现有的开放数据库已经足够完成相应的工作。
㈥ 数据结构,C语言,数据库有什么联系
如果你是大学生还在学校,还没进入到具体的开发应用中的话,这3者之间屁的关系都没有,因为大学里面的数据结构实际上是开发语言中数据在缓冲区的存储方式
但是在工程中,数据结构指的是数据模型,如果你需要独立的搭建一个工程的数据库,那就必须有数据模型知识。有了数据模型,及模型之间的关系,可以直接通过映射,建立起数据库。至于c语言,是开发语言,和另外的2个东西没有直接的关系
㈦ 数据库中,外模式/模式映射具体指的是什么
两级映射,其中实现数据逻辑独立性的映射是 A.外模式/模式B.模式/模式C.外模式/内模式D.模式/内模式请帮忙给出正确答案和
㈧ sql server 2005 中怎么创建组和数据库的映射关系
一
1、不同之:组织方式.文件系统的文件通常是由操作系统规定的,但是功能方面比较简单,方便查找定位之用,文件与文件之间不能调用数据;而数据库中的文件是由数据库软件组织的,其程度很高,能方便查找,更重要是它们之间联系紧密!能相互传递据.
2、(1)物理数据层。它是数据库的最内层,是物理存贮设备上实际存储的数据的集合。这些数据是原始数据,是用户加工的对象,由内部模式描述的指令操作处理的位串、字符和字组成。
(2)概念数据层。它是数据库的中间一层,是数据库的整体逻辑表示。指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的集合。它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。
(3)逻辑数据层。它是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。
3、程序和数据的独立性是数据库的主要特征之一.作为工程数据库管理系统,也必须保持这个特征.为此,介绍了具体的工程数据库管理系统EDRMS程序与数据的独立性实现,并用实例予以说明.
二
1、a关系:关系是一个二维表,表的每行对应一个元组,表的列对应属性。
b属性:指关系中的列;
域:值的集,每个属性的取值的范围;
元组(Tuple):给出一组域产生笛卡儿乘积D1,D2…Dn,产生笛卡儿乘积D1*D2*….Dn=其中(d1,d2..dn)为元组。
c
关系的表:是一个简单的表,不准许出现组合的属性。
d用二维表的形式来表示实体集属性间的关系,以及实体之间联系的形式。
三
1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。
自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。
四
1、在SQL Server 2000 中,数据库由存储特定结构化数据集的表集合组成。表中包含行(有时称作记录或元组)和列(有时称作特性)的集合。表中的每一列都设计为存储某种类型的信息(例如,日期、名称、美元金额或数字)。表上有几种控制(约束、规则、触发器、默认值和自定义用户数据类型)用于确保数据的有效性。表上可以有索引,利用索引可以快速地找到行。可将声明引用完整性 (DRI) 约束添加到表上,以确保不同表中相互关联的数据保持一致。数据库还可以存储过程,这些过程使用 Transact-SQL 编程代码对数据库中的数据进行操作,如存储对表数据提供自定义访问的视图。
2、SQL Server 2000 使用一组文件映射数据库。数据库中的所有数据和对象(如表、存储过程、触发器和视图)都存储在文件组中。
3、主要数据文件,次要数据文件,事务日志文件
4、因为利用事务日志备份可以将数据库恢复到特定的即时点(如输入不想要的数据之前的那一点)或故障发生点。在媒体恢复策略中应考虑利用事务日志备份。
五
1、表是包含数据库中所有数据的数据库对象。表定义为列的集合。
2、每行代表惟一的一条记录,而每列代表记录中的一个域。
3、一对多关系,多对多关系,一对一关系
六
1、Transact-Sql语言的分类如下:
数据类型
变量说明
用来说明变量的命令
流程控制语句
2、null表示空值;与其他的比较既非空于空值的区别;null在表中即为空挡数据。
5、通常与LIKE关键字一起来使用
可以用在检查约束中使用LIKE
在后面的查询语句中还会经常使用到
6、ORDER BY是一个可选的子句,它允许你根据指定要order by的列来以上升或者下降的顺序来显示查询的
9、.SQL;文本文档
八
数据库中的索引与书籍中的目录类似。在一本书中,利用目录可以快速查找所需信息,无须阅读整本书。在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据。数据库中的索引是一个表中所包含的值的列表,其中注明了表中包含各个值的行所在的存储位置。可以为表中的单个列建立索引,也可以为一组列建立索引;索引采用B树结构。索引包含一个条目,该条目有来自表中每一行的一个或多个列(搜索关键字)。B树按搜索关键字排序,可以在搜索关键字的任何子词条集合上进行高效搜索。例如,对于一个A、B、C列上的索引,可以在A,A、B,A、B、C上对其进行高效搜索。
在随SQL Server 2000 提供的pubs示例数据库中,employee表在emp_id列上有一个索引。当SQL Server执行一个语句,在employee 中根据指定的emp_id值查找数据时,它能够识别emp_id列的索引,并使用该索引查找所需数据。如果该索引不存在,它会从表的第一行开始,逐行搜索指定的emp_id值。
SQL Server 2000为某些类型的约束(如PRIMARY KEY和UNIQUE约束)自动创建索引。可以通过创建不依赖于约束的索引,进一步对表定义进行自定义。
不过,索引为性能所带来的好处却是有代价的。带索引的表在数据库中会占据更多的空间。另外,为了维护索引,对数据进行插入、更新、删除操作所花费的时间会更长。在设计和创建索引时,应确保对性能的提高程度大于在存储空间和处理资源方面的代价。
在考虑是否为一个列创建索引时,应考虑被索引的列是否以及如何用于查询中。索引对下列查询很有帮助:
l 搜索符合特定搜索关键字值的行(精确匹配查询)。精确匹配比较是指查询使用 WHERE 语句指定具有给定值的列条目。例如WHERE emp_id = 'VPA30890F'。
l 搜索其搜索关键字值为范围值的行(范围查询)。范围查询是指查询指定其值介于两个值之间的任何条目。例如WHERE job_lvl BETWEEN 9 and 12。
l 在表 T1 中搜索根据联接谓词与表 T2 中的某个行匹配的行(索引嵌套循环联接)。
l 在不进行显式排序操作的情况下产生经排序的查询输出,尤其是经过排序的动态游标。
l 在不进行显式排序操作的情况下,按一种有序的顺序对行进行扫描,以允许基于顺序的操作,如合并联接和流聚合。
l 以优于表扫描的性能对表中所有的行进行扫描,性能提高是由于减少了要扫描的列集和数据总量(该查询有覆盖索引可供使用)。
l 搜索插入和更新操作中重复的新搜索关键字值,以实施PRIMARY KEY和 UNIQUE 约束。
l 搜索已定义了FOREIGN KEY约束的两个表之间匹配的行。
在很多查询中,索引可以带来多方面的好处。例如,索引除了可以覆盖查询外,还使得可以进行范围查询。SQL Server 2000可以在同一个查询中为一个表使用多个索引,并可以合并多个索引,以便搜索关键字共同覆盖一个查询。另外,SQL Server会自动确定利用哪些索引进行查询,并且能够在表被改动时确保该表的所有索引都得到维护。
一个表如果建有大量索引会影响 INSERT、UPDATE 和 DELETE 语句的性能,因为在表中的数据更改时,所有索引都须进行适当的调整。另一方面,对于不需要修改数据的查询(SELECT 语句),大量索引有助于提高性能,因为SQL Server 2000有更多的索引可供选择,以便确定以最快速度访问数据的最佳方法。对小型表进行索引可能不会产生优化效果,因为 SQL Server 2000在遍历索引以搜索数据时,花费的时间可能会比简单的表扫描还长。
九
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其他数据库的一个或多个表,或者其他视图。分布式查询也可用于定义使用多个异类源数据的视图。如果有几台不同的服务器分别存储组织中不同地区的数据,而用户需要将这些服务器上相似结构的数据组合起来,这种方式就很有用。通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。
视图通常用来集中、简化和自定义每个用户对数据库的不同认识。视图可用作安全机制,方法是允许用户通过视图访问数据,而不授予用户直接访问视图基础表的权限。从SQL Server 2000 复制数据时也可使用视图来提高性能并分区数据。
视图可以简化用户操作数据的方式。可将经常使用的联接、投影、联合查询和选择查询定义为视图,这样,用户每次对特定的数据执行进一步操作时,不必指定所有条件和限定。例如,一个用于报表目的,并执行子查询、外联接及聚合以从一组表中检索数据的复合查询,就可以创建为一个视图。视图简化了对数据的访问,因为每次生成报表时无需写或提交基础查询,而是查询视图。
视图允许用户以不同的方式查看数据,即使他们同时使用相同的数据时也如此。这在具有不同目的和技术水平的用户共享同一个数据库时尤为有利。例如,可定义一个视图以仅检索由客户经理处理的客户数据。视图可以根据使用该视图的客户经理的登录 ID 决定检索哪些数据。
可使用视图将数据导出至其他应用程序。例如,可能希望使用pubs数据库中的stores和sales表在Excel中分析销售数据。为此,可创建一个基于stores和sales表的视图。然后使用数据导入导出工具导出由视图定义的数据。
Transact-SQL UNION 集合运算符可在视图内使用,以将来自不同表的两个或多个查询结果组合成单一的结果集。这在用户看来是一个单独的表,称为分区视图。例如,如果一个表含有华盛顿的销售数据,另一个表含有加利福尼亚的销售数据,即可从 UNION 创建这两个表的视图。该视图代表了这两个区域的销售数据。使用分区视图时,首先创建几个相同的表,指定一个约束以决定可在各个表中添加的数据范围。视图即使用这些基表创建。当查询该视图时,SQL Server 自动决定查询所影响的表,并仅引用这些表。例如,如果一个查询指定只需要华盛顿特区的销售数据,则 SQL Server 只读取含有华盛顿特区销售数据的表,而并不访问其余的表。分区试图可基于来自多个异类源(如远程服务器)的数据,而不仅仅局限于同一数据库中的表。例如,要将分别存储组织中不同区域数据的几台远程服务器上的数据组合起来,可以创建分布式查询,从每个数据源中检索数据,然后基于这些分布式查询创建视图。所有查询都只从包含查询所请求数据的远程服务器上读取表中的数据,其他在视图中由分布式查询引用的服务器均不被访问。
十
在使用SQL Server 2000 创建应用程序时,Transact-SQL编程语言是应用程序和SQL Server数据库之间的主要编程接口。使用Transact-SQL程序时,可用两种方法存储和执行程序。可以在本地存储程序,并创建向SQL Server发送命令并处理结果的应用程序;也可以将程序在SQL Server中存储为存储过程,同时创建执行存储过程并处理结果的应用程序。
SQL Server 2000中的存储过程与其他编程语言中的过程类似,利用存储过程可以完成以下任务。
l 接受输入参数并以输出参数的形式将多个值返回至调用过程或批处理。
l 包含执行数据库操作(包括调用其他过程)的编程语句。
l 向调用过程或批处理返回状态值,以表明成功或失败(以及失败原因)。
l 可使用 Transact-SQL EXECUTE 语句运行存储过程。存储过程与函数不同,因为存储过程不返回取代其名称的值,也不能直接用在表达式中。
使用SQL Server 2000中的存储过程代替存储在客户计算机本地的Transact-SQL程序有很多的好处。
l 允许模块化程序设计。只需创建过程一次并将其存储在数据库中,以后即可在程序中调用该过程任意次。存储过程可由在数据库编程方面有专长的人员创建,并可独立于程序源代码而单独修改。
l 允许更快执行。如果某操作需要大量Transact-SQL代码或需重复执行,存储过程将比Transact-SQL批代码的执行要快。将在创建存储过程时对其进行分析和优化,并可在首次执行该过程后使用该过程的内存中版本。每次运行Transact-SQL语句时,都要从客户端重复发送,并且在SQL Server 2000每次执行这些语句时,都要对其进行编译和优化。
l 减少网络流量。一个需要数百行Transact-SQL代码的操作由一条执行过程代码的单独语句就可实现,而不需要在网络中发送数百行代码。
l 可作为安全机制使用。即使对于没有直接执行存储过程中语句的权限的用户,也可授予他们执行该存储过程的权限。
十一
SQL Server 2000 提供了两种主要机制来强制业务规则和数据完整性:约束和触发器。触发器是一种特殊类型的存储过程,它在指定的表中的数据发生变化时自动生效。唤醒调用触发器以响应INSERT、UPDATE或DELETE语句。触发器可以查询其他表,并可以包含复杂的Transact-SQL语句。触发器和触发它的语句要作为可在触发器内回滚的单个事务对待。如果检测到严重错误(例如磁盘空间不足),则整个事务即自动回滚。
触发器可通过数据库中的相关表实现级联更改。触发器可以强制CHECK约束定义的约束更为复杂的约束。与CHECK约束不同,触发器可以引用其他表中的列。例如,触发器可以使用另一个表中的SELECT比较插入或更新的数据,以及执行其他操作,如修改数据或显示用户定义错误信息。触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。一个表中的多个同类触发器(INSERT、UPDATE或DELETE)允许采取多个不同的对策以响应同一个修改语句。
约束和触发器在特殊情况下各有优势。触发器的主要好处在于它们可以包含使用Transact-SQL代码的复杂处理逻辑。因此,触发器可以支持约束的所有功能;但它在所给出的功能上并不总是最好的方法。
实体完整性总应在最低级别上通过索引进行强制,这些索引或是PRIMARY KEY和UNIQUE约束的一部分,或是在约束之外独立创建的。假设功能可以满足应用程序的功能需求,域完整性应通过CHECK约束进行强制,而引用完整性则应通过FOREIGN KEY约束进行强制。
十二
先创建登录名,可以是windows登录名也可以sql登录名
windows登录名是windows操作系统已经存在的用户名
sql登录名要在sql中创建而得的
要创建windows登录名:
例如:已经在windows中存在一个pkxz用户,域名是xxiang
create login [xxiang\pkxz] from windows with default_database = css
alter login pkxz with name=ppp
drop login pkxz
注意:只有administrators组的用户可以访问所有实例,并可获所有访问权,
其余本地用户组里的组,只能相对应的访问实例。
例如:chenshanshan是users用户组里的,是[xxinag2006\pkxz]实例的域用户帐户,
chenshanshan只能访问这个实例,并可获所有访问权。
例如:joan是users用户组里的,是[xxinag2006\pkxz]实例的登录名,joan只能访问这个实例。
要创建sql登录名:
sql用户名是pkxz
create login pkxz with password ='xx121314' , default_database = css
alter login pkxz with password = 'pp'
drop login pkxz
注意:sql用户名只能相对应的访问实例
例如:pc是[xxiang\pkxz]的登录名,只能访问这个实例,不可访问别的实例。
两者都创建了登录名,且都是css为默认数据库
然后创建完后把登录名授予角色
sp_addsrvrolemember 'pkxz','sysadmin'
sp_dropsrvrolemember 'pkxz','sysadmin'
服务器角色只能访问相对应的实例操作!不能访问别的实例!
创建用户
Ceate user pkxz_user from login pkxz with default_schema = pkxz_schema
如果没有创建架构的话,默认是dbo架构,这里是pkxz_schema
创建架构
创建架构的同时还可以创建该架构所拥有的表,视图,羡慕且可以对这些对象设轩权限。
create schema pkxz_schema authorization pkxz_user
Create Table pp (pp int)
Grant Select To pkxz_user_1
数据库角色
可以自己添加,还有内置固定数据库角色
自己添加角色
create role CreateTable authorization pkxz_user // CreateTable是角色名
分配权限
Grant Insert To CreateTable
添加成员
sp_addrolemember 'CreateTable','pkxz_user_1'
public角色的两个特点,1、初始状态没有权限 2、所有的数据库的成员都是他的成员
当修改了public角色,其实更改了所有数据库成员的权限
权限的管理
Grant 授予 Revoke 收回权限 Deny 否认权限
例如:将一个表pt的插入权限授予pkxz_user_1
Grant Insert On pt To pkxz_user_1
㈨ 如何在实体类中映射多张表
有A,B,C,D四张表,
public class A{
private B b;
private C c;
private D d;
}
然后在配置中设置