随笔分类 - SQlserver
摘要:create database dbDemogouse dbDemogocreate table tdstudent{ id int primary key identity(1,1), name varchar(20)}goinsert into table values('kuuga');select @@identity@@IDENTITY返回为当前会话的所有作用域中的任何表最后生成的标识值
阅读全文
摘要:数据分组用来将数据分为多个逻辑组,从而可以对每个组进行聚合运算。SQL语句中使用GROUP BY子句进行分组,使用方式为“GROUP BY 分组字段”。分组语句必须和聚合函数一起使用,GROUP BY子句负责将数据分成逻辑组,而聚合函数则对每一个组进行统计计算。虽然GROUP BY子句常常和聚合函数一起使用,不过GROUP BY子句并不是不能离开聚合函数而单独使用的,虽然不使用聚合函数的GROUP BY子句看起来用处不大,不过它能够帮助我们更好的理解数据分组的原理,所以本小节我们将演示GROUP BY子句的分组能力。GROUP BY子句中可以指定多个列,只需要将多个列的列名用逗号隔开即可。指定
阅读全文
摘要:一个公司的数据库系统也是由DBA 来进行管理的,它们的主要工作如下:l 安装和配置数据库,创建数据库以及帐户;l 监视数据库系统,保证数据库不宕机;l 收集系统统计和性能信息以便进行调整;l 发现性能糟糕的SQL,并给开发人员提出调优建议;l 管理数据库安全性;l 备份数据库,当发生故障时要及时恢复;l 升级DBMS并且在必要时为系统安装补丁;l 执行存储和物理设计,均衡设计问题以完成性能优化;
阅读全文
摘要:索引可以创建在任意表和视图的列字段上,索引中包含键值,这些键值存储在一种数据结构(B-树)中,通过键值可以快速地找到与键值相关的数据记录。SQL Server 提供了两种形式的索引, 即聚集索引(Clustered ) 和非聚集索引(Nonclustered)。聚集索引根据键的值对行进行排序,所以每个表只能有一个聚集索引。非聚集索引不根据键值排序,索引数据结构与数据行是分开的。由于非聚集索引的表没有按顺序进行排列,所以查找速度明显低于带聚集索引的表。SQL Server 2008 提供的索引型具体包括以下几种。 聚集索引:根据索引的键值,排序表中的数据并保存。 非聚集索引:索引的键值包含指
阅读全文
摘要:1、字符串 字符数据类型是SQL Server 中最常用的数据类型之一,它可以用来存储各种字母、数字符号和特殊符号。在使用字符数据类型时,需要在其前后加上英文单引号或者双引号。(1)char:当用char 数据类型存储数据时,每个字符和符号占用1 个字节的存储空间。 其定义形式为:char(n) 其中,n 表示所有字符所占的存储空间,n 的取值为1~8000。若不指定n 值,系统默认n 的值为1。若输入数据的字符串长度小于n,则系统自动在其后添加空格来填满设定好的空间。若输入的数据过长,将会截掉其超出部分。如果定义了一个char 数据类型,而且允许该列为空,则该字段被当作varchar 来处理
阅读全文
摘要:--1.使用事务定义与提交命令在数据库studentcourse中创建一个--“综合表”(学号,姓名,性别,民族),并为它插入3行数据,观察--提交之前和之后的浏览与回滚情况。create table zonghe(sno varchar(10) primary key,sname varchar(10),ssex char(2),sjg char(10))select @@TRANCOUNT as trancountgobegin transaction addzongheinsert into zonghe(sno,sname,ssex,sjg)values('Q0403'
阅读全文
摘要:1SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。Join 和 Key有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。除了我们在上面的例子中使用的 INNER JOIN(内连接),我们还可以使用其他几种连接。下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。JOIN: 如果表中有至少一个匹配,则返回行L
阅读全文
摘要:1.sql常用日期函数当我们在进行数据处理的时候,常常需要用到日期函数的计算,最难的任务恐怕是确保所插入的日期的格式,与数据库中日期列的格式相匹配。只要数据包含的只是日期部分,运行查询就不会出问题。但是,如果涉及时间,情况就有点复杂了。在讨论日期查询的复杂性之前,我们先来看看最重要的内建日期处理函数。1)GETDATE() 函数从 SQL Server 返回当前的时间和日期。SELECT GETDATE() AS CurrentDateTime 上面的时间部分精确到毫秒。创建日期相关的表CREATE TABLE Orders (OrderId int NOT NULL PRIMARY KEY,
阅读全文
摘要:--1.在数据库studentcourse中创建存储过程。存储过程名为proc_1,if exists(select name from sysobjects wherename='proc_1' and type='p')drop procedure proc_1gocreate proc proc_1@stsno varchar(6)asselect s.学号,s.姓名,s.性别,SC.成绩,SC.课程号,c.课程名 from s ,sc,c where s.学号=@stsno and SC.学号=s.学号 and SC.课程号=c.课程号goexecute
阅读全文
摘要:1 1.在学生选课数据库studentcourse中新建一名为stud_view的视图, 2 该视图可以让我们看到每个学生的姓名,选修的课程名和成绩。 3 create view stu_view 4 as 5 select s.姓名,c.课程名,SC.成绩 from s,c,SC where s.学号=SC.学号 and SC.课程号=c.课程号 6 select * from stu_view 7 2利用stud_view1视图,查看平均成绩在80分以上的学生姓名。 8 select 姓名,avg(成绩)from stu_view group by 姓名 having avg(成绩)>
阅读全文
摘要:1.查询每个学生出生30个月和30个星期后的日期。格式:DATEADD (日期参数, 数字, 日期) 功能: 在向指定日期加上一段时间的基础上,返回新的 datetime 值。日期参数规定了新值的类型。参数有:Year、Month、Day、Week、Hour select s.姓名,s.出生日期,dateadd(MONTH,30,s.出生日期)as newmonth, DATEADD(week,30,s.出生日期)as newweek from s 2.创建一个视图,如果某个学生所有课程成绩的平均分小于60,那么设置奖学金类 型为“三等奖”;如果大于或等于90,则设置奖学金类型为“一等奖”..
阅读全文
摘要:--第2_1题创建数据库create database Student201038897041on primary (name='student1',filename='F:\coures\SQL Server数据库应用\student\data\student1.mdf',size=10MB,maxsize=100MB,filegrowth=10%),filegroup[group1](name=N'student2',filename=N'F:\coures\SQL Server数据库应用\student\mydb\Student2.
阅读全文
摘要:--第2_1题创建数据库create database Student201038897041on primary (name='student1',filename='F:\coures\SQL Server数据库应用\student\data\student1.mdf',size=10MB,maxsize=100MB,filegrowth=10%),filegroup[group1](name=N'student2',filename=N'F:\coures\SQL Server数据库应用\student\mydb\Student2.
阅读全文