.NET学习笔记之数据库02

1、数据冗余的问题:

1>造成了存储空间的浪费。   2>更新异常,删除异常,

所以一般情况下不允许出现表中出现数据冗余。

--------------------------解决方法------------------------------------

把原来的表中的数据拆分成多个表来存储。

当把表中信息拆分成多个表来存储的时候会出现一个问题:如何将这张表的数据关联起来?

使用主键和外键来进行关联,使用主外建就能将不同表中的数据联系起来。

什么是外键,如何通过主外键将表中的数据关联起来?

答:当把数据拆分成两张表来存储的时候,每个表都有自己的主键。

其实一张表中,除了外键外,又多了一列,这列用来引用另外一张表中的主键,那么这列就是第一张表中的“外列键“,有外列键的表叫做外键表,现对来说,主键被引用的那张表叫做”主键表“。

因为外键列中引用的是另外一张表中的主键列的数据,所以外键列的数据是不能随便写的,必须实在另外一张表中的主键列中已经存在的数据。

时间: 2024-08-26 06:16:09

.NET学习笔记之数据库02的相关文章

Symfony2学习笔记之数据库操作

数据库和Doctrine让我们来面对这个对于任何应用程序来说最为普遍最具挑战性的任务,从数据库中读取和持久化数据信息.幸运的是,Symfony和Doctrine进行了集成,Doctrine类库全部目标就是给你一个强大的工具,让你的工作更加容易. Doctrine是完全解耦与Symfony的,所以并不一定要使用它. 一个简单例子:一个产品,我们首先来配置数据库,创建一个Product对象,持久化它到数据库并把它读回来. 首先我们需要创建一个bundle: $php app/console gene

Django 学习笔记之三 数据库输入数据

假设建立了django_blog项目,建立blog的app ,在models.py里面增加了Blog类,同步数据库,并且建立了对应的表.具体的参照Django 学习笔记之二的相关命令. 那么这篇主要介绍往数据库中添加数据,django默认的是sqlite3数据库. 在建立完django_blog项目后,不要忘了把 blog 加入到 settings.py 中的 INSTALLED_APPS 中. 一.同步数据库,创建相应的表 具体的参照Django 学习笔记之二的的同步数据库. 二.数据输入 下

Mysql DBA高级运维学习笔记-mysql数据库介绍

本文为我自己学习老男孩MySQL DBA 高级运维课程的学习笔记,内容均出自老男孩MySQL DBA 高级运维课程,老男孩老师讲的很好,非常感谢老男孩老师.我是一个菜鸟刚接触运维,如果我写的文章有不对的地方:请各位行业的精英.老师多多批评指点,呵呵~ 1.1 数据库介绍 1.1.1 什么是数据库?简单的说,数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织.存储的,我们可以通过数据库提供的多种方法来管理数据库里的数据. 1.2 数据库的

SQL学习笔记之数据库专题(四):浅谈JDBC用法

数据库厂商提供的用来操作数据库用的jar包就是数据库驱动.各个厂商如果提供各自的数据库驱动的话会导致开发人员学习成本太高,所以sun公司提供了一套数据库驱动应该遵循的接口规范,这套规范就叫做JDBC,本质上是很多的接口.简而言之,JDBC就是一套操作数据库的接口规范,由于所有的数据库驱动都遵循JDBC规范,我们在学习和使用数据库时只要学习JDBC中的接口就可以了. 组成JDBC的2个包:java.sql,javax.sql,开发JDBC应用需要以上2个包的支持外,还需要导入相应JDBC的数据库实

SQL学习笔记之数据库专题(二):Android下SQL数据库开发

在Android开发 中,数据库是不可缺少的.在Android开发中,用的是一种小型的嵌入式数据库,sqllite.今天会写两篇关于Android开发环境下数据库开发的文章,第一篇先介绍使用android自带的API来实现数据库的使用和管理以及增删改查.数据库升级的相关操作. 一.数据库第一次生成 1.javabean文件的准备 这里以一个Person类为例子来描述 package com.example.freedomsql.bean; import java.io.Serializable;

Android学习笔记--Sqlite数据库

前几天学习了Android中的数据存储,包括文件存储,SharedPreferences存储,还有就是Acndroid中的特色:SQLite数据库存储了.让我比较惊讶的是Android中竟然内嵌了一个轻量型的数据库SQLite数据库,使得本地的数据持久化有了一个质的飞跃. 通过前两天上课听老师讲解,和课下自己看书总结,想在博客上把自己对于SQLite数据库的理解做一下总结,也是方便之后的复习.Android为了让我们能够更加方便的管理数据库,专门提供了SQLiteOpenHelper帮助类,这个

Mysql DBA 高级运维学习笔记-Mysql数据库中的日志文件

1.MySQL 引擎概述 1.1 什么是存储引擎 我们在录制一个视频文件的时候,可以转换成不同的格式如mp4,avi,wmv等,而且在电脑的磁盘上也会存在于不同类型的文件系统windows里常见的ntfs,fat32,存在于linux操作系统里常见的ext3,ext4,xfs.但是跟我们呈现的内容都是一样的,直观的区别是占用系统空间的大小与清晰程度不一样.那么数据库存储引擎也有很多种存储方式.无论用什么存储引擎来存储,用户看到的数据都是一样的.不同的引擎存储,引擎功能,占用的空间的大小,读取性能

Hibernate学习笔记(一)-->数据库单表操作

Hibernate框架是一个全ORM映射框架,是一个非常流行的数据库操作框架之一,现在比较流行的还有MyBatis半ORM映射框架 在MyEclipse IDE开发工具中,可以很轻松的搭建Hibernate框架. 一.搭建一个项目 1.首先在MyEclipse中搭建一个web项目. 2.选中项目右键-->myeclipse-->Project Facets-->找到hibernate.这样就为项目添加了hibernate支持 3.打开hibernate.cfg.xml配置文件,在可视化编

Serlvet学习笔记之三—数据库的操作

import java.sql.*; import java.io.*; import javax.servlet.http.*; public class Logincl extends HttpServlet{ public void doGet(HttpServletRequest req,HttpServletResponse res){ Connection ct=null; Statement sm=null; ResultSet rs=null; try { String u=re