一、 主键(PrimaryKey)

1. 主键是数据行的唯一标识。不能重复,不可为空,主键建议选择一般不会修改的列!

2. 主键的作用:保证表中的每条数据的唯一性。

3. 主键的分类:

a) 逻辑主键:选择无实际意义的自动标号或GuId列为主键(建议使用)。

b) 业务主键:使用过程中有实际意义的列作为主键

4. 组合主键(复合主键):同时选择多列作为一个主键(一般不建议使用)

5. 选择主键的策略(选什么样的列作为主键):

a) 主键,建议选择那些一般不会被修改的列。

b) 选择单列,不要选择多列(不用组合主键)

c) 选择简单列(整数列(自动编号))

二、 外键(ForeignKey)

1. 两张表都有主键。商品表的主键是,商品Id。厂家表的主键是,厂家Id。但是,在商品表中需要引用厂家表。所以在商品表中增加一列,这一列是用来引用厂家表的主键(厂家Id)的。所以在商品表中增加的这列就叫外键。商品表就叫外键表,厂家表叫主键表。

三、 常见的数据类型

1. Varchar和char有什么区别:

Varchar是可变长度,最多可以存储十个字节,如果实际存储的长度不足十个字节,则会动态按照实际的长度。【节省空间】

char(10)是固定长度,表示数据库中存储的时候战十个空间,超过十个就报错,不够十个就会用空格补全

2. Nchar(10)和char(10)的区别:

a) Char用来存储数据的时候,英文占一个字节,中文占2个字节。Char或者varchar的小括号中的最大长度可以写8000

b) Nchar来存储数据的时候无论存储的是中文还是英文么个字符占两个字节z可以存储10个字符或10个汉字。最大可以写4000

3. 不建议使用text与ntext,推荐使用varchar(max)与nvarchar(max)

郝喜路

http://www.cnblogs.com/haoxilu/

【基础知识】Sql和Ado.Net第12天的更多相关文章

  1. 最基础知识 sql之left join、right join、inner join的区别

    sql之left join.right join.inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括 ...

  2. Java基础知识强化之网络编程笔记12:TCP之TCP协议上传文本文件并给出反馈

    1. 客户端: package cn.itcast_12; import java.io.BufferedReader; import java.io.BufferedWriter; import j ...

  3. 21.Nodejs基础知识(下)——2019年12月16日

    2019年10月04日16:56:23 7. 模块 7.1 暴露一个类,字段 var bar = require("./bar.js"); var msg = "你好&q ...

  4. 20.Nodejs基础知识(上)——2019年12月16日

    2019年12月16日18:58:55 2019年10月04日12:20:59 1. nodejs简介 Node.js是一个让JavaScript运行在服务器端的开发平台,它让JavaScript的触 ...

  5. Java基础知识强化之集合框架笔记12:Collection集合存储字符串并遍历

    1.  Collection集合存储字符串并遍历 分析: (1)创建集合对象 (2)创建字符串对象 (3)把字符串对象添加到集合中 (4)遍历集合 2. 代码示例: package cn.itcast ...

  6. Java基础知识强化之IO流笔记12:递归之递归解决问题的思想(图解)

    1. 使用递归计算5!的结果,递归思想的本质如下: 2. 下面就要使用代码实现这个递归: 递归实现分析: (1)做递归要写一个方法 (2)出口条件 (3)规律 代码实现如下: package com. ...

  7. 数据库学习笔记 - MySQL基础知识

    一.数据库基础知识 1.1 Whats's 数据库 数据库(Database,DB):将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合.如:大型-银行存储的信息,小型-电话簿. 数据 ...

  8. SQL数据库基础知识-巩固篇<一>

    SQL数据库基础知识-巩固篇<一>... =============== 首先展示两款我个人很喜欢的数据库-专用于平时个人SQL技术的练习<特点:体积小,好安装和好卸载,功能完全够用 ...

  9. 常见SQL语句和SQL基础知识

    引自:http://blog.csdn.net/u012467492/article/details/46790205 SQL语句考察(一) 1.查询出每门课都大于80 分的学生姓名 name   k ...

随机推荐

  1. 在HttpClient请求的时候,返回结果解析时出现java.io.IOException: Attempted read from closed stream. 异常,解决

    原因是EntityUtils.toString(HttpEntity)方法被使用了多次.所以每个方法内只能使用一次.

  2. Python自动化 【第五篇】:Python基础-常用模块

    目录 模块介绍 time和datetime模块 random os sys shutil json和pickle shelve xml处理 yaml处理 configparser hashlib re ...

  3. css3弹性盒子模型

    当下各种手机,平板尺寸不一,如果盒模型只能固定尺寸,不能随意压缩,将不能很好的迎合这个时代.所以css3推出了新的盒模型——弹性盒子模型(Flexible Box Model). 弹性盒模型可以水平布 ...

  4. Linux_07------Linux的用户和用户组管理

    段 * 用户名:密码占位符:用户编号:用户组编号:用户注释信息:用户主目录:shell类型 * 每一行对应一个用户 * * /etc/shadow 存储用户密码 * 与passwd配置文件一一对应, ...

  5. javascript中document.appendChild和document.body.appendChild的问题

    在IE7中 var conentDiv = document.createElement("div"); document .body .appendChild(conentDiv ...

  6. Spring----->projects----->Spring Security

    1.Spring Security概述 Spring Security是spring社区若干projects中的一个 Spring Security用于为基于spring开发的application提 ...

  7. 《机器学习实战》学习笔记——第14章 利用SVD简化数据

    一. SVD 1. 基本概念: (1)定义:提取信息的方法:奇异值分解Singular Value Decomposition(SVD) (2)优点:简化数据, 去除噪声,提高算法的结果 (3)缺点: ...

  8. MATLAB - 运算符

    1.关系运算符用来比较两个数之间的大小关系,在Matlab中的关系运算符包括: <  小于 <= 小于或等于 >        大于 >=      大于或等于 ==     ...

  9. 简单的python服务器程序

    一个接受telnet输入的服务器端小程序 #!/usr/local/bin/python3.5 #coding:utf-8 import socket host = '' port = 51423 s ...

  10. 开源PLM软件Aras详解二 汉化以及界面

    Aras安装完毕之后,默认语言为英语,对于国内很多制造业并不适用,那么下面就来说说如何汉化 首先下载汉化包:zh-cn_languagepack-110v3.zip 步骤如下: 步骤1- 设定安装程序 ...