1、 常用数据类型
  数字类型
    -> int
  字符串类型
    -> char、nchar、varchar、nvarchar
    -> 数据类型(数字)
    -> 区分unicode字符与非unicode字符
    -> 如果使用varchar与nvarchar可以使用max表示字符串大小
  时间类型
    -> datetime
    -> 赋值的时候使用字符串的方式即可
  金钱数据类型
    -> money
    -> 一般使用的时候直接当做数字类型即可
  bool类型
    -> bit
    -> 在使用的时候,用设计器赋值只能使用'true'和'false'
    -> 在SQL语句中可以使用字符串'true'和'false',也可以使用数字,1表示true,0表示false
  二进制类型
    -> image
2、 编码习惯
  -> 字段用中文
    -> nvarchar
  -> 命名规范
    -> 与系统冲突或字段中需要有空格,可以使用[]框起来(SQL Server中还可以使用双引号)

3.建库

use master --系统数据库
go

--判断数据库是否已经存在,存在则删除

if db_id('数据库名') is not null
drop database 数据库名

--创建数据库

create database 数据库名
on
(  --数据库
  name = '数据库名',
   filename = '绝对路径',--g:\db\School.mdf
   size = 10,--初始文件大小
   filegrowth=10--增长
)
log on
(  --日志文件
   name = '数据库名_log',
   filename = '绝对路径',--g:\db\School_log.ldf
   size = 3,--初始文件大小
   filegrowth=10% --增长
);
go



1 use master
 2 go
 3 
 4 if db_id('School') is not null
 5     drop database School
 6 
 7 create database School
 8 on
 9 (
10     name = 'School',
11     filename = 'g:\db\School.mdf',
12     size = 10,
13     filegrowth=10
14 )
15 log on
16 (
17     name = 'School_log',
18     filename = 'g:\db\School_log.ldf',
19     size = 3,
20     filegrowth=10%
21 );
22 go



4.建表

--判断表是否已经存在,存在则删除

if object_id(‘表名’,’U’) is not null
  drop table 表名;
create table 表名
(
  列名 数据类型 约束,
  列名 数据类型 约束
)



1 if object_id('Course','U') is not null
2     drop table Course;
3 create table Course
4 (
5     classId                int                identity(1,1)    primary key,    --    课程Id
6     className            nvarchar(20)    not null,                        --    课程名称
7     classDescription    nvarchar(max)    not null                        --    课程描述
8 );



5.约束

数据库约束是为了保证数据的完整性(正确性)而实现的一套机制

非空约束

主键约束(PK) primary key constraint唯一且不为空

唯一约束 (UQ)unique constraint 唯一,允许为空,但只能出现一次

默认约束 (DF)default constraint 默认值

检查约束 (CK)check constraint 范围以及格式限制

外键约束 (FK)foreign key constraint 表关系

--添加主键约束 alter table 表名 add constraint 约束名 primary key(列名)

--添加唯一约束 alter table 表名 add constraint  约束名 unique(列名)

--添加默认约束 alter table  表名 add constraint  约束名 default('男') for 列名

--添加检查约束 alter table  表名 add constraint 约束名 check(列名 >=18 and 列名 <=100)

--添加外键约束(主键表Class 外键表student) alter table student add constraint FK_student foreign key(sClassId) references Class(cId)

--外键student表中的sClassId来references引用主键表中的cid

--删除约束 alter table student drop constraint FK_student



1 -- 主键约束
 2     alter table newStudent 
 3     add constraint PK_newStudent_stuId primary key(stuId);
 4 
 5 -- 唯一约束
 6     alter table newStudent
 7     add constraint UQ_newStudent_stuName unique(stuName);
 8 
 9 -- 默认约束 input时间设为当前时间
10     alter table newStudent
11     add constraint DF_newStudent_stuInput default(getdate()) for stuInput;
12 
13 -- 检查约束 性别
14     alter table newStudent
15     add constraint CK_newStudent_stuSex check(stuSex='男' or stuSex='女');
16 
17 --增加外键约束
18 alter table Employees add constraint FK_DeptId_DepId foreign key(DeptId) references Department(DepId)