




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SQL Server 2008数据库:创建和创建表、查询语句一、建立数据库1 .利用目标资源管理器创建用户数据库(1)选择开始-程序- Microsoft SQL server 2008-SQL server管理studio命令,打开sqlservermanagementstudio。(2)使用“windows认证”连接到SQL Server 2008数据库实例。(展开SQL Server实例,右键单击“数据库”,然后从快捷菜单中选择“新建数据存储”命令以打开“新建数据库”对话框。(4)在“新建数据库”对话框中,可以定义数据库的名称、数据库所有者、是否使用全文索引、数据文件和日志文件的逻辑名称和路径、文件组、初始大小和扩展方法等。 输入数据库名称student。使用T-SQL语句创建用户数据库在SQL Server Management Studio中,单击标准工具栏上的“新建查询”按钮,启动“SQL编辑器”窗口,在光标中输入T-SQL语句,然后单击“执行”按钮。 SQL编辑器发送用户输入的T-SQL语句,并将其发送到服务器以返回执行结果。创建数据库student的T-SQL语句如下所示创建数据基础版On primary(name=student_datafilename=e :SQL server 2008 SQL full _ enuMicrosoft SQL serverMSSQL serverMSSQLdatastudent _ data.MDFsize=3maxsize=unlimitedfilegrowth=1中所述情节,对概念设计中的量体体积进行分析Log on(name=student_log )filename=e :SQL server 2008 SQL full _ enuMicrosoft SQL serverMSSQL serverMSSQLdatastudent _ log.ldfsize=1maxsize=20filegrowth=10%中所述情节,对概念设计中的量体体积进行分析二、制作数据表1 .利用表设计器创建数据表(启动SQL server管理studio并连接到SQL Server 2008数据库实例。(展开SQL Server实例,选择数据库-student-表,右键单击,然后从快捷菜单中选择“新建表”命令以打开表设计器。(3)在表格设计师中,您可以定义各栏的名称、资料类型、长度、是否允许空白等属性。(4)新表的各列的属性设定完成后,单击工具栏的“保存”按钮,显示“选择名称”对话框,输入新的表名stu_info。 SQL Server数据库引擎根据用户设置完成新表的创建。使用T-SQL语句创建数据表创建表stu _ info (stu _ id char (10 )非空值name nvarchar(20)not nullbirthday date nullsex nchar(2)nulladdress nvarchar(20)nullmark int nullmajor nvarchar(20)nullsdept nvarchar(20)null;3、示例数据库student表数据:学生信息表(stu_info):课程信息表(course_info ) :学生成绩单(stu_grade):三、完整性和制约数据库中的数据是现实世界的反映,数据库的设计必须能够实现现实情况,即满足现实业务规则的要求,这也是数据完整性的要求。在数据库管理系统中,约束条件是确保数据库中数据完整性的重要方法。1、完整性:数据完整性是数据库设计中一个非常重要的问题,数据完整性代表数据的准确性、完整性和可靠性。 实施数据完整性的目的是确保数据的质量。SQL Server允许您根据数据库对象和数据库范围将数据完整性分类为实体完整性、域完整性和引用完整性。实体完整性将数据表中的每一行视为一个实体,并且每一行都必须具有唯一的id。对于域完整性,数据表中指定列的数据必须具有正确的数据类型、格式和有效的数据范围。引用完整性参照表2、约束:约束条件是实现数据库中数据完整性的具体方法。 SQL Server有五种约束条件类型:主密钥约束条件、foreign key约束条件、unique约束条件、check约束条件和default约束条件。四、数据查询1 .查询语句:查询是数据库服务器根据客户端请求搜索用户需要的信息,并按用户指定的格式进行组织,然后返回给客户端。 查询语句select是SQL Server中使用频率最高的语句,select语句可以说是SQL语言的灵魂。select语句的语法结构:select select_listinto new_tableFrom table_sourcewhere search_conditiongroup by group_by_expressionhaving search_conditionorderby_expressionasc|desc参数说明如下:Select子句:指定查询结果返回的列。Into子句:将查询结果存储在新表或视图中。From子句:指定数据源,即包含要使用的列的表或视图。 如果有多个对象,它们之间必须用逗号分隔。Where子句:指定限制返回行的搜索条件。 如果select语句没有where子句,则dbms假定目标表中的所有行都满足搜索条件。Group by子句:指定要放置输出行的组,如果select子句select_list包含聚合函数,则计算每个组的聚合值。Having子句:指定组或聚合函数的搜索条件。 Having通常与groupby子句一起使用。Order by子句:指定结果集的排序方式。 ASC关键字表示升序排序结果,而DESC关键字表示降序排序结果。 如果未指定关键字,则ASC是默认关键字。 如果没有orderby子句,DBMS将根据输入表中的数据存储位置显示数据。在这一系列子句中,select和from子句是必需的,其他子句是可选的。2 .简单查询:2.1,查询列:(1)查询指定列:数据表中有许多列,通常不需要显示所有列。 这是因为用户感兴趣的内容不同。对于指定列的查询,无论数据存储在表中的顺序如何,列的显示顺序都由select子句指定,并且在查询多个列时,每个字段都用“、”分隔。例7-1,检查所有同学的学号、名字和成绩信息。Select stu_id,name,markfrom stu_info查询的结果如下:(2)查询所有列:使用“*”通配符时,查询结果将列出表中所有列的值,而不需要为每列指定列名。 如果您不知道表中每列的列名,这将非常有用。 服务器按用户创建表时声明列的顺序显示所有列。例7-2,检查所有同学的所有信息。select*from stu_info查询的结果如下:(3)运算列的使用:YEAR是系统函数,用于检索指定日期的年份。GEDDATE ()是系统函数,用于检索当前日期和时间。例7-3,调查所有同学的年龄信息。Select stu_id,name,YEAR(getdate()-YEAR(birthday )from stu_info查询的结果如下:(4)变更列标题的显示通常,查询结果中显示的列标题是创建表时使用的列名称,但实际使用时通常会不方便,因此可以使用“列标题”=列名或as“列标题”根据需要更改列标题的显示。例7-4,调查所有同学的年龄信息。Select name as名称,year (getdate () )-year (birthday ) as年龄from stu_info查询的结果如下:(5)删除结果的重复信息使用distinct关键字可以从返回的结果数据集中删除重复的行,从而简化返回的结果。例7-5,查询所有本科信息。Select distinct sdeptfrom stu_info查询的结果如下:(6)返回查询数据的一部分在SQL Server 2008中,可以使用top关键字指定返回一定数量的数据。Top n返回前n行,n返回返回的行数top n percent返回前n%行。例7-6、调查前5名同学的学号、姓名和成绩信息。Select top 5 stu_id,name,markfrom stu_info查询的结果如下:例7-7,查询60%同学的学号、姓名和成绩信息。Select top 60 percent stu_id,name,markfrom stu_info查询的结果如下:2.2、选择行:使用Where子句指定查询条件,使select语句的结果表仅包含满足查询条件的记录。如果使用,where子句必须跟在from子句之后。 Where子句有两种表达式:算术表达式和逻辑表达式,SQL Server对Where子句中查询条件的数量没有限制。(1)使用比较式例7-8,调查所有男生的学生编号、姓名、生日和性别信息。Select stu_id,name,birthday,sexfrom stu_infowhere sex=男人查询的结果如下:例7-9,调查所有总分超过550分的同学的学号、姓名、生日和性别信息。Select stu_id,name,birthday,sexfrom stu_infowhere mark550战斗机查询的结果如下:(2)使用逻辑比较公式例7-10、总分超过550的男学生的信息全部调查。Select stu_id,name,birthday,sexfrom stu_infowhere mark550 and sex=男人查询的结果如下:例7-11,调查所有总分在550分以上的男生信息。Select stu_id,name,birthday,sexFrom stu_infoWhere mark550 or sex=男人查询的结果如下:为了提高程序的可读性,通常使用括号()实现所需的执行顺序,而不考虑缺省优先级。例7-12、查询所有信息学院和会计学院,总分超过550分的同学信息。select*from stu_infowhere (sdept=信息学院or sdept=会计学院) and mark550查询的结果如下:(3)null(null )的判断:如果在创建数据表时未指定not null约束,则数据表中某些列的值可以为null。 null是空的,在数据库中长度为0。例7-13,调查所有出身地都空着的同学的信息。select*from stu_infowhere address is null查询的结果如下:(4)限定数据范围:使用between限制查询的数据范围时,可以用包含“=”和“=”的逻辑表达式替换效果,包括边界值。使用not between的查询不包含边界值,因此可以用包含“”和“”的逻辑表达式替换效果。例7-14,查询总分530560学生信息。select*from stu_infowhere mark between 530与560查询的结果如下:(5)限制检索数据的范围对于某些离散值,而不是列值为连续值的区间,在between关键字中可以使用由SQL Server提供的另一关键字IN。在大多数情况下,OR和IN运算符可以实现相同的功能。例7-15、查询信息学院或会计学院所有同学的信息。select*from stu_infowhere sdept in (信息学院,会计学院)查询的结果如下:(6)模糊检索:在实际的应用中,用户无法总是准确地给出查询条件。 因此,大多需要根据不正确的线索来检索信息。 SQL Server为这种模糊搜索提供了like子句。Like子句通常与通配符一起使用。所有通配符只对like子句有意义。 否则,通配符将被视为普遍字符。每个通配符也可以结合使用,以实现复杂的模糊搜索。(通配符“%”表示任意字符的匹配。通配符“_”仅匹配一个字符。通配符“ )用于指定范围(例如a-z )或集合(例如abcdef )中的任意一个字符。通配符“”用方括号括起来中所述情节,对概念设计中的量体体积进行分析使用like进行模糊搜索时,如果%、_、和符号单独出现,则将其视为通配符。 但是,需要搜索的字符串可能包含一个或多个特殊通配符。 例如,可以在数据表中存储折扣值,包括百分比符号(% )。 要查找用作字符而不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 入职安全生产培训内容课件
- 重庆混凝土管理办法
- 集团相关方管理办法
- 拆迁安置补偿委托合同6篇
- 企业挂牌安全培训课件
- 纪检办案经费管理办法
- 社区私房占用管理办法
- 手术增强现实临床验证-洞察及研究
- 小学法律知识竞赛试题(附答案)
- 2025年应聘书、入职表可视为合同文件吗
- 2025年市级科技馆招聘笔试重点
- 2025年度房屋拆迁补偿安置房买卖协议
- 2025西电考试题及答案
- 南昌市小学二年级 2025-2026 学年数学秋季开学摸底测试卷(人教版)含解读答案
- 2025年先兆流产的护理查房
- 电子竞技赛事策划与组织运营管理方案设计
- 人教版(2024)八年级上册数学全册教案
- 2025年智慧城市信息化运维服务合作合同模板
- 职工职业健康体检实施方案与标准
- 2025年部编版新教材语文九年级上册教学计划(含进度表)
- 2025年多省公务员联考公安基础知识考试真题(附答案)
评论
0/150
提交评论