数据库2008学习笔记(一)

1 数据库简介

1 关系型数据库
基于E-R模型(entity relationship model):
使用sql语言进行操作
2 分类
文档型(sqlite) 程序直接访问文件
服务型 应用程序----->应用程序(服务)----->文件
3 设计
三范式:列不可拆分 唯一标识 引用主键
关系及存储:
1对1: 一个对象A对应一个对象B,一个对象B对应一个对象A。比如一个学生一个班级,一个班级一个学生
1对多: 一个对象A对应n个对象B,一个对象B对应一个对象A。比如一个学生一个班级,一个班级多个学生
多对多:一个对象A对应n个对象B,一个对象B对应n个对象A。比如一个学生多个班级,一个班级多个学生
1对1双方都可以存关系,1对多是多的存储关系,多对多是单独建立一个表来存储关系

1.2 数据库连接

1 服务器名称:
如果你安装的时候没有改实例名
那么你的服务名就是localhost或127.0.0.1或计算机名或直接写个.(英文状态下) 都可以
如果改了实例名 那么就是 计算机名\服务名
2 身份验证:windows身份验证——》就是你用登录操作系统本身的权限登录
SQL 身份验证——》就是你单独设置的权限

注意:
sa用户名用不了
答 :1 首先以window身份登录
2 依次点击 安全性-登录名-sa(双击或右击)属性-修改密码(将旧密码和强制密码前的√取消)
3 sa(双击或右击)属性-状态设置为授予 启用
4 在安全性的上一级右击属性选择安全性选择服务器身份验证SQL server和windows
5 断开连接
修改密码

数据库被局域网中其他电脑连接失败
答:1 SQL server配置管理器中选择网络配置—协议—TCP/IP启用
2 关闭防火墙

1.3 界面操作

1 数据库:创建 删除 分离 附加 生成脚本(架构、数据)
注:在创建数据时,想要将数据库移动到其他地方,需要分离,想要添加到数据库软件中需要附加—在创建数据库后,右击选择任务-分离,接着把删除和更新的两个√去掉
生成脚本:快速的备份数据,在右击数据库点击任务–生成脚本,在最后点击高级往下拉找到编写脚本的数据的类型选择架构和数据,这样就可以生成一个快速的备份文件以.sql文件结尾。
2 表:创建 修改 删除
创建的表中列名就相当于属性
字段类型:int bit datetime decimal
char varchar nvarchar
decimal(x,y) x表示总共多少位,y表示几个小数
其中 char varchar 是unicode编码英占一个字节,中文占两个字节
而 uvarchar是unicode编码中英文都是占一个字
注:
字、字节、位之间的关系
字 word 字节 byte 位 bit
字长是指字的长度
1字=2字节(1 word = 2 byte)
1字节=8位(1 byte = 8bit)
一个字的字长为16
一个字节的字长是8
3 约束:数据的有效性检查
主键 非空 唯一 默认 检查 外键
主键:其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键
唯一:找一个列名,单击右键–牵引/键–添加–类型–唯一键
外键:对关系的合理性做检查

1.4 脚本操作

-不区分大小写、字符串使用单引号、末尾不需要加分号

1.4.1 按照功能分类:

DDL:数据定义语言 -----create(创建)、alter(修改)、drop(删除)对数据库表的操作,数据库没有修改操作
DML:数据管理语言-----insert(增加)、update(修改)、delete(删除)、select(查询)
DCL:数据控制语言

1.4.2 注释

– 单行注释
/**/ 多行注释

1.4.3 数据表的创建

通过查看master数据库中的sysdatabases表了解当前存在的数据库数量 如下图:当前存在的数据库数量
在创建数据库脚本的时候,如果命名不记得,可以通过ReportServer右击选着数据库脚本为-CREATE©-新查询编辑器窗口操作步骤
数据库建立的脚本程序例子:

create database 数据库名
on primary
(
	name = 'stuDB_date', --主要文件的逻辑名称
	filename = 'E:\relationship\sql\stuDB_date.mdf',--主数据文件的物理名称
	size = 5mb, --主数据文件的初始大小
	maxsize = 100mb,--主数据文件增长的最大值
	filegrowth = 15% --主数据文件的增长率
)
log on
(
	name = 'stuDB_date_log',
	...
)

删除数据库

drop database 数据库名

建立和删除数据库
创建表的例子:

create table 表
(
	cId int not null primary key identity(1,1),--列名cId为非空 主键 标识(1为基,1为增量)
	cTitle nvarchar(10)
)

创建表
通过select * from sysobjects where xtype = 'U'在这里插入代码片可以查询所有存在的表,要查询多个表,使用逗号分隔开
主键:primary key
非空:not null
唯一:unique
默认:default
检查:check()
外键:foreign key (列名) references 表名(列名)

1.5 表数据的操作

1.5.1 简单查询

select * from 表名

1.5.2 增加数据

insert into 表名(列名) values (值)

说明:
into 可以省略不行
值的列名与值要求位置对应
所有列都插入值,可以省略列名部分
如果列名设置为标识则不能插入数据
在插入数据时,如果有多个列名,除非有的列名允许了可以null,否则都要出入数据
扩张:
一次增加多行数据,直接在value后接多个数据之间用逗号隔开—(xx),(xx)…

1.5.3 修改数据

updata 表名 set 列名=值1,列名2=值2...where ...

说明:
where后面的表示满足条件的行,做修改

删除数据:

delete from 表名 where...

清空:

truncate table 表名

删除与清空的区别:
删除操作后,所有的数据删除,标识并没有删除,在这个条件下增加数据将在原理的基础上往上加
清空操作则是将数据和标识都清空
总结前面的操作过程展示
在这里插入图片描述

1.5.4 常用辅助命令及快键键

set statistis time on/off:在消息栏显示详细执行时间

ctrl+e 执行
ctrl+r 隐藏消息栏
ctrl+l 计划任务

猜你喜欢

转载自blog.csdn.net/qq_42711815/article/details/87549342