数据库(SQL Server)管理数据库表~新奇之处
说到“数据库”,我总有一种莫名的感觉,在刚刚接触到的数据库中就让我似懂非懂渡过着,于是思考着、于是在冷静的时空中让我回想到了很多的知识,不知你们是怎样过来的,真心希望我的这篇数据库总结能够让我们都有一个更进步的空间。
就像标题中所说的:“数据库之创建与管理数据库表”,或许说不上新颖之作,但我相信应该有能帮大家解决在学习中运到的一些问题,当然谁都不会是完美,都会有不一样的感触,所以也想借此来和大家多多的交流并分享学习数据库时的郁闷与愉快。
那好,就让我们进入我总结”数据库“时空之境吧!!!
如果说创建数据库,那我们首先就应该知道SQL Server中数据类型:
int:存储整型数字
numeric(18, 2):存储小数
decimal(18, 2):存储小数(长度上限为18位,逗号前后分别表示为小数的前后)
nvarchar():存储文字 unicode编码:
以后严重建议大家只要是保存字符串就用nvarchar()类型,n代表的unicode编码,该编码是国际通用编码,可以避免乱码的出
现。var代表长度可变。表中该列真正存储的内容就占它本身的空间,而不会占用该列通过(20)设置的长度所占用的空间。
archar():存储可变长度的文本
char(4):存储固定长度的文本
text();SQL Sever2000的使用使用的大文本类型,现在2005.2008 2012已经无情的毫无怜悯之心的抛弃了它,
nvarchar(Max)通用
dateTime:保存日期和时间
照片:image(二进制存储)
为了能让我们在初期对数据库的熟悉,所以特地规范了一些:
--以后我们存储姓名:nvarchar(20)
--存储年龄:int
--存储性别:bit:仅仅包括两个值(true、false)
--存储一篇文章:nvarchar(max)
(注意)尽量不要使用ntext或者是text,因为text和ntext读取效率非常低。
其次呢!对于管理表的数据时,我们当然就得有一些约束了,约束中自然是需要相对完整性的,其中就有非常重要的四种,让我们看看吧!
.四种完整性约束
1.实体完整性:针对数据行设置的完整性
2.域完整性:针对数据列设置的完整性。
3.引用完整性:外键约束
4.自定义完整性:为了满足我们的业务需求,我们自己量身定制的完整性约束,一般通过存储过程。
以上就是数据库的四种完整性约束,那它们具体的作用是什么,当然就是它们针对数据的设置与约束了,所以这个需要你们仔细的看看了,尤其是主外键之间的关系要理的特别清楚才行,否则你将很难吃透这个数据库,让我们都来理解理解吧!!!
01.主键约束
老师的这样一句话:“一张表一定要设置主键,否则别人会骂死你“。让我瞬间明白了主键原来这么 重要;
如果一张表不设置主键,到后续学习框架的时候,框架就欺负你,给你报错。
不能给自增列手动给值,这个值是由系统自动给的。
02.非空约束:其意相同
03.默认值约束:其意相同
04.check约束:通过表达式来给表格中的值定规则
05.外键约束:在一张表表A中某列是主键,但是在另外一张表表B中该列不是主键。那么表A称为主键表,表B称为外键表。
(注意:外键约束只能设置在外键表中)
之后呢!就是我们一般常识的标识列和通用匹配符,虽说简单,但也需要用心去记,否则再简单都终将不再是简单,反而可能会变成心中永远的难点,那么我们就来熟悉熟悉吧!
标识列:
为了唯一确定一行数据在该表中唯一而设定的一列。
--应用前提:
01.必须是int(smallint)类型
02.在标识规范处设置:标识种子,标识增量
(种子值:)标识种子:从哪个数据开始增长
(步长:)标识增量:每次增长几个数
通配符:
_:有且只有一个字符
%任意个任意字符
Like ‘’符(用来修饰的)
说了这么多,我们就应该注意一些常见问题了;
01.外键把控的不好
02.在SQL Server中,字符串和日期类型数据要加单引号,数值类型不用
03.每张表中必须都有一个主键,没有主键的表是不行的。
04.主键列不允许为空
05.不推荐使用复合主键,主键列选择依据:尽量简单。
06.如果找不到有意义的列作为表的主键,那么就加多一列ID作为该表的主键列。
剩下的那就是可能会遗漏的一些常识:
数据库表,要想删除有外键关系的表,必须先删除子表(外键表)。
不知不觉已经把数据库的管理数据表的总结差不多写完了,希望能够够帮到你们,不管是你还是我,如果有什么问题,请说出来我们一起去解决,我的进步旅程绝对不能缺少了你,
如果觉得我的总结还不错,那就继续关注我吧!我的”用SQL语句操作数据“即将随风席卷而来,如果你需要,我一定不会让你们等太久的。
数据库(SQL Server)管理数据库表~新奇之处的更多相关文章
- 数据库管理工具神器-DataGrip,可同时管理多个主流数据库[SQL Server,MySQL,Oracle等]连接
前言 DataGrip:Jet Brains出品的一款数据库管理工具(没错,是Jet Brains出品,必属精品).DataGrip整合集成了当前主流数据库(如:SQL Server, MySQL, ...
- 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效
数据库表设计时一对一关系存在的必要性 2017年07月24日 10:01:07 阅读数:694 在表设计过程中,我无意中觉得一对一关系觉得好没道理,直接放到一张表中不就可以了吗?真是说,网上信息什么都 ...
- 解决SQL Server管理器无法连接远程数据库Error: 1326错误
解决SQL Server管理器无法连接远程数据库Error: 1326错误 我们在在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例 ...
- 解决SQL Server管理器无法连接远程数据库的问题(转)
add by zhj: 本文最后那个数据库别名没搞明白,在我的测试中没有建别名,是可以的.远程登陆时,服务器名称: 服务器IP,端口号 (如223.42.155.248,52134 如果是默认端口号1 ...
- sql server的数据库个数、表个数及表的数据量统计
sql server的数据库个数.表个数及表的数据量统计 --由于今天要监控数据,急需统计实例中1有多少库2库里有多少表3每个表有多少数据 --将写好的代码贴出来,用到如下的: --sysobje ...
- SQL Server 2012 数据库笔记
慕课网 首页 实战 路径 猿问 手记 Python 手记 \ SQL Server 2012 数据库笔记 SQL Server 2012 数据库笔记 2016-10-25 16:29:33 1 ...
- SQL Server中数据库文件的存放方式,文件和文件组
原文地址:http://www.cnblogs.com/CareySon/archive/2011/12/26/2301597.html SQL Server中数据库文件的存放方式,文件和文件组 ...
- 微软ASP.NET网站部署指南(2):部署SQL Server Compact数据库
1. 综述 对于数据库訪问,Contoso University程序要求以下的软件必须随程序一起部署.由于不属于.NET Framework: SQL Server Compact (数据库引擎) A ...
- 使用Oracle Sql Developer将SQL SERVER 2008数据库移植到Oracle 11g
ORACLE官方提供的Sql Developer自带的Oracle Migration Workbench. 什么是Oracle SQL Developer?在官方页面上,是这样介绍它的: Oracl ...
- sql server 2008 数据库管理系统使用SQL语句创建登录用户步骤详解
介绍了sql server 2008 数据库管理系统使用SQL语句创建登录用户步骤详解 --服务器角色: --固定服务器角色具有一组固定的权限,并且适用于整个服务器范围. 它们专门用于管理 SQL S ...
随机推荐
- iOS 对象和json互相转换
// 将字典或者数组转化为JSON串 - (NSData *)toJSONData:(id)theData { NSError *error = nil; NSData *jsonData = [NS ...
- oracle 存储过程的用法
create or replace procedure myPro(inParams in number,outParams out number) is str varchar(200); beg ...
- JS string 截取
subStubstring(a,b); a:开始索引 b:结束索引 subStr(c,d) c:开始索引 d:截取数量.
- Redis 外部访问设置
1.错误原因 Redis搭建好后一般都是使用编程语言进行连接调用,默认Redis的设置是不允许外界访问的,连接Redis只能通过本地(127.0.0.1)来连接,而不能使用网络IP(192.168.1 ...
- 怎么使用Delphi获取当前的时间,精确到毫秒
先介绍一个可能比较常用的方法,获取当前时间 var datetime: string; begin datetime:= FormatDateTime('yyyy-mm-dd hh:mm:ss', N ...
- C++ 系列:深拷贝与浅拷贝
Copyright © 1900-2016, NORYES, All Rights Reserved. http://www.cnblogs.com/noryes/ 欢迎转载,请保留此版权声明. -- ...
- 11.Object方法
综述 Object是Java中所有类的父类,对它的学习十分的重要, Object的函数除了final方法,基本上都是被设计为要被覆盖的(Override),这节我们就一起来学习这些函数. 1.equa ...
- GDB的常用命令
定断点b line.会返回一个断点号(breakpoint-no). 输出p val.可以夹杂类型装换.解引用. 遇到断点自动执行命令commands breakpoint-no. 停止执行s. 退出 ...
- mysql 字符串 日期互转
一.字符串转日期 下面将讲述如何在MySQL中把一个字符串转换成日期: 背景:rq字段信息为:20100901 1.无需转换的: SELECT * FROM tairlist_day WHERE rq ...
- Swift String类型常规操作
去除string 首尾的空格var str = " Hello the world "let whitespace = NSCharacterSet.whitespaceAnd ...