SQLServer2008数据库—创建、建表、查询语句.pdf
《SQLServer2008数据库—创建、建表、查询语句.pdf》由会员分享,可在线阅读,更多相关《SQLServer2008数据库—创建、建表、查询语句.pdf(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、SQL Server 2008 数据库-创建、建表、查询语句 一、创建数据库 1、利用对象资源管理器创建用户数据库:(1)选择“开始”“程序Microsoft SQL Server 2008SQL Server Management Studio 命令,打开 SQL Server Management Studio。(2)使用“Windows 身份验证”连接到 SQL Server 2008数据库实例。(3)展开 SQL Server 实例,右击“数据库”,然后人弹出的快捷菜单中选择“新建数据库存”命令,打开“新建数据库”对话框。(4)在“新建数据库”对话框中,可以定义数据库的名称、数据库的所
2、有者、是否使用全文索引、数据文件和日志文件的逻辑名称和路径、文件组、初始大小和增长方式等。输入数据库名称 student.2、利用 T-SQL 语句创建用户数据库:在 SQL Server Management Studio 中,单击标准工具栏的“新建查询”按钮,启动 SQL 编辑器窗口,在光标处输入 T-SQL 语句,单击“执行”按钮。SQL 编辑器就提交用户输入的 T-SQL 语句,然后发送到服务器执行,并返回执行结果。创建数据库 student 的 TSQL 语句如下:Create data base student On primary(name=student_data,filena
3、me=E:SQL Server2008 SQLFULL_CHSMicrosoft SQL ServerMSSQL10。MSSQLSERVERMSSQLDATAstudent_data.mdf,size=3,maxsize=unlimited,filegrowth=1)Log on(name=student_log,filename=E:SQL Server2008 SQLFULL_CHSMicrosoft SQL ServerMSSQL10.MSSQLSERVERMSSQLDATAstudent_log.ldf,size=1,maxsize=20,filegrowth=10)二、创建数据表 1
4、、利用表设计器创建数据表:(1)启动 SQL Server Management Studio,连接到 SQL Server 2008 数据库实例。(2)展开 SQL Server 实例,选择“数据库”student“表,单击鼠标右键,然后从弹出的快捷菜单中选择“新建表”命令,打开“表设计器”.(3)在“表设计器”中,可以定义各列的名称、数据类型、长度、是否允许为空等属性。(4)当完成新建表的各个列的属性设置后,单击工具栏上的“保存按钮,弹出“选择名称”对话框,输入新建表名 stu_info,SQL Server 数据库引擎会依据用户的设置完成新表的创建。2、利用 TSQL 语句创建数据表:C
5、reate table stu_info(stu_id char(10)not null,name nvarchar(20)not null,birthday date null,sex nchar(2)null,address nvarchar(20)null,mark int null,major nvarchar(20)null,sdept nvarchar(20)null);3、样本数据库 student 表数据:学生信息表(stu_info):课程信息表(course_info):学生成绩表(stu_grade):三、完整性与约束 数据库中的数据是现实世界的反映,数据库的设计必须能够
6、满足现实情况的实现,即满足现实商业规则的要求,这也是数据完整性的要求。在数据库的管理系统中,约束是保证数据库中数据完整性的重要方法。1、完整性:数据完整性是数据库设计方面一个非常重要的问题,数据完整性代表数据的正确性、一致性和可靠性.实施数据完整性的目的在于确保数据的质量。在 SQL Server 中,根据数据完整性措施所作用的数据库对象和范围不同,可以将数据完整性分类为实体完整性、域完整性和参照完整性。实体完整性把数据表中的每行看作一个实体,它要求所有的行都具有唯一的标识;域完整性要求数据表中指定列的数据具有正确的数据类型、格式和有效的数据范围;参照完整性维持被参照表和参照表之间的数据一致性
7、。2、约束:约束是数据库中的数据完整性实现的具体方法。在SQL Server 中,包括 5 种约束类型:primary key 约束、foreign key 约束、unique 约束、check 约束和 default约束。四、数据查询 1、查询语句:查询就是根据客户端的要求,数据库服务器搜寻出用户所需要的信息资料,并按用户规定的格式进行整理后返回给客户端。查询语句 select 在 SQL Server 中是使用频率最高的语句,可以说 select 语句是 SQL 语言的灵魂。select 语句的语法结构:select select_list into new_table From tabl
8、e_source where search_condition group by group_by_expression having search_condition Order by order_expressionasc|desc 参数说明如下:Select子句:指定由查询结果返回的列。Into子句:将查询结果存储到新表或视图中.From子句:用于指定数据源,即使用的列所在的表或视图。如果对象不止一个,那么它们之间必用逗号分开.Where子句:指定用于限制返回的行的搜索条件。如果select语句没有where子句,dbms假设目标表中的所有行都满足搜索条件。Group by子句:指定用来
9、放置输出行的组,并且如果select子句select_list中包含聚合函数,则计算每组的汇总值。Having子句:指定组或聚合函数的搜索条件.Having通常与groupby子句一起使用。Order by子句:指定结果集的排序方式。ASC关键字表示升序排列结果,DESC关键字表示降序排列结果.如果没有指定任何一个关键字,那么ASC就是默认的关键字。如果没有orderby子句,DBMS将根据输入表中的数据的存放位置来显示数据。在这一系列的子句中,select子句和from子句是必需的,其他的子句根据需要都是可选的。2、简单查询:21、查询列:(1)查询指定列:数据表中有很多列,通常情况下并不需
10、要查看全部的列,因为不同的用户所关注的内容不同。在指定列的查询中,列的显示顺序由 select 子句指定,与数据在表中的存储顺序无关;同时,在查询多列时,用“,”将各字段隔开。例 71、查询所有同学学号、姓名和成绩信息.Select stu_id,name,mark from stu_info 查询结果如下:(2)查询所有列:使用“”通配符,查询结果将列出表中所有列的值,而不必指明各列的列名,这在用户不清楚表中各列的列名时非常有用.服务器会按用户创建表格时声明列的顺序来显示所有的列。例 7-2、查询所有同学的所有信息。select*from stu_info 查询结果如下:(3)使用运算列:Y
11、EAR 为系统函数,获取指定日期的年份;GEDDATE()为系统函数,获取当前日期和时间。例 7-3、查询所有同学的年龄信息.Select stu_id,name,YEAR(getdate())YEAR(birthday)from stu_info 查询结果如下:(4)改变列标题显示:通常在查询结果显示的列标题就是创建表时所使用的列名,但是,这在实际使用中往往会带来一些不便,因此,可以利用 列标题=列名或 as 列标题 来根据需要修改列标题的显示.例 74、查询所有同学的年龄信息.Select name as姓名,YEAR(getdate())YEAR(birthday)as年龄 from s
12、tu_info 查询结果如下:(5)除去结果的重复信息:使用 distinct 关键字能够从返回的结果数据集合中删除重复的行,使返回的结果更简洁。例 7-5、查询所有的院系信息.Select distinct sdept from stu_info 查询结果如下:(6)返回查询的部分数据:在 SQL Server 2008 中,提供了 top 关键字让用户指定返回一定数量的数据。Top n 表示返回最前面的 n 行,n 表示返回的行数;top n percent 表示返回前面的 n%行。例 76、查询前 5 位同学的学号、姓名和成绩信息.Select top 5 stu_id,name,mar
13、k from stu_info 查询结果如下:例 7-7、查询 60%同学的学号、姓名和成绩信息。Select top 60 percent stu_id,name,mark from stu_info 查询结果如下:22、选择行:Where 子句用于指定查询条件,使得 select 语句的结果表中只包含那些满足查询条件的记录。在使用时,where 子句必须紧跟在 from 子句后面。Where 子句中的条件表达式包括算术表达式和逻辑表达式两种,SQL Server对 Where 子句中的查询条件的数目没有限制。(1)使用比较表达式:例 7-8、查询所有的男同学学号、姓名、生日和性别信息。Se
14、lect stu_id,name,birthday,sex from stu_info where sex=男 查询结果如下:例 7-9、查询所有的总分大于 550 分的同学学号、姓名、生日和性别信息。Select stu_id,name,birthday,sex from stu_info where mark550 查询结果如下:(2)使用逻辑比较表达式:例 710、查询所有总分大于 550 的男同学信息。Select stu_id,name,birthday,sex from stu_info where mark550 and sex=男 查询结果如下:例 711、查询所有总分大于 5
15、50 分或男同学信息。Select stu_id,name,birthday,sex From stu_info Where mark550 or sex=男 查询结果如下:为了增强程序可读性,一般采用括号()来实现需要的执行顺序,而不考虑其默认的优先级顺序。例 7-12、查询所有信息学院和会计学院并且总分大于550 分的同学信息.select*from stu_info where(sdept=信息学院or sdept=会计学院)and mark550 查询结果如下:(3)空值(null)的判断:如果在创建数据表时没有指定 not null 约束,那么数据表中某些列的值就可以为 null.所
16、谓 null 就是空,在数据库中,其长度为 0。例 7-13、查询所有籍贯为空的同学信息.select*from stu_info where address is null 查询结果如下:(4)限定数据范围:使用 between 限制查询数据范围时同时包括了边界值,效果完全可以用含有“=和“和“的逻辑表达式来代替。例 7-14、查询总分在 530560 之间的同学信息。select*from stu_info where mark between 530 and 560 查询结果如下:(5)限制检索数据的范围:对于列值不在一个连续的取值区间,而是一些离散的值,利用 between 关键字就无
17、能为力了,可以利用 SQL Server 提供的另一个关键字 IN。在大多数情况下,OR 运算符与 IN 运算符可以实现相同的功能。例 7-15、查询所有在信息学院或会计学院就读的同学信息。select*from stu_info where sdept in(信息学院,会计学院)查询结果如下:(6)模糊查询:在实际的应用中,用户不会总是能够精确的给出查询条件。因此,经常需要根据一些并不确切的线索来搜索信息。SQL Server 提供了 like 子句来进行这类模糊搜索。Like 子句在大多数情况下会与通配符配合使用。所有通配符只有在 like 子句中才有意义,否则通配符会被当作普遍字符处理。
18、各通配符也可以组合使用,实现复杂的模糊查询。(通配符“”表示任意字符的匹配;通配符“_”只能匹配任何单个字符;通配符“”用于指定范围(如az)或集合(如abcdef)中的任何单个字符;通配符“”用于匹配没有在方括号中列出的字符。)在使用 like 进行模糊查询时,当“、“_”和“”符号单独出现时,都会被作为通配符进行处理.但是有时可能需要搜索的字符串包含量一个或多个特殊通配符,例如,数据表中可能存储含百分号(%)的折扣值。若要搜索作为字符而不是通配符的百分号,必须提供escape 关键字和转义符,例如,“like B%escape B”就是使用了 escape 关键字定义了转义字符 B,将字符
19、串“%B”中的第二个百分号()作为实际值,而不是通配符。例 7-16、查询所有姓“张”的同学信息.select from stu_info where name like 张 查询结果如下:例 7-17、查询所有姓“张”,而且姓名是两个字的同学信息。select*from stu_info where name like 张_ 查询结果如下:例 7-18、查询所有姓“张”或姓“王”的同学信息。select*from stu_info where name like 张王 查询结果如下:例 719、查询所有不姓“张”也不姓“王”的同学信息.select from stu_info where n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQLServer2008 数据库 创建 建表 查询 语句
限制150内