关于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:日期时间 年月日时分秒

  1. --primary key 1.不允许为空 2.不允许重复 3.可以被子表的外键列引用
  2. --identity(1,1) 标识列只能在整型列上使用 只读的不允许修改
  3. --not null 不允许为空
  4. --unique不允许重复,唯一
  5. --foreign key 外键
  6. --references 引用
  7. --check 检查约束用来判断数据类型是否合法
  8. --getdate获取当前系统时间
  9. --datediff 时间差 datediff(year,BornDate,getdate())参数一:按年来算时间差(也可以是month,day),参数二:录入时间 ,参数三系统时间 后面时间-前面时间
  10. --len()获取字符数量
  11. create table Grade
  12. (
  13. Id int primary key identity(1,1),
  14. GradeName varchar(10) not null
  15. )
  16. go
  17. create table Class
  18. (
  19. Id int primary key identity(1,1),
  20. ClassName varchar(10) not null unique,
  21. GradeId int foreign key references Grade(Id)
  22. )
  23. go
  24. create table Student
  25. (
  26. Id int primary key identity(1,1),
  27. StuCode int not null,
  28. ClassId int references Class(Id) not null,
  29. StuName nvarchar(10) not null check(len(StuName)>=2) default('佚名'), --姓名必须大于等于2
  30. BornDate date not null check(datediff(year,BornDate,getdate())>=18),
  31. Phone varchar(25) not null,
  32. [Address] nvarchar(200) null default('宿舍'),
  33. Email varchar(20) null
  34. )
  35. 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. 学习记录 | 文件收集-Php

    宝贝推荐 推荐新手使用phpStudy这个建站,太方便了 实验初衷 大学什么事情都多,所以什么事情都要偷一下懒,大学总有收不完的青年大学习,我就想能不能来个自助收集然后捣鼓,捣鼓就有了简单的收集程序. ...

  2. springBoot整合redis(作缓存)

    springBoot整合Redis 1,配置Redis配置类 package org.redislearn.configuration; import java.lang.reflect.Method ...

  3. 简单了解一下 Swagger

    一.Swagger 1.什么是 Swagger ? Swagger 是一个规范和完整的框架,用于生成.描述.调用以及可视化的 Restful 风格的 Web 服务. 简单的理解:是一款 REST AP ...

  4. Python并发编程06 /阻塞、异步调用/同步调用、异步回调函数、线程queue、事件event、协程

    Python并发编程06 /阻塞.异步调用/同步调用.异步回调函数.线程queue.事件event.协程 目录 Python并发编程06 /阻塞.异步调用/同步调用.异步回调函数.线程queue.事件 ...

  5. map数据按照list排序

    简介 (Introduction): 背景 需要对字段进行排序,但是,一个字段的结果存在一个map中,一个存在list中,需要让map的数组,按照list的顺序进行排序 结构图 list顺序 [ { ...

  6. 高效C++:让自己习惯C++

    视C++为一个联邦语言 面向过程,面向对象,泛型编程,元编程,C++同时支持,强大而迷惑 C++语言可以分为如下4个部分: C,C语言相同 C with Class,包括封装.继承.多态... Tem ...

  7. Java实现简单的增删改查操作

    需求分析:通过数组 ,完成 对学生信息的 管理 (增删改查)创建1个 学生类创建1个 CRUD的类 – 学生管理类 并测试 在这个程序中我只运用了两个类进行操作 package com.hopu.de ...

  8. 网易邮箱如何使用二次验证码/谷歌身份验证器/两步验证/虚拟MFA?

    登陆后点邮箱名——安全设置——开通两步验证,用二次验证码微信小程序绑定即可 具体步骤见链接  网易邮箱如何使用二次验证码/谷歌身份验证器/两步验证/虚拟MFA? 二次验证码小程序于谷歌身份验证器APP ...

  9. Android Studio采坑记录

    折腾了几个月的Android Studio,终于在今天被我搞定了 ( ̄▽ ̄)~* 开贴记录下,免得下次再次采坑 先说下我之前电脑的环境配置吧,sdk是几年前在网上下载别人整理出来的包,一直没有更新过 ...

  10. 使用iOS网络请求

    https://github.com/yuantiku/YTKNetwork/blob/master/Docs/2.0_MigrationGuide_cn.md