关于SqlServer表结构的问题。先来了解一下SqlServer中的数据类型以及它们的用法

整型: 短整型 smallint 整型 int 长整型 bitint

标识列:identity(它是只读的)只能用整型 smallint、int、bigint

浮点数:float--->C#、java的double

money--->decimal

bit 0,1--->boolean false、true

字符串类型:

char(10)    单字节固定长度的字符类型、不足不空格,最大8000

varchar(10)   单字节可变长度的字符类型,可回收没有用到的空间,最大8000

关于两者的选择,关键在于在处理数据时是否保证填满,如果保证填满可以选择char,相反如果不确定录入的数据是否能够填满多少个字节,那么就选择varchar,因为他可以回收未填满的数据,减少内存的消耗!

标准字符:可以在键盘上看得到的字符都属于标准字符(单字节)

非标准字符:中文、日文、法文、俄文等(双字节)

nchar:双字节 第一个字母 n 就是Unicode的缩写(所有键盘上看不到的都属于Unicode编码范围) 有多少存多少,最大4000,因为是双字节 8000/2

nvarchar:可回收双字节 Unicode 最大4000

与char和varchar原理是一样的,带n一个数字代表双字节。不带n一个数字代表单字节

text 最大2GB文本上限

ntext:没记错的话应该是可变的

时间类型:

date:日期 年月日

time:时间 时分秒

datetime:日期时间 年月日时分秒

--primary key 1.不允许为空 2.不允许重复 3.可以被子表的外键列引用
--identity(1,1) 标识列只能在整型列上使用 只读的不允许修改
--not null 不允许为空
--unique不允许重复,唯一
--foreign key 外键
--references 引用
--check 检查约束用来判断数据类型是否合法
--getdate获取当前系统时间
--datediff 时间差 datediff(year,BornDate,getdate())参数一:按年来算时间差(也可以是month,day),参数二:录入时间 ,参数三系统时间 后面时间-前面时间
--len()获取字符数量
create table Grade
(
Id int primary key identity(1,1),
GradeName varchar(10) not null
)
go
create table Class
(
Id int primary key identity(1,1),
ClassName varchar(10) not null unique,
GradeId int foreign key references Grade(Id)
)
go
create table Student
(
Id int primary key identity(1,1),
StuCode int not null,
ClassId int references Class(Id) not null,
StuName nvarchar(10) not null check(len(StuName)>=2) default('佚名'), --姓名必须大于等于2
BornDate date not null check(datediff(year,BornDate,getdate())>=18),
Phone varchar(25) not null,
[Address] nvarchar(200) null default('宿舍'),
Email varchar(20) null
)
go

关于SqlServer表结构 2(回归基础)的更多相关文章

  1. Bat脚本备份sqlserver 表结构、存储过程、函数、指定表数据

    Bat脚本备份sqlserver 表结构.存储过程.指定表数据: @echo off cd /d %~dp0 ::备份表结构.存储过程和部分配置表的数据 set LogFile=report.log ...

  2. SqlServer表结构查询

    一.前言 近两天项目升级数据迁移,将老版本(sqlserver)的数据迁移到新版本(mysql)数据库,需要整理一个Excel表格出来,映射两个库之间的表格字段,示例如下: Mysql数据库查询表结构 ...

  3. Oracle表结构转换SqlSERVER表结构 脚本

    在审计工作中,有时需要将Oracle的表结构修改后再SqlSERVER中创建表结构,然后将数据导入到SqlSERVER中,在修改表结构的过程中方法狠多.手工修改,最蠢的方法,或者用工具UE批量修改,还 ...

  4. SQLServer 表结构相关查询(快速了解数据库)

    -- 表结构查询 SELECT 表名 then d.name else '' end, 表说明 then isnull(f.value,'') else '' end, 字段序号 = a.colord ...

  5. sqlserver表结构的修改

    表添加新字段 sqlserver alter table 表名 add 新增字段名 新增字段类型 是否允许为空,如: alter table [数据库名].[dbo].[表名称] add [新增字段] ...

  6. 查询sqlserver 表结构呀

    SQL Server里查询表结构命令 对于SQL Server数据库有两种方法查询表结构 第一种方法 sp_help Accounts_Users     其中Accounts_Users 表示表名 ...

  7. 查询Sqlserver 表结构信息 SQL

    SELECT 表名 then d.name else '' end, 表说明 then isnull(f.value,'') else '' end, 字段序号 = a.colorder, 字段名 = ...

  8. sqlserver表结构查询语句

    SELECT syscolumns.name,systypes.name,syscolumns.isnullable,syscolumns.length FROM syscolumns, systyp ...

  9. SQL server 表结构转Oracle SQL脚本

    SQL server 表结构转Oracle SQL脚本 /****** Object: StoredProcedure [dbo].[getOracle] Script Date: 2019/7/25 ...

随机推荐

  1. 数据可视化基础专题(十):Matplotlib 基础(二) 自定义配置文件和绘图风格(rcParams和style)

    https://matplotlib.org/api/rcsetup_api.html#module-matplotlib.rcsetup 一.什么是rcParams?我们在使用matplotlibl ...

  2. Python并发编程01 /操作系统发展史、多进程理论

    Python并发编程01 /操作系统发展史.多进程理论 目录 Python并发编程01 /操作系统发展史.多进程理论 1. 操作系统 2. 进程理论 1. 操作系统 定义:管理控制协调计算机中硬件与软 ...

  3. 通过实现网站访问计数器带你理解 轻量级锁CAS原理,还学不会算我输!!!

    一.实现网站访问计数器 1.线程不安全的做法 1.1.代码 package com.chentongwei.concurrency; import static java.lang.Thread.sl ...

  4. Linux桌面进化史

    自 20 世纪 90 年代初期以来,Linux 桌面也已从简单的窗口管理器发展为成熟.完整的桌面.那么它究竟是如何一步步发展至今的呢?作为从 1993 年就开始使用 Linux 的资深用户,FreeD ...

  5. 基于SSM框架的简单问答社区

    前言:学习了Spring.SpringMVC.MyBatis框架后,开发了一套简单的问答社区,前端采用Bootstrap开发框架. 版本信息 IDEA:2020.1.2 JDK:14.0.1 Mave ...

  6. .NET Core微服务开发服务间调用篇-GRPC

    在单体应用中,相互调用都是在一个进程内部调用,也就是说调用发生在本机内部,因此也被叫做本地方法调用:在微服务中,服务之间调用就变得比较复杂,需要跨网络调用,他们之间的调用相对于与本地方法调用,可称为远 ...

  7. 014.Nginx跨域配置

    一 跨域概述 1.1 同源策略 同源策略是一个安全策略.同源,指的是协议,域名,端口相同.浏览器处于安全方面的考虑,只允许本域名下的接口交互,不同源的客户端脚本,在没有明确授权的情况下,不能读写对方的 ...

  8. Gradle系列之认识Gradle任务

    原文发于微信公众号 jzman-blog,欢迎关注交流. 前面几篇学习了 Gradle 构建任务的基础知识,了解了 Project 和 Task 这两个概念,建议先阅读前面几篇文章: Gradle系列 ...

  9. 修改alpine Linux的Docker容器的时区

    适用对象 使用 Alpine Linux 发行版的 Docker 镜像容器. 仅仅适用于没有安装uclibc的系统. 修改步骤 进入容器命令行 # docker exec -it container_ ...

  10. tomcat8开启APR模式

    1 Apr模式介绍 Tomcat可以使用APR来提供超强的可伸缩性和性能,更好地集成本地服务器技术.APR(Apache Portable Runtime)是一个高可移植库,它是Apache HTTP ...