关于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 ...
随机推荐
- 简单shellcode学习
本文由“合天智汇”公众号首发 作者:hope 引言 之前遇到没开启NX保护的时候,都是直接用pwtools库里的shellcode一把梭,也不太懂shellcode代码具体做了些什么,遇到了几道不能一 ...
- 攻防世界/强网杯 2019-supersqli
靶场地址:https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=1&id=5417&page= ...
- Django之 Views组件
本节内容 路由系统 models模型 admin views视图 template模板 我们已经学过了基本的view写法 单纯返回字符串 1 2 3 4 5 6 7 8 def current_dat ...
- Python之迭代器、装饰器、软件开发规范
本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 孩子,我现在有个需 ...
- [C++面向对象]-C++成员函数和非成员函数
大纲: 1.成员函数和非成员函数 2.详细解释 3.总结 4.参考 1.成员函数和非成员函数 其实简单来说成员函数是在类中定义的函数,而非成员函数就是普通函数,即不在类中定义的函数,其中非成员 ...
- rabbitmq+sleuth+zinkip 分布式链路追踪
我们都知道,微服务之间通过feign传递,在复杂的微服务架构系统中,几乎每一个前端请求都会形成一个复杂的分布式服务调用链路,在每条链路中任何一个依赖服务出现延迟超时或者错误都有可能引起整个请求最后的失 ...
- Ethical Hacking - NETWORK PENETRATION TESTING(7)
Gaining Access to encrypted networks Three main encryption types: 1. WEP 2.WPA 3.WPA2 WEP Cracking W ...
- Python Ethical Hacking - Persistence(1)
PRESISTENCE Persistence programs start when the system starts. Backdoors -> maintain our access. ...
- C#中的char和string的使用简介
char 字符 char代表一个Unicode字符,它是System.Char的别名 char someChar = 'a';//定义了一个字符 char newLine= '\n';//这是一个换行 ...
- HTTP请求方式及常见问题
请求方式 当前HTTP一共有八种方式.有三种是有HTTP1.0提供,剩余五种则是有HTTP1.1提供 常见问题 啥是OPTIONS?有啥作用 是浏览器对复杂跨域请求的一种处理方式,在真正发送请求之前, ...