SQL and Access database
平时成绩:网络课程+考勤
期末成绩:笔试
总评=平时成绩+期末成绩
第一次课 数据库管理系统概述
一、数据库的基本概念
二、数据模型:关系模型
三、关系数据库
1.Access
2.SQL Server database
第三章 创建ACCESS数据库
3.1.3创建空白数据库
3.2.1打开和关闭数据库的操作
3.3创建ACCESS表
一、数据类型
1.文本
2.数字
3.备注
4.货币
5.日期时间
6.是否
7.OLE对象
8.超链接
二、创建表的多种方法:
1.表向导:通过示例帮助用户建立数据表.
2.表设计器:由用户自己设计表.
3.输入数据:通过输入数据由ACCESS帮助建立数据表.
4.导入表:由其它数据源导入表.
5.链接表:建立与外部文件的链接.
三、约束
为了维护数据库的完整性,为输入的数据设置的一系列的限制条件。
(1)主键约束:(primary key)用来保证表中的每一条记录是唯一的,主键不能为空,也不能有重复值。一个表格只能有一个主键。
(2)唯一约束:(unique)功能类似于主键约束,但一个表格可以有多个唯一约束,而且唯一约束可以为空,但不能有重复值。
(3)外键约束:(foreign key)建立表格之间的关系,保证表之间数据的一致性。
(4)检查约束:(check)限制输入数据的取值范围。
(5)默认值约束:(default)可以减少输入的工作量,默认值可以是常量、表达式或内置函数。
(6)空值约束:(null)有些字段允许为空,有些字段不允许为空。
eg3.1:
use market
go
create table customers
( 客户编号 int primary key,
姓名 varchar(20) not null,
地址 varchar(50),
电话 varchar(20) unique,
出生日期 datetime)
eg3.2:
use market
go
create table goods
(货品名称 varchar(20) primary key,
库存量 int,
供应商 varchar(50),
状态 bit default 0,
价格 money)
eg3.3:
use market
go
create table orders
( 订单号 int identity(1,1) primary key,
货品名称 varchar(20) not null references goods(货品名称),
客户编号 int foreign key references customers(客户编号),
数量 int not null check(数量>0),
总金额 money,
订货日期 datetime default getdate()
)
3.设置约束
(1)主键约束
(2)唯一约束
(3)外键约束
(4)检查约束
4.向表中添加数据
(1)使用企业管理器添加数据:图3.11
(2)用insert语句添加数据:
四、修改表
1.使用企业管理器修改表
表由结构和数据组成,当前修改表是指修改表的结构和约束。
(1)添加字段
(2)删除字段
(3)修改约束
2.使用alter table语句修改表
(1)使用add子句添加列
eg3.4:
use market
alter table customers
add varchar(50) not null
(2)
使用add constraint子句添加约束
eg3.5:
use market
alter table customers
add constraint def_e default 'cqdx@163' for
注意:
1.当前建立的默认值约束只对从这个位置开始后面的数据起作用。
2.每种约束在SQL语句中的表达形式不同,要注意总结。
(3)使用drop constraint子句删除约束
eg3.6:
use market
alter table customers
drop constraint def_e
(4)使用drop column子句删除列
eg3.7:
use market
alter table customers
drop column
(5)使用alter column子句修改列属性
eg3.8:
use market
alter table customers
alter column char(50) null
注意:
将原来允许为空的列设置为不允许为空,必须保证之前没有存放空值的记录。
(6)使用nocheck constraint子句使约束无效或重新有效。
eg3.9:
use market
alter table customers nocheck constraint def_e
alter table customers check constraint def_e
五、删除表
(1)界面操作
(2)SQL语句
eg:
use market
drop table orders
delete
truncate table
第四部分 数据的查询与更新
前提:
1.完成了用户数据库的创建,并且数据库处于打开的状态。
2.对应的表已经存在于数据库当中。
对数据的操作:
1.从数据库中查出满足条件的数据:select(查的结果是一个动态集,不占用数据库的存储空间)
2.添加、修改和删除数据:insert,update,delete
一、select语句的基本语法格式
select 字段名称1,字段名称2,...,字段名称n
[into 新表名]
[from 表名1,表名2,...,表名n]
[where 条件表达式]
[group by 字段名]
[having 条件表达式]
[order by 字段名 asc|desc]
二、简单查询
1.使用select子句选取字段
(1)输出表中所有的列
eg4.1:查询customers表中所有列的信息。
use market
select * from customers
(2)输出表中的部分列
eg4.2:从customers表中选取“姓名”和“电话”2个字段作为查询的输出字段。
use market
select 姓名,电话 from customers
(3)为结果集内的列指定别名
当结果集中的列是表中现成的列,可以使用表中原有的列名。但有的时候,结果集中的有些列是原表中一列或多列的运行结果,这个时候需要对这样的列重命名。
为结果集指定列名的语句格式:
1.select 列别名=原列名 from 数据源
2.select 原列名 as 列别名 from 数据源
eg4.3:从goods表中选取“货品名称”和“总价格”2个字段,其中总价格是库存量*价格计算确定。
use market
select 货品名称 as 商品名称,总价格=库存量*价格 from goods
(4)过滤结果集中的重复行
查询的结果集中可能会出现重复的记录,使用distinct关键字能够除去这些重复的记录。
eg4.4:从orders表中输出“货品
名称”,删除重复列。
use market
select distinct 货品名称 from orders
(5)限制返回的行数
top n子句
top n percent 子句
eg4.5:查询customers前3条记录。
use market
select top 3 * from customers
2.使用into子句
可以将select语句的结果集存储为一个新的表格,但前提是用户要有创建新表的权限。
注意:
1.where子句中的表达式恒为假时,形成一个和原表结构一样的空表。
2.into子句后的表名如果是以“#”开头,则生成的是一个临时表,如果不带“#”,则生成的是一个永久表。
eg4.6:创建一个与customers表结构完全相同的空表newtab.
use market
select * into newtab from customers where 1=2
select * from newtab
3.使用where子句:查所有记录中满足条件的数据。
(1)比较运算符
eg4.7:查询goods表中库存量大于等于100的货品记录。
use market
select * from goods where 库存量>=100
(2)范围运算符:测试表达式的值在或不在指定的范围之内。
测试表达式 [not] between 起始值 and 终止值
eg4.8:查询goods表中库存量不在100-500之间的货品记录。
use market
select * from goods where 库存量 not between 100 and 500
(3)列表运算符:提供一系列的可选值,不指定范围。
测试表达式 [not] in(列值1,...,列值n)
sql约束条件大于0eg4.9:查询customers表中姓名是“王兰”“李红”的客户信息。
use market
select * from customers where 姓名 in('王兰','李红')
(4)模式匹配运算符:判断字符型的数据是否和指定的格式相匹配。
like '通配符' 和 not like '通配符'
%:代表0个或者多个字符
_:代表单个字符
[]:选取指定范围内的单个字符
[^]:代表不在指定范围内的单个字符
测试表达式 [not] like '通配符'
eg4.10:查询customers表中姓李的客户信息。
use market
select * from customers where 姓名 like '李%'
(5)空值运算符
测试表达式 is [not] null
eg4.11:查询goods表中不知道供应商名称的货品信息,即供应商为空。
use market
select * from goods where 供应商 is not null
(6)逻辑运算符:not ,and,or
eg4.12:用2种方法查询goods表种库存量在100-1000之间的货品记录。
use market
select * from goods where 库存量 between 100 and 1000
select * from goods where 库存量>=100 and 库存量<=1000
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论