第一篇:SQL各种约束总结
SQL Server 各种约束总结
NOT NULL约束
Not null ,即不为空。Not null 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。
添加此约束有两种方法:
方法一
在表设计器中直接勾选即可。如下图:
方法二
SQL语句添加约束。CATE TABLE table_name(ATTRIBUTE Type NOT NULL;);
点击新建查询,在查询界面中输入相应的SQL语句。
PRIMARY KEY约束
primary key,顾名思义,即主键,也称主码。在表中一行称一个元组,如果存在某个属性或几个属性,其值能唯一标识表中的某一行,这样的一个属性或多个属性就能作为表的primary key。
为一个表设置主码约束有以下三种方法:若主键设置成功,在相应的属性旁边会有一把小钥匙。
方法一
直接右击所要设置的属性,选择设置主键。
方法二
选中要设置的属性,直接点击图箭头所指的小钥匙。
方法三
用SQL语言在设计表时同时添加约束。
CREATE TABLE table name(Attribute1 Type PRIMARY KEY,);
FOREIGN KEY
外键约束是用来加强两个表(主表和从表)的一列或多列数据之间的连接的。创建外键约束的顺序是先定义主表的主键,然后定义从表的外键。也就是说只有主表的主键才能被从表用来作为外键使用,被约束的从表中的列可以不是主键,主表限制了从表更新和插入的操作。
方法一
右键单击需要设置外键的列(此时的表是作为从表在外键中出现),选择关系。
接下来点击添加--> 表和列规范。
在主键表中选择主表和主表的主键列。
设置完后保存即可。
方法二
SQL语句
UNIQUE 约束
UNIQUE约束唯一标识数据库表中的每一条记录。
附加:UNIQUE约束和PRIMARY KEY约束的区别:
UNIQUE和PRIMARY KEY约束均为列或列集合提供了唯一性的保证;
PRIMARY KEY约束拥有自动定义的UNIQUE约束;
每个表中可以有多个UNIQUE约束,但是只有有一个PRIMARY KEY约束。
方法一
右键单击要设置的列选择索引 / 键。
然后单击添加按钮。
选择需要设置的列,可以是一列也可以是多列的组合。
关闭并保存设置。
方法二
SQL语句
DEFAULT 约束
DEFAULT约束用于向列中插入默认值。如果没有规定其他的值,那么会将默认值添加到所有的新记录。
方法一
以学生信息表为例,在表设计器中,为性别 sex 列填写默认值男。
方法二
SQL语句
CREATE TABLE table_name(Attribute type constraint,);
CHECK 约束
CHECK 约束用于限制列中的值的范围。
如果对单个列定义 CHECK 约束,那么该列只允许特定的值。
如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。
Check 约束通过逻辑表达式来判断数据的有效性,用来限制输入一列或多列的值的范围。在列中更新数据时,所要输入的内容必须满足 Check 约束的条件,否则将无法正确输入。方法一
以学生信息表中的 sex 为例,我们要限制 sex 列的值只能为男或女。
关闭并保存设计。
方法二
CREATE TABLE Persons(Id_P int NOT NULL CHECK(Id_P>0), LastName varchar(255)NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255))如果需要命名 CHECK 约束,以及为多个列定义 CHECK 约束,请使用下面的 SQL 语法:
CREATE TABLE Persons(Id_P int NOT NULL, LastName varchar(255)NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT chk_Person CHECK(Id_P>0 AND City='Sandnes'))
第二篇:约束(sql 语句)
use stuinfo
alter table student
add 入学时间 datetime
go
use stuinfo
alter table student
add ID char(20)
use stuinfo
alter table student
add constraint check_1 check(datediff(day,birthday,getdate())>=365*18)use stuinfo
alter table student
add constraint check_2 check(len(ID)=18)
go
use stuinfo
update student
set ID='***321'
where S_number='040102'
use stuinfo
alter table student
add constraint check_3 check(Politics='党员' or Politics='团员' or Politics='群众' or Politics='')
第三篇:SQL语言总结
select 姓名,sum(成绩)as 总分from 学生 inner join 成绩 on 学生.学号=成绩.学号 group by 姓名 答:从通过学号建立的学生与成绩关系表中选择选择学生成绩的姓名集合Update 学生成绩表 set 高数=93
Where 高数=80;
答:将“学生成绩表”中所有“高数”为80分的记录的改为93分
Select 学号,姓名
From 学生
Where 专业=“计算机应用”;
答:查询出专业为“计算机应用”的所有男生的学号和姓名
Select 学号,姓名
From 学生
Where 年龄>=18 and姓名like“王*”;
答:显示学生表中年龄大于18岁且姓“王”的学生的所有信息。
Select Count(性别)as 男生人数
From 学生
Where 性别=“男”;
答:分别显示男生人数
Select 课程.课程编号, 课程.课程名, 成绩.学生编号, 成绩.成绩 From 课程 Inner Join 成绩 on 课程.课程编号 = 成绩.课程编号 Where(课程.课程名)=“数据库原理”and(成绩.成绩)>70;
答:查找“数据库原理”课程成绩在70分以上学生的学号、姓名和成绩
Select top 3 学号, 姓名
From 学生
Order by 成绩 Desc;
答:显示成绩前3名的学生的学号和姓名
SELECT 学生.学生编号, 学生.学生姓名, 课程.课程编号, 课程.课程名, 成绩.成绩, 班级.班级编号
FROM 课程 INNER JOIN(班级 INNER JOIN(成绩 INNER JOIN 学生 ON 成绩.学生编号=学生.学生编号)ON 班级.班级编号=学生.班级编号)ON 课程.课程编号=成绩.课程编号
WHERE(((课程.课程名)=“计算机基础”)AND((班级.班级编号)=“0401”));
答:查询0401课程成绩
SELECT 学生编号, 学生姓名, 性别, 出生年月, 籍贯, 身高, 班级编号
FROM 学生
WHERE 性别=“男” AND 班级编号=“0401”;
答:查找班级编号为0401的所有男生
UPDATE 成绩 SET 成绩 =((成绩*0.1)+成绩)
WHERE 成绩<60;
答:低于60分的增加10%
SELECT 课程.课程编号, 课程.课程名, 课程.学时, 课程.学分, 教师.教师编号, 教师.教师姓名, 教师.性别, 教师.职务
FROM 课程 INNER JOIN 教师 ON 课程.教师编号=教师.教师编号;答: 教师授课课程查询
SELECT 教研室编号, 教师人数
FROM 教研室;
答:教研室人数查询
SELECT 课程编号, 课程名, 学时
FROM 课程;
答:课程名称查询
SELECT avg(成绩)AS平均成绩
FROM 成绩;
答:平均成绩查询
SELECT avg(身高)AS平均身高
FROM 学生
WHERE 性别=“男”;
答:求出男生的平均身高
SELECT 学生编号, Avg(成绩)AS平均成绩, Sum(成绩)AS 总成绩 FROM 成绩
GROUP BY 学生编号;
答:求学生的平局成绩和总成绩
UPDATE 学生 SET 学生编号 = “050211”
WHERE 学生编号=“050101”;
答:修改学生编号
alter table 学生 add 身高 smallint;
答:增加身高字段
第四篇:SQL实验报告总结
《数据库系统概论(第四版)》
体
会
学号: 姓名: 班级: 教师:
学
期实 验 总 结 与 心 得
【实验名称】 数据库的创建 【实验内容】
1、新建sql注册表。
2、新建数据库。主数据文件:逻辑文件名为student_data,物理文件名为student.mdf,初始大小为10mb,最大尺寸为无限大,增长速度为10%;
数据库的日志文件:逻辑名称为student_log,物理文件名为student.ldf,初始大小为1mb,最大尺寸为5mb,增长速度为 1mb
3、修改已注册的sql server属性为使用sql server身份验证。
【实验名称】 数据库的附加、分离、导入导出及分离 【实验内容】 1.数据库文件的附加与分离(转载于:sql实验报告总结)2.数据库文件的导入和导出 3..数据库的删除 4.修改数据库
【实验名称】 数据库的创建(书中作业)【实验内容】 1.在数据库student中创建一个学生基本信息表 1.用企业管理其创建表 2.用查询分析器创建表 2.sql server 2005的系统数据类型分为哪几类?常用的数据类型有哪些?
答:字符串类型、整型、长整型、短整型、浮点数类型、定点数类型、日期、时间。常用的数据类型有:字符串类型、整型、长整型、短整型、浮点数类型、定点数类型、日期、时间
3.在数据库student中创建一个名为t_couse(课程信息表)1.用企业管理其创建t_course表 2.用查询分析器创建t_course 4.在数据库student中创建一个名为t_score(学生成绩)的表 5.sql server 2005 中有多少种约束?其作用分别是什么
答:非空约束,作用指定某一列不允许空值有助于维护数据的完整性,因为这样可以确保行中的列永远保护数据。
主键约束,作用可以保证实体的完整性,是最重要的一种约束。唯一约束,作用指定一个或多个列的组合值具有唯一性,以防止在列中输入重复的值。
检查约束,作用对输入列或者整个表中的值设置检查条件,以限制输入值,保证数据库数据的完整性。
默认约束,作用指定在插入操作中如果没有提供输入值。怎系统自动指定值。外键约束,作用主要用来维护两个表之间数据的一致性。6.分别为t_course表和t_score表创建唯一性约束、检查约束、默认约束。篇二:sql server综合实验报告
华北科技学院计算机系综合性实验
实 验 报 告 课程名称 数据库系统 实验学期 2010 至 2011 学年 第 二 学期
学生所在系部 计算机系 年级 二年级 专业班级
网络工程b093班
学生姓名
沈亚强
学号
200907024313
任课教师
郭红 实验成绩
计算机系制
实验报告须知
1、学生上交实验报告时,必须为打印稿(a4纸)。页面空间不够,可以顺延。
2、学生应该填写的内容包括:封面相关栏目、实验地点、时间、目的、设备环境、内容、结果及分析等。
3、教师应该填写的内容包括:实验成绩、教师评价等。
4、教师根据本课程的《综合性实验指导单》中实验内容的要求,评定学生的综合性实验成绩;要求在该课程期末考试前将实验报告交给任课教师。综合性实验
中,所涉及的程序,文档等在交实验报告前,拷贝给任课教师。任课教师统一
刻录成光盘,与该课程的期末考试成绩一同上交到系里存档。
5、未尽事宜,请参考该课程的实验大纲和教学大纲。《
数据库系统
》课程综合性实验报告 篇三:数据库上机实验报告+总结
数据库集中上机报告
学 生: 马志鹏 学 号: 0221090118 班 级: 02210901 专
业:计算机应用技术 重庆邮电大学移通学院 2011年6月
第一天:access数据库基本操作 1 实验目的
1、熟悉的掌握access数据库结构与创建
2、了解创建、修改、删除、查询、保存等操作
3、输入数据创建、设计器创建、向导创建。2 实验内容 3 实验结果
1.2.2 2 access数据表的编辑
第二天 数据表基本操作 1 表关系与编辑数据 1 实验目的:
1、实现一对一,一对多,多对多的实体关系
2、对“学生基本信息”表中的记录进行排序,按出生日期降序排列
3、从“学生基本信息”表中筛选出所有计算机系男生的记录
4、从“学生基本信息”表中筛选出回族和蒙古族的所有学生记录 3 2 实验内容
1.select 学生基本信息表.学生姓名, 成绩档案表.* from 成绩档案表 inner join 学生基本信息表 on 成绩档案表.学生学号 = 学生基本信息表.学生学号
where(((学生基本信息表.学生姓名)=张冰冰));2 select 学生基本信息表.* from 学生基本信息表 where(((学生基本信息表.性别)=男)and((学生基本信息表.班级名称)=计算机系));3 select 成绩档案表.c语言, 课程表.* from 成绩档案表, 课程表;4 select 学生基本信息表.*, 学生基本信息表.性别, 学生基本信息表.班级名称 from 学生基本信息表 where(((学生基本信息表.性别)<>男)and((学生基本信息表.班级名称)<>计算机系));5 select 学生基本信息表.*, 学生基本信息表.出生日期 from 学生基本信息表 where(((month([出生日期]))=9)and((day([出生日
期]))=1));6 select 学生基本信息表.* from 学生基本信息表 where(((学生基本信息表.学生姓名)like 李*));3 实验结果 4 第3天 sql查询设计 1 sql语言查询 1 实验目的:
熟悉了解sql语句 5 篇四:sqlserver实验报告—数据库和表的创建
数据库实验报告
课程名称信息系统数据库技术 实验名称 数据表的管理 专业班级
姓 名
学 号 实验日期
实验地点 2012—2013学 第 一 学期 篇五:数据库上机实验报告sql server 2000 课程代码:1010000450 数据库 database 学分:3 总学时:48 实验学时:16 面向专业:信息与计算科学,数学与应用数学
一、实验教学目标
数据库是计算机科学与技术专业的专业必修课程。课程内容主要包括:数据模型、关系代数、关系数据库标准语言sql、关系系统、关系数据理论、数据库设计方法。学习本课程的过程中,只有通过上机实验,才能使学生真正深层次了解数据库系统的体系结构,掌握数据库系统的基础理论、技术和方法,掌握主流数据库管理系统sql server 2000的应用技术及数据库应用系统的设计、开发能力。
二、实验教学基本要求
认真阅读教材中与实验相关的章节内容,提前做好实验准备,做到在每个实验前明确实验目的、掌握实验的基本内容及操作方法;在实验中正确使用实验设备,认真观察、分析实验结果;实验后要根据要求做好总结,写出实验报告。
三、实验教材或实验指导书
《数据库系统概论》,萨师煊 王珊主编,高等教育出版社
四、考核方式与评分办法 实验成绩评定分两部分:上机实验操作占50%,实验报告占50%。
五、实验项目设置
六、实验内容与实验方式
实验一
安装sql server 2000
(一)实验内容 1.安装microsoft的数据库服务软件sql server 2000。以sql server2000企业版为例安装教程
第一步:打开安装文件中的“autorun”文件,安装程序会自动运行出现版本选择界面,我们以选择企业版为例。
第二步:在接下来的界面中选择“安装数据库服务器”选项。
第三步:这时出现安装向导,出现“计算机名”窗口。“本地计算机”是默认选项,其名称就显示在上面,我们按其默认点“下一步”。
第四步:接下来,在“安装选择”对话窗口中,同样按其默认项“创建新的sql server实例,或安装客户端工具”点下一步。
第五步:在 用户信息 窗口,输入用户信息,并接受软件许可证协议。
第六步:在 安装定义窗口,选择 服务器和客户端工具 选项进行安装。我们需要将服务器和客户端同时安装,这样在同一台机器上,我们可以完成相关的所有操作,对于我们学习sql server很有用处。如果你已经在其它机器上安装了sql server,则可以只安装客户端工具,用于对其它机器上sql server的存取。
第七步:在 实例名 窗口,选择 默认 的实例名称。这时本sql server的名称将和windows 2000服务器的名称相同。第八步:在 安装类型 窗口,选择 典型 安装选项,并指定 目的文件夹。
第九步:在 服务账号 窗口,请选择 对每个服务使用统一账户...的选项。在 服务设置 处,选择 使用本地系统账户。如果需要 使用域用户账户 的话,请将该用户添加至windows server的本机管理员组中。
第十步:在 身份验证模式 窗口,请选择 混合模式...选项,并设置管理员sa账号的密码。如果需要更高的安全性,则可以选择 windows身份验证模式,这时就只有windows server的本地用户和域用户才能使用sql server了。
第十一步:在 选择许可模式 窗口,根据您购买的类型和数量输入(0表示没有数量限制)。每客户表示同一时间最多允许的连接数,处理器许可证表示该服务器最多能安装多少个cpu。笔者这里选择了 每客户 并输入了100作为示例。
第十二步:约10多分钟的安装时间,然后打开开始菜单下的sql子目录下的企业管理器。2.熟悉软件的使用以及各个组成部分。
第一:打开企业管理器,可以对本地的数据进行管理,也可以登录服务器端,即可以远程操作自己的数据库 ;
第二:登录查询分析器,可以通过sql管理语句,对数据库进行管理。
(二)实验方式与分组要求
老师先讲解十分钟,学生上机操作数据库sql server2000,最后老师检查操作结果。每次86组,每组1人。
实验二
启动sql server2000和建库、表
(一)实验内容 1.启动数据库服务软件sql server 2000。第一步:打开企业管理器,可以登录服务器端,即可以远程操作自己的数据库,登录步骤如下; 第二步:左侧方框中控制台根目录的子目录的sql server组上,右击,并新建sql server注册„; 第三步:在“服务器”一栏里输入想要登录的服务器ip地址,选择使用sql server身份验证,写入登录名和密码,就可以登录了。
第四步:登录查询分析器,可以通过sql管理语句,对数据库进行管理。2.在sql server 2000中建立数据库。
第一步:通过企业管理器进入服务器端以后,可以在数据库文件里“新建数据库”。第二步:输入数据库名称。
第三步:通过相关需求对数据库的相关属性进行设置,然后完成。3.在数据库上建立表。第一步:登录企业管理器
第二步:进入自己的database,并打开“表”选项;
第三步:在表选项右侧空白处,点击右键,选择“新建表„”;
第四步:在弹出的窗口中,分别填写列名,数据类型,长度和是否允许空值,然后关闭窗口。第五步:关闭窗口会弹出是否保存表,选择是,接下来弹出的窗口中填写表名即可。
(二)实验方式与分组要求
老师先讲解十分钟,学生上机操作数据库sql server2000,最后老师检查操作结果。每次86组,每组1人。
实验三
sql server2000查询分析器
(一)实验内容 1.启动数据库服务软件sql server 2000的查询分析器。第一步:在登录企业管理器的前提下,登录查询分析器。
第二步:登录查询分析器与登录企业管理器类似,需要输入ip地址或者如果是本地数据库,直接用windows身份验证即可。2.在查询分析器中建立表。
第一步:在查询分析器命令栏里输入以下语句: 定义一个学生-课程模式s-t create schema “s-t” authorization wang /*为用户wang定义了一个模式s-t*/ 然后点击“分析查询”和“执行查询”。第二步:在查询分析器命令栏里输入以下语句:
建立“学生”表student,学号是主码,姓名取值唯一 create table student(sno
char(9)primary key, /* 列级完整性约束条件*/ sname char(20)unique, /* sname取唯一值*/ ssex char(2), sage smallint, sdept char(20));然后点击“分析查询”和“执行查询”。
(二)实验方式与分组要求
老师先讲解十分钟,学生上机操作数据库sql server2000,最后老师检查操作结果。每次86组,每组1人。
实验四
sql语言的ddl
(一)实验内容 1.用如下语句对表进行操作:create table 建表;drop table 删除表;alter table 更改表。
create table student(sno char(4)primary key)drop table student /*当student表与其他数据有级联关系或者其他关系时,不能删除。*/ alter table student add s_entrance date null/*向student表增加“入学时间”列,其数据类型为日期型*/ alter table student drop column sno /*删除student表中的sno这一列,含有以下关系的列不能被删除: ? 被复制列。
? 用在索引中的列。
? 用在 check、foreign key、unique 或 primary key 约束中的列。? 有相关联的默认值(由 default 关键字定义)的列,或绑定到默认对象的列。? 绑定到规则的列。*/ 2.用如下语句对视图进行操作:create view 建视图;drop view 删除视图。/*创建一个is_student视图,视图中返回来自于表student中sdept=’is’的所有学生的sno,sname,sage列*/ create view is_student
as
select sno,sname,sage
from student where sdept=is /*删除is_student视图*/ drop view is_student 3.如下语句对索引进行操作:create index 建立索引;drop index 删除索引。/*创建一个stusname索引,在student 表中以sname列升序排列*/ create clustered index stusname on student(sname)/*删除student表中的stusname索引*/ drop index student.stusname
(二)实验方式与分组要求
老师先讲解十分钟,学生上机操作数据库sql server2000,最后老师检查操作结果。每次86组,每组1人。
实验五 sql语言的dml
(一)实验内容 1.启动数据库服务软件sql server 2000的查询分析器,用insert语句对表进行插入操作。/*将一个新学生元组(学号:200215128;姓名:陈冬;性别:男;所在系:is;年龄:18岁)插入到student表中*/ insert into student(sno,sname,ssex,sdept,sage)values(200215128,陈冬,男,is,18)/*学生张成民的信息插入到student表中*/ insert into student values(200215126,张成民,18,cs,男)/*对表student中每一个系,求学生的平均年龄,并把结果存入表dept_age表中。*/ 第一步:create table dept_age(sdept char(15), /* 系名*/ avg_age smallint)/*学生平均年龄*/ 第二步:insert into dept_age(sdept,avg_age)
select sdept,avg(sage)from student group by sdept 2.用update语句对表中已有的记录进行修改。/*将学生200215121的年龄改为22岁*/ update student set sage=22 where sno=200215121 /*将所有学生的年龄增加1岁*/ update student set sage= sage+1 /*将cs系全体学生的成绩置零*/ update sc set grade=0 where cs=(select sdept from student where student.sno = sc.sno)3.用delete语句对表中已有的记录进行删除。
第五篇:SQL学习总结
上个星期,自主学习了SQL Server,基本了解了SQL Server的语法知识和结构,对SQL 有了一定的认识,现在我就对我这一星期对SQl的 学习做一个总结:
为了永久性的集中存放数据,并且还能体现数据与数据之间联系.此时需要用到数据库来保存数据.由于之前也接触过一两种数据库,向Oracle,MySQL,再就是SQL Server,这三种都是关系型数据库,都是用于存储大量的数据信息,是一种存储数据的仓库。不过,不管是哪一种数据库,他们之间的联系我觉得都是相通的,对于数据库的常见操作,无非就是“三建四句“。
所谓的“三建四句“就是说,三建:建库,建表,建约束;四句:增,删,改,查。
SQL 语言,也称为结构化查询语言,是用于访问关系型数据库的专用语言,同样也是数据库的核心语言,总体上可以分为三类:数据操纵语言(DML), 数据定义语言(DDL)、数据控制语言(DCL)。
数据操纵语言(DML)主要有四种形式:
插入:insert
更新:update
删除:delete
查询:select,涉及到数据的完整性——简单查询、子查询、多表连接查询
数据定义语言(DDL)主要用于创建数据库中的各种对象——
数据库
数据表
视图:是一种观察数据的途径
索引:用于查询数据,提高效率
同义词
Create,Drop,Alert,Truncate(截断)
数据控制语言(DCL):是用于授予和回收访问数据库的某种权限,并对数据库进行监控。
Grant(授予),Revoke(回收),Denny(拒绝),Rollback
SQL 中的运算符:算术运算符、位运算符、比较运算符、逻辑运算符、通配运算符、字符串连接符、赋值运算符
上面这些只是SQL Server数据的基本操作,而它真正强大的地方并不止这些,还有程序设计,SQL Server中的编程语言就是T-SQL语言,是一种非过程化的语言。
触发器:触发器是一种特殊类型的存储过程,主要是通过实践进行触发而被执行。它的主要作用就是能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。
存储过程:(stored procedure)类似c语言中的函数,是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数来执行它。
游标:游标是一种能从包含多条数据记录的结果集中每次提取一条记录的机制。将批操作变成行操作,对结果集中得某行进行操作。