【基础知识】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 ...
随机推荐
- 8.adr与ldr伪指令的区别
ldr和adr都是伪指令,区别是ldr是长加载.adr是短加载. 重点:adr指令加载符号地址,加载的是运行时地址: ldr指令加载符号地址时,加载的是链接地址.
- [原创] 更新Ubuntu自带的python2.X版本 ImportError: No module named pip;ImportError: No module named _sqlite3
Ubuntu14.04自带的Python2版本,是2.7.6的,想更新为最新的2.7.11,操作如下: 1. 从python官网下载2.7.11的source源码包 Python-2.7.11.tgz ...
- 机器学习中的算法——决策树模型组合之随机森林与GBDT
前言: 决策树这种算法有着很多良好的特性,比如说训练时间复杂度较低,预测的过程比较快速,模型容易展示(容易将得到的决策树做成图片展示出来)等.但是同时,单决策树又有一些不好的地方,比如说容易over- ...
- 创建Android项目时出错——No resource found that matches the given name 'Theme.AppCompat.Light'
创建Android项目时出错,error: Error retrieving parent for item: No resource found that matches the given nam ...
- LR工具使用之场景设置
LR工具使用之场景设置 一.操作步骤 1.运行loadrunner,进入运行负载测试控件:
- js数组合并
// 第一种 var mergeTo = [4,5,6], mergeFrom = [7,8,9]; mergeTo = mergeTo.concat(mergeFrom); mergeTo; // ...
- 手把手教你编写一个具有基本功能的shell(已开源)
刚接触Linux时,对shell总有种神秘感:在对shell的工作原理有所了解之后,便尝试着动手写一个shell.下面是一个从最简单的情况开始,一步步完成一个模拟的shell(我命名之为wshell) ...
- git常用操作
批量删除以bran开头的本地分支 git branch |grep 'bran'|xargs git branch -d
- 企业好助手U-Mail邮件服务器软件
对于一家企业,最核心的是什么?有人说人才,有人说技术,也有人说是数据(信息),依小编来 看,这些答案都没错,人才会流动,技术在不断更新,唯有数据(信息),日积月累,将沉淀为公司历史的一部分,作为决策的 ...
- LZW压缩算法
转载自http://www.cnblogs.com/jillzhang/archive/2006/11/06/551298.html 记录此处仅自己供学习之用 lzw解压缩算法: 用单个字符初始化字符 ...