sql入门(1)------SQLServer

SQLServer(MS SQLServer)


DBMS:数据库管理系统



1、开启SQLServer服务
2、进入数据库
3、创建数据库:
创建的SQLServer应该包含两个文件
mydb.mdf            

mdf---主要数据文件,所有存储在mydb数据库的数据信息,都是存储在该文件

mydb.ldf  
ldf----日志数据文件,它主要存储数据库的日志信息。主要包含一些操作信息

4、如果要把创建好的数据库,拷贝其他地方,必须先“分离数据库”

5、要把其他的数据库,添加到当前的数据库系统中,需要"附加数据库"

---------------------------
数据库系统中包含两种类型的数据库:

a、系统数据库(这些数据库由系统提供,主要存储系统信息)
b、用户自定义数据库(这些数据库用于存放用户自己的信息)

系统数据库master数据库称为:核心数据库

这个数据库用于存放其他数据库的系统信息


---------------------------
数据库中可以包含数据表,数据表用于存放具体的数据


数据表中的数据类型:

int ----用于存放整数
varchar(长度)-----用于存放字符串
varchar(20)  ----可以存放20个长度的字符串
char(20)  ----可以存放20个长度的字符串

datetime 日期时间类型   yyyy-MM-dd

------------------------------------------------

varchar(20)  与  char(20) 都可以存放20个长度的字符

区别在于:
char(20) 它是一种空间大小不可变的字符类型

----------------------

name char(20)--定义一个字段,它的空间大小可以存放20个字符

如果实际存的时候,只存了1个字符,系统将依然占用20个空间大小

--------------------------------------------------------------
varchar(20)  它是一种空间大小可以动态改变的字符类型

name varchar(20)--定义一个字段,它的空间大小可以存放20个字符

如果实际存的时候,只存放了1个字符,系统就会把空间收缩成一个空间的大小

---------------------------------------------------------
char 这种类型,存了数据以后,它不会检查空间的使用情况,不会额外消耗资源,所以速度会更快一些


varchar 这种类型存了数据以后,会检查空间是否用完,这个检查的过程是需要消耗资源的,所以它的速度相对慢一些



如果内容的长度是一个固定值,使用char速度会更快

如果内容的长度不确定,使用varchar类型,更节约空间


-----------------------------------------------------
nchar与nvarchar  它们之间的区别与char与varchar相同

------------------------------------------------------

nchar 与  char

nvarchar  与varchar
----------------------------

char(20) -----------这种类型,一个汉字,要占到2个长度



nchar(20)-------这种类型,一个汉字,只占一个长度




char,varchar这两种类型:

1个数字,1个字母,1个符号,只占1个长度
而1个汉字要占2个长度

-----------------------------
nchar,nvarchar 这种类型:

1个数字,1个字母,1个符号以及1个汉字,都占1个长度





数据库中可以包含数据表,数据表中可以存放数据

数据表是由行来构成

每一行是由列来构成








数据表在存储数据的时候,要保证数据的完整性


---------------------------------------
数据完整性:
1、实体完整性:
每一条数据,都可以被唯一的标识

要保证数据的实体完整性,有三种方式:

A、设置主键(如果某一列,设置成主键,这一列,就不允许出现重复数据)

primary 主要的
key  键

primary key 主键
---------------------------------------------------------------
B、设置标识列---自动增长列 (设置为标识列以后,这一列的值,用户不能指定,而是由系统生成一个编号)
标识种子: 初始值从几开始
标识增量: 每一次递增几个数

已经生成的生成过的标识列,即使把这一条数据删除掉,标识也不会重新生成

C、设置唯一键:这一列的数据不能重复



-----------------------------------------
可以同时指定,某一列,既是主键,也是标识列





主键,唯一键


主键约束
唯一约束

------------------------------------

一个表某一列设置为主键以后,可以保证该列的值是不重复,并且设置为主键列还可以与其他的表建立主外键关系


唯一键:只能保证该列的值不重复,但是,不能与其他的表建立主外键关系






数据完整性包括:

1、实体完整性(每一条数据可以被唯一标识)
A、主键
B、标识列
C、唯一键
2、域完整性(保证字段的值是有效的)
A、设置非空约束
B、设置检查约束 (限制内容的取值)
C、设置默认值约束


3、引用完整性(保证两个表之间可以正确建立,主外键关系)



-------------------------------------------
检查约束的命名习惯:  ck_表名_列名



len(sname)>2 and len(sname)<7
限制姓名的长度必须在3-6之间

gender='男' or gender='女'
限制性别只能是'男'或者'女'



age>=1 and age<=150

限制年龄必须在1-150之间
地址设置默认值
















  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值