SQL Server数据库基础(一),数据库表、时间、创建约束
2016-04-17 21:31
721 查看
管理器:
系统数据库有四个:
master:系统信息,要经常备份
model:模板数据库
tempdb:临时数据库
msdb:代理服务数据库
数据库的转移:
直接找到数据库的位置是不能剪切复制的,要先通过分离,断开数据库与SQL Server的连接,然后在剪切复制到其他磁盘目录下,最后使用附加找到数据库进行添加
设置主键的字段不能重复,如果设置两个字段都为主键,表示的是两个字段同时不能重复。比如学生选课,学生编号和课程编号同时设为主键,则不能出现多次同一个学生选择同一门课,
表中找不到合适的字段作为主键,就在表中增加一个字段作为标识列。 标识列会自动增长
使用SQL语句创建数据库
创建一张表
取出当前时间,精确到年月日时分秒
select GETDATE()
取出当前年的时间
select year(GETDATE())
添加约束语句
系统数据库有四个:
master:系统信息,要经常备份
model:模板数据库
tempdb:临时数据库
msdb:代理服务数据库
数据库的转移:
直接找到数据库的位置是不能剪切复制的,要先通过分离,断开数据库与SQL Server的连接,然后在剪切复制到其他磁盘目录下,最后使用附加找到数据库进行添加
设置主键的字段不能重复,如果设置两个字段都为主键,表示的是两个字段同时不能重复。比如学生选课,学生编号和课程编号同时设为主键,则不能出现多次同一个学生选择同一门课,
表中找不到合适的字段作为主键,就在表中增加一个字段作为标识列。 标识列会自动增长
使用SQL语句创建数据库
use master if exists(select*from sysdatabases where name = 'test') drop database test go create database test on primary --主文件组,默认都属于这个组,可以不写 (name=test1, --定义主要数据文件名字 filename = 'f:\data\test1.mdf', --文件路径 size = 20, --文件大小为20M maxsize = 500, --文件最大为500M; filegrowth = 5 --超过20M是自增长5M ), (name = test2, --定义次要数据文件名字 filename = 'f:\data\test2.ndf', size = 10, maxsize = 20, filegrowth = 20% --超过10M时自增长20% ) log on --创建日志文件 ( name = test_log, filename = 'f:\data\test_log', size = 5, maxsize = 300, filegrowth = 10% )
创建一张表
--创建学生表 use test if exists(select * from sysobjects where name = 'student') --所有表都放在sysobjects 这个系统表里 drop table student go create table student (stuNo int identity(95001,1) primary key not null, --使用自增,作为标识列,从95001开始递增,设为主键 stuName varchar(20) not null, stuSex char(2) null, --允许为空,可以不写 stuAge int , stuAddress varchar(50) default '地址不详' --默认地址 )
取出当前时间,精确到年月日时分秒
select GETDATE()
取出当前年的时间
select year(GETDATE())
添加约束语句
/*初始化两张表,测试添加约束语句*/ use test go if exists(select * from sysobjects where name = 'department') drop table department create table department --部门表 (departmentid char(5) not null primary key, deparmentname varchar(20) ) if exists(select * from sysobjects where name = 'employee') drop table employee create table employee --员工表 ( id char(18) not null, --身份证号 jobid char(6) not null, --员工编号 name varchar(20) not null, --姓名 sex char(2) null, --性别 birthday datetime null, --出生日期 salary money not null, --工资 departmentid char(5) null --部门编号 ) /* 对员工表要求: id的值是唯一,作为 (主键) jobid的值也是唯一的,作为为一键 (唯一键) sex取值只能为男或女 (检查约束) birthday要求必须年满18 (检查约束) salary默认值为3000 (默认约束) department值必须在department表中存在departmentid(外键) */ --使用添加约束的语法 /*添加主键约束*/ alter table employee add constraint PK_id primary key(id) /*添加唯一键约束*/ alter table employee add constraint UQ_jobid unique(jobid) /*添加检查约束*/ alter table employee add constraint CK_sex check(sex in('男','女')) /*添加检查约束*/ alter table employee add constraint CK_birthday check (year(GETDATE())-year(birthday)>=18) --表示当前时间减去出生日期时间大于18岁 /*添加默认约束*/ alter table employee add constraint DF_salray default 3000 for salary /*添加外键约束*/ alter table employee add constraint FK_departmentid foreign key (departmentid) references department(departmentid) /*删除约束*/ alter table employee drop constraint ck_sex
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- 数据库链接字符串查询网站
- DB2实例管理
- DB2实例管理
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- 第三章 数据库备份和还原
- 创建一个空的IBM DB2 ECO数据库的方法
- Access 2000 数据库 80 万记录通用快速分页类
- 开通一个数据库失败的原因的和解决办法
- 一个简单的asp数据库操作类
- CentOS下DB2数据库安装过程详解
- EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页
- sql2008 还原数据库解决方案
- Oracle 数据库自动存储管理-安装配置
- Oracle数据库执行脚本常用命令小结
- Oracle 数据库 临时数据的处理方法
- 数据库分页查询语句数据库查询
- 最近比较流行的数据库挂马