【基础知识】Sql和Ado.Net第12天
一、 主键(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天的更多相关文章
- 最基础知识 sql之left join、right join、inner join的区别
sql之left join.right join.inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括 ...
- Java基础知识强化之网络编程笔记12:TCP之TCP协议上传文本文件并给出反馈
1. 客户端: package cn.itcast_12; import java.io.BufferedReader; import java.io.BufferedWriter; import j ...
- 21.Nodejs基础知识(下)——2019年12月16日
2019年10月04日16:56:23 7. 模块 7.1 暴露一个类,字段 var bar = require("./bar.js"); var msg = "你好&q ...
- 20.Nodejs基础知识(上)——2019年12月16日
2019年12月16日18:58:55 2019年10月04日12:20:59 1. nodejs简介 Node.js是一个让JavaScript运行在服务器端的开发平台,它让JavaScript的触 ...
- Java基础知识强化之集合框架笔记12:Collection集合存储字符串并遍历
1. Collection集合存储字符串并遍历 分析: (1)创建集合对象 (2)创建字符串对象 (3)把字符串对象添加到集合中 (4)遍历集合 2. 代码示例: package cn.itcast ...
- Java基础知识强化之IO流笔记12:递归之递归解决问题的思想(图解)
1. 使用递归计算5!的结果,递归思想的本质如下: 2. 下面就要使用代码实现这个递归: 递归实现分析: (1)做递归要写一个方法 (2)出口条件 (3)规律 代码实现如下: package com. ...
- 数据库学习笔记 - MySQL基础知识
一.数据库基础知识 1.1 Whats's 数据库 数据库(Database,DB):将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合.如:大型-银行存储的信息,小型-电话簿. 数据 ...
- SQL数据库基础知识-巩固篇<一>
SQL数据库基础知识-巩固篇<一>... =============== 首先展示两款我个人很喜欢的数据库-专用于平时个人SQL技术的练习<特点:体积小,好安装和好卸载,功能完全够用 ...
- 常见SQL语句和SQL基础知识
引自:http://blog.csdn.net/u012467492/article/details/46790205 SQL语句考察(一) 1.查询出每门课都大于80 分的学生姓名 name k ...
随机推荐
- C语言的time.h解释python的time
clock_t clock(void),对比python的clock() 返回程序执行的时间,clock_t的实际类型是long #include<Windows.h> Sleep(); ...
- asp.net C# 未能加载文件或程序集或它的某一个依赖项。需要强名称程序集。的解决办法
asp.net C# 未能加载文件或程序集或它的某一个依赖项.需要强名称程序集.的解决办法 出现这个错误是原因:是有签名的DLL引用了无签名的DLL 如上图所示,就是因为引用Entity.MVCEnt ...
- 8.1H5学习笔记
内嵌框架 说明: 属性 属性值 说明 width px,% 指定框架的宽度 height px,% 指定框架的高度 scrolling yes,no,auto 是否显示滚动条 frameborder ...
- struts2各个jar包的作用
---------------------------------------------------struts2核心jar包------------------------------------ ...
- redis配置认证密码
redis配置密码1.通过配置文件进行配置yum方式安装的redis配置文件通常在/etc/redis.conf中,打开配置文件找到 #requirepass foobared 去掉行前的注释,并修改 ...
- okhttp-utils的封装之okhttp的使用
HTTP是现代应用的网络.这就是我们如何交换数据和媒体.让你的东西做HTTP有效负载的速度和节省带宽. okhttp是HTTP客户端的有效默认: HTTP 2支持允许所有请求相同的主机共享一个插座. ...
- (转载)selenium-webdriver(python)
转载地址: http://www.cnblogs.com/fnng/p/3183777.html 本节重点: 简单对象的定位 -----自动化测试的核心 对象的定位应该是自动化测试的核心,要想操作一个 ...
- SQL Server 【CTE + FOR XML PATH】使用笔记~
CREATE FUNCTION [dbo].[Getxxxxxxxxx] ( @productCategoryId INT, @SplitChar varchar ) RETURNS NVARCHAR ...
- JDBC连接数据库(SQLServer和MySQL)配置总结
[JDBC连接SQL Server] [准备工作] 1.下载Eclipse-JavaEE: 2.下载Tomcat8.0: 3.下载Microsoft JDBCDriver 4.1 for SQL Se ...
- Spring 4 官方文档学习(十一)Web MVC 框架之编码式Servlet容器初始化
在Servlet 3.0+ 环境中,你可以编码式配置Servlet容器,用来代替或者结合 web.xml文件.下面是注册DispatcherServlet : import org.springfra ...