1. 数据库的作用
持久化:永久得保存数据。
数据挖掘:通过以有信息,发掘出有价值的信息。
冗余:数据的重复出现,(插入,删除,修改)带来一些异常。查询时可以提高查询的效率。
2. 创建数据库,创建表,确定表中字段的类型
数据文件:.mdf(main data file主要数据文件)
.ldf(log data file 日志数据文件)
truncate删除数据 数据完整性:保证数据库的数据是客观真实的,没有错误的。
数据库登录:
方式一:window身份验证,如果你具有登录操作系统的权限,你就可以登录登录数据库。
方式二:sql server身份验证,能够登录操作系统,还需要知道登录名和密码。
用户名 sa 数据库管理者,他是数据库的最大权限拥有者
常用数据类型:
整型:bigint int smallint tinyint
货币:money smallmoney
时间:datetime smalldatetime
位: bit (0,1)
字符串:char varchar text(一个字符表示8位)
Nchar nvarchar ntext(一个字符表示16位)
差异:1. 字符串类型需要加长度。Char(4) text,ntext不需要加长度
2. char varchar的区别
Char是固定长度的,char(8) 存储了’abc’ 会在’abc’之前加5个空格
Varchar 是可变长的 varchar(20) 存储了’abc’,长度就是3
3. 如何分离 附加 数据库
4. 对数据库的 增 删 改 查(操作的是表中的数据)
T_sql:sql+sql server对标准的加强
Sql当中不区分大小写。
增(insert):insert into 表名 values(字段1的值,字段2的值……)
insert into表名(字段1, 字段2) values(字段1的值,字段2的值……)—插入部分数据,其他的字段可以不插入,是因为允许为空
字符串和日期类型都是用'' 括起来的
查(select):select * from 表名(*表示全部)
select 字段1, 字段2 from表名
select 字段1, 字段2 from表名
where 条件表达式
删(delete):delete
from 表名
where 条件表达式
改(update): update 表名
set 字段1=字段1的值,字段2=字段2的值
where 条件表达式
5. 数据库完整性
--域完整性(列的要求)
默认值:采用默认值的时候,需要default占位
--实体完整性(行的要求)
主键:不可以为空,不能重复。
标识列:不需要自己输入,完成初始值设定,以后依次递增,一定是整型
标识种子:初始值
标识增量:递增的值
注意: 如果插入数据时错误,自增长列还是会加1,如果数据全部删除,自增长列还是保留以前的值。truncate table department可以重置表结构。
唯一约束:不允许重复,但可以为空,只能有一个空。
--引用完整性(表之间关系的要求)
1.在哪个表中创建外键?在引用的那张表上
2.主键表,外键表?有主键的就是主键表。
注意点:
1 不能向外键表里插入主键表没有的数据。
2 不能删除主键表中有外键引用的数据,除非将外键表中引用的数据删除掉。
3 不能先删除主键表。
--自定义完整性
6. sql
--dml:数据操作语言,就是增删改查
--dcl:数据控制语言
--ddl:数据定义语言,创建数据库,创建表
1 ddl
创建数据库:create database 数据库名
go --批处理
Use数据库名
use master --exists() 返回true,false
if exists(select * from sysdatabases where name='company')
drop database company
go
create database company
go --批处理
use company
创建表 create table 表名 (字段1名 类型 , 字段2名 类型 ……)
if exists(select * from sysobjects where name='department')
drop table department
go
create table department--创建表时一定要选择好数据库use company
(
--identity(1,1)自增长列
--primary key主键
--字段和字段之间用,隔开
departmentid int identity(1,1) primary key,
departmentname varchar(20) not null
)
添加约束
--主键
alter table employee
add constraint PK_employee_employeeid primary key(employeeid)
--唯一约束
alter table employee
add constraint UQ_employee_telephone unique(telephone)
--默认约束
alter table employee
add constraint DF_employee_address default('地址不详') for address
--检查约束
alter table employee
add constraint CK_employee_salary check(salary>=1800 and salary<=20000)
--外键约束
alter table employee
add constraint FK_employee_departmentid foreign key(departmentid) references department(departmentid)
修改表的字段
--添加一个字段
alter table employee
add test int
--修改列的类型
alter table employee
alter column test varchar(20)
--删除一列
alter table employee
drop column test
1 dml
--成批插入1 default不可以写,因为select结果集不解析表结构
insert into department
select '教质部' union
select '学员服务部' union
select '财务部'
--成批插入2 临时表不需要创建,他会继承上一张表的结构,包括自增长列等等
select departmentname
into temp
from department
--成批插入3 临时表需要创建
insert into department
select * from temp
--查询
--排序order by 字段 升序:asc(默认是升序) 降序:desc
select * from department
order by departmentid
--有条件的查询where
select * from department
where departmentid<3
select * from department
where departmentid>=2 and departmentid<=3
select * from department
where departmentid<2 and departmentid>3
--有条件的更新where
update department
set departmentname='索迪'+departmentname
where departmentid=2 or departmentid=4
--有条件的删除
delete from department
where departmentname='索迪教质部' or departmentname='索迪财务部'
6. 模糊查询
通配符:和like一起使用,用来匹配字符串
‘_’代表任意一个字符
‘%’代表任意多个(0-……)字符
‘[]’代表[]范围内的任意一个字符 [ade] [0-9] [a-z] [03-7ACE-Pa-z]
‘[^]’代表部包含在[]范围内的任意一个字符 [^ade] [^0-9]
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论