SQL Server -- 回忆笔记(一):初见数据库
SQL Server知识点回忆篇(一):初见数据库
1. 主键
primary key 唯一标识, 不会重复的值才会用来当做主键使用。
表可以没有主键,但建议每张表都有主键。
2. 数据冗余
一般情况下,尽量避免表中数据冗余的情况。
解决方法:把原来表中的数据拆分成多个表来存储。
3. 多张表关联起来
使用主键和外键(一张表中增加一列,这一列引用另一张表的主键)。
4. 数据库的磁盘文件
磁盘文件至少两个:后缀.mdf的是主数据文件,后缀.ldf的是日志文件,配置时可设置最大文件大小、大小自动增长......
5. 字符串类型
char: 固定长度的字符串, 英文字符占1个字节,中午字符占2个字节
nchar: 固定长度的字符串,无论中英文字符,都占2个字节
varchar: 可变长度的字符串,英文字符占1个字节,中午字符占2个字节
nvarchar: 可变长度的字符串,无论中英文字符,都占2个字节
以上不带n的长度最长可设置为8000,带n的最长可设置为4000
text: 可变长度的字符串。最多 2GB 字符数据。
ntext: 可变长度的字符串。最多 2GB 字符数据。
varchar(max): 可变长度的字符串。最多 2GB 字符数据。
nvarchar(max): 可变长度的字符串。最多 2GB 字符数据。
不带var的表示固定长度(存入的字符串长度不够时,自动补空格),带var的表示可变长度(用多少占多少空间)
6. 系统默认存在的数据库
master: 存储sql server数据库本身的一些信息......
msdb: 备份、自动执行任务......
model: 创建数据库的模板
tempdb: 临时数据库
resource: 用来存放sql server的系统对象(该数据库在sql server Management studio工具不会显示出来)
7. 创建数据库
create database MyDataBase1
8. 删除数据库
drop database MyDataBase1
9. 创建数据库时可设置一些参数
create database Mydatabase1
on primary
(
--配置主数据文件
name='Mydatabase1',
filename='C:\Mydatabase1.mdf',
size=5MB,
maxsize=150MB,
filegrowth=20%
)
log on
(
--配置日志文件
name='Mydatabase1_log',
filename='C:\Mydatabase1_log.ldf',
size=5MB,
filegrowth=5MB
)
10. 创建表
use Mydatabase1
create table tbUsers
(
id int identity(1,1) primary key,
UserName nvarchar(20) not null,
Age int not null,
Email nvarchar(30) not null
)
11. 删除表
drop table tbUsers
12. SQL Server中往表中插入值或更新值时,字符串中有单引号时,使用 '' 转义 ' (2个单引号转义一个单引号)。
SQL Server中判断相等使用的是 “=” ,与C#不同(C#判断相等使用的是“==”)。
13. 约束:根据需要对某些列进行约束,避免该列存入不合理的值
主键约束
非空约束
唯一约束
检查约束
默认约束
外键约束
SQL Server -- 回忆笔记(一):初见数据库的更多相关文章
- SQL Server -- 回忆笔记(五):T-SQL编程,系统变量,事务,游标,触发器
SQL Server -- 回忆笔记(五):T-SQL编程,系统变量,事务,游标,触发器 1. T-SQL编程 (1)声明变量 declare @age int (2)为变量赋值 (3)while循环 ...
- SQL Server -- 回忆笔记(三):ADO.NET之C#操作数据库
SQL Server知识点回忆篇(三):ADO.NET之C#操作数据库 1.连接数据库 (1)创建连接字符串: 使用windows身份验证时的连接字符串: private string conStr= ...
- SQL Server -- 回忆笔记(四):case函数,索引,子查询,分页查询,视图,存储过程
SQL Server知识点回忆篇(四):case函数,索引,子查询,分页查询,视图,存储过程 1. CASE函数(相当于C#中的Switch) then '未成年人' else '成年人' end f ...
- SQL Server -- 回忆笔记(二):增删改查,修改表结构,约束,关键字使用,函数,多表联合查询
SQL Server知识点回忆篇(二):增删改查,修改表结构,约束,关键字使用,函数,多表联合查询 1. insert 如果sql server设置的排序规则不是简体中文,必须在简体中文字符串前加N, ...
- SQL Server 2008 错误15023:当前数据库中已存在用户或角色
解决SQL Server 2008 错误15023:当前数据库中已存在用户或角色,SQLServer2008,错误15023,在使用SQL Server 2008时,我们经常会遇到一个情况:需要把一台 ...
- SQL Server 2008 R2如何开启数据库的远程连接
SQL Server 2008 R2如何开启数据库的远程连接 SQL Server 2005以上版本默认是不允许远程连接的,如果想要在本地用SSMS连接远程服务器上的SQL Server 2008,远 ...
- 关于SQL Server 2005 的自动远程数据库备份
原文:(原创)关于SQL Server 2005 的自动远程数据库备份 由于项目需要,需要对目标服务器上的数据库每天进行备份并转移,查阅网上的一些帮助,结合自己的实际需要,写了这篇文章,希望对有同样需 ...
- SQL SERVER统计服务器所有的数据库(数据库文件)、表(表行数)、字段(各字段)等详细信息
原文:SQL SERVER统计服务器所有的数据库(数据库文件).表(表行数).字段(各字段)等详细信息 USE STAT GO SET NOCOUNT ON IF EXISTS(SELECT 1 FR ...
- sql server 2008 R2 压缩备份数据库
今天需要把一个省外项目的数据库从服务器上备份.拷贝到本机(跨地域传输数据库备份文件). 连上VPN,通过远程桌面连接,连接上服务器,发现数据库文件已经有20G以上大小了. 文件太大,公司网络也不稳定, ...
随机推荐
- 呕心沥血之作,最多坑mysql5.7安装教程
前言: 业务需要,需要数据库接binlog发数据变更消息,但是项目用到的数据库是mysql5.6,不支持,于是就有了接下来的一切一切,新的测试服务器上安装mysql5.7 安装步骤: 1.官网下载my ...
- mktemp 命令
Linux mktemp命令用于建立暂存文件. mktemp建立的一个暂存文件,供shell script使用. mktemp命令专门用来创建临时文件,并且其创建的临时文件是唯一的.shell会根据m ...
- 【Go】IP地址转换:数字与字符串之间高效转换
转载:https://blog.thinkeridea.com/201903/go/ip2long.html IP 地址库中 IP 地址的保存格式一般有两种,一种是点分十进制形式(192.168.1. ...
- 搞懂Python的类和对象名称空间
代码块的分类 python中分几种代码块类型,它们都有自己的作用域,或者说名称空间: 文件或模块整体是一个代码块,名称空间为全局范围 函数代码块,名称空间为函数自身范围,是本地作用域,在全局范围的内层 ...
- java8 集合求差集、并集、交集
前言 java8里最大亮点是lambda,让我们用习惯C# linq的语法,也能眼前一亮.但是比起C#的语法糖还是差的很远. 差集.并集.交集 @Test public void test1(){ L ...
- 【转载】Sqlserver通过维护计划定时自动备份数据库
Sqlserver数据库的运维过程中,数据库的备份操作至关重要,平时我们都是手动进行数据库的备份操作.如果要做到让数据库定时自动备份,则可以使用Microsoft SQL Server Managem ...
- 48.Linux-普通U盘以及多分区U盘自动挂载
在上章学习33.Linux-实现U盘自动挂载(详解)后,只是讲解了普通U盘挂载,并没有涉及到多分区U盘,接下来本章来继续学习 1.多分区U盘和普通U盘区别 1)U盘插上只会创建一个/dev/sda文件 ...
- 为什么redis是单线程的?速度还这么快
为什么说Redis是单线程的? 为什么redis是单线程的?速度还这么快
- Java高并发--线程安全策略
Java高并发--线程安全策略 主要是学习慕课网实战视频<Java并发编程入门与高并发面试>的笔记 不可变对象 发布不可变对象可保证线程安全. 实现不可变对象有哪些要注意的地方?比如JDK ...
- python基础学习(一) 第一个python程序
1. 使用python/python3解释器的方式 按照惯例,我们都是以Hello world作为一门程序语言的开始,进行如下的操作: 在桌面上新建一个hello-python文件夹 进入hello- ...