关于SqlServer表结构 2(回归基础)
关于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(回归基础)的更多相关文章
- Bat脚本备份sqlserver 表结构、存储过程、函数、指定表数据
Bat脚本备份sqlserver 表结构.存储过程.指定表数据: @echo off cd /d %~dp0 ::备份表结构.存储过程和部分配置表的数据 set LogFile=report.log ...
- SqlServer表结构查询
一.前言 近两天项目升级数据迁移,将老版本(sqlserver)的数据迁移到新版本(mysql)数据库,需要整理一个Excel表格出来,映射两个库之间的表格字段,示例如下: Mysql数据库查询表结构 ...
- Oracle表结构转换SqlSERVER表结构 脚本
在审计工作中,有时需要将Oracle的表结构修改后再SqlSERVER中创建表结构,然后将数据导入到SqlSERVER中,在修改表结构的过程中方法狠多.手工修改,最蠢的方法,或者用工具UE批量修改,还 ...
- SQLServer 表结构相关查询(快速了解数据库)
-- 表结构查询 SELECT 表名 then d.name else '' end, 表说明 then isnull(f.value,'') else '' end, 字段序号 = a.colord ...
- sqlserver表结构的修改
表添加新字段 sqlserver alter table 表名 add 新增字段名 新增字段类型 是否允许为空,如: alter table [数据库名].[dbo].[表名称] add [新增字段] ...
- 查询sqlserver 表结构呀
SQL Server里查询表结构命令 对于SQL Server数据库有两种方法查询表结构 第一种方法 sp_help Accounts_Users 其中Accounts_Users 表示表名 ...
- 查询Sqlserver 表结构信息 SQL
SELECT 表名 then d.name else '' end, 表说明 then isnull(f.value,'') else '' end, 字段序号 = a.colorder, 字段名 = ...
- sqlserver表结构查询语句
SELECT syscolumns.name,systypes.name,syscolumns.isnullable,syscolumns.length FROM syscolumns, systyp ...
- SQL server 表结构转Oracle SQL脚本
SQL server 表结构转Oracle SQL脚本 /****** Object: StoredProcedure [dbo].[getOracle] Script Date: 2019/7/25 ...
随机推荐
- When Lambo with Howdoo
原文链接:https://howdoo.io/when-lambo/ 为了庆祝即将推出的革命性新社交媒体平台Howdoo以及我们令人惊喜的合作伙伴关系和社区,我们正在发起一项竞赛,以最终回答“When ...
- python数据处理(三)之处理pdf文件
代码以及资料 https://github.com/jackiekazil/data-wrangling 1.前言 尽可能地寻找可以替代pdf格式的数据 2.解析pdf的编程方法 安装slate pi ...
- 数据可视化之powerBI基础(六)Power BI的“问答”,你用过吗?
https://zhuanlan.zhihu.com/p/64412190 本文来自星球嘉宾"海艳"的分享,关于Power BI的问答功能以及各项细节,海艳详细为大家逐一介绍,下 ...
- Python面试【315+道题】
第一部分 Python基础篇(80题) 为什么学习Python? 通过什么途径学习的Python? Python和Java.PHP.C.C#.C++等其他语言的对比? 简述解释型和编译型编程语言? P ...
- js常见删除绑定的事件
1. elem.onclick = null / false; //直接解除 例子如下: var div = document.getElemetById('id'); div.onclick = ...
- webStrom中配置nodejs
1.安装nodejs 下载地址:node.js:https://nodejs.org/download/ 按照提示安装即可 2.安装WebStrom 按照提示安装即可 下载地址:webstorm:ht ...
- 你真的清楚DateTime in C#吗?
DateTime,就是一个世界的大融合. 日期和时间,在我们开发中非常重要.DateTime在C#中,专门用来表达和处理日期和时间. 本文算是多年使用DateTime的一个总结,包括DateTim ...
- 阅读手札 | 手把手带你探索『图解 HTTP』
前言 本文已经收录到我的 Github 个人博客,欢迎大佬们光临寒舍: 我的 Github 博客 学习清单: 一.网络基础 TCP/IP 通常使用的网络(包括互联网)是在 TCP/IP 协议族的基础上 ...
- Ethical Hacking - NETWORK PENETRATION TESTING(19)
MITM-DNS Spoofing DNS Spoofing allows us to redirect any request to a certain domain to another doma ...
- tineMCE 踩坑:images_upload_handler
tineMCE 的官方示例提供了前端上传图片方法 images_upload_handler 的写法. 但官方写的有点问题,上传会报错. 不过修改也很简单: images_upload_handler ...