**********************补2016年5月23日的博客*************************

MySQL数据库 常用数据类型:

int                整数型            4个字节

Varchar           字符串型                          1个字是两个字符

bit                    bool型

datetime           日期时间型                      长度(字节):8

decimal             小数型

float   double      小数型

注:

varchar 规定长度,不管内容长度多少,实际长度小于等于规定长度

char规定长度,不管内容长度多少实际长度就是规定长度

建表应该注意的有:

【1】分类、分层、分步

【2】在数据库图表中的表之间创建关系:

一对多关系

一对多关系是最普通的一种关系。在这种关系中,A 表中的一行可以匹配 B 表中的多行,但是 B 表中的一行只能匹配 A 表中的一行。例如,publishers 和 titles 表之间具有一对多关系:每个出版社出版很多书,但是每本书名只能出自一个出版社。

只有当一个相关列是一个主键或具有唯一约束时,才能创建一对多关系。

多对多关系

多对多关系中,A 表中的一行可以匹配 B 表中的多行,反之亦然。要创建这种关系,需要定义第三个表,称为结合表,它的主键由 A 表和 B 表的外部键组成。例如,authors 和 titles 表具有多对多关系,这是由于这些表都与titleauthors 表具有一对多关系。titleauthors 表的主键是 au_id 列(authors 表的主键)和 title_id 列(titles 表的主键)的组合。

一对一关系

一对一关系中,A 表中的一行最多只能匹配于 B 表中的一行,反之亦然。如果相关列都是主键或都具有唯一约束,则可以创建一对一关系。

这种关系并不常见,因为一般来说,按照这种方式相关的信息都在一个表中。可以利用一对一关系来:

    • 分割具有多列的表。
    • 由于安全原因而隔离表的一部分。
    • 保存临时的数据,并且可以毫不费力地通过删除该表而删除这些数据。
    • 保存只适用于主表的子集的信息。

举例一:

(1) 一对一:  班级与班长之间的联系:

一个班级只有一个正班长

一个班长只在一个班中任职

(2) 一对多:班级与学生之间的联系:
                              一个班级中有若干名学生,
                             每个学生只在一个班级中学习
        (3) 多对多:课程与学生之间的联系:
                             一门课程同时有若干个学生选修
                             一个学生可以同时选修多门课程

举例二:

员工姓名,员工性别,员工年龄,岗位,部门名称,部门主管,部门职责。

如果它们都放在一起会产生冗余,粘连。

所以要建两个表:

员工(员工姓名,员工性别,员工年龄,岗位,部门代号)

部门(部门名称,部门主管,部门职责,部门代号)

举例三:

老师(代号,姓名,性别,年龄)

课程(代号,名称,课时数)

课程安排表(老师代号,课程代号,时间段)

MySQL数据库----------小知识点的更多相关文章

  1. Mysql数据库重要知识点(知了堂学习心得)

    Mysql数据库知识点 1.管理数据库语句: 使用数据库: use test; 添加数据库: create database 数据库名; create database test; 修改数据库: al ...

  2. mysql数据库小常识

    什么是数据库? 计算机处理和存储的一切信息都是数据. 计算机系统中一种用于存储数据的程序. 一种:计算机系统中有很多种能够存取数据的程序. 他们各有特长和长处,有自己的适用范围. 存取:能够保存数据避 ...

  3. mysql的小知识点(关于数据库的导入导出 对于windows)

    对于,一个存在的数据,我们该如何去打包成.sql属性的文件呢? 直接进行这两条语句: D:\Program Files\MySQL\mysql\bin>mysqldump -u root -p ...

  4. Oracle数据库小知识点整理

    -- 数据库存储数据 -- 市面上主流的数据库有哪些 -- 甲骨文  oracle   mysql --  IBM  db2  金融 --  微软  sqlserver --这些是关系型数据库. -- ...

  5. Mysql数据库 深度知识点

    停止命令:net stop mysql 启动命令:net start mysql   mysql登录命令 mysql -h ip -P 端口 -u 用户名 -p   mysql --version 或 ...

  6. Sql Server数据库小知识点总结

    把我在开发时候遇到的一点小知识持续更新在这里~ 1.where条件时常变 where UserID='1' 这里的UserID呢,它的值是经常在变化的,有时候要查2,有时候要查3的,有时候要查全部人! ...

  7. 六,mysql优化——小知识点

    1,选择适当的字段类型,特别是主键 选择字段的一般原则是保小不保大,能占用字节小的字段就不用大字段.比如主键,建议使用自增类型,这样节省空间,空间就是效率!按4个字节和按32个字节定位一条记录,谁快谁 ...

  8. 【Mysql数据库】知识点总结

    本文转载自:http://www.cnblogs.com/tonghun/p/7191131.html 一 数据库常用操作 mysql -u+username -p+password:登陆数据库管理系 ...

  9. 粗结MySql数据库基础知识点之一

    首先弄什么是数据库? 数据库就是用来存储和管理数据的仓库. 数据库存储数据的优点: 1.可存储大量的数据  2.方便检索  3.保持数据的一致性,完整性  4.安全 可共享  5.通过组合分析,可以产 ...

随机推荐

  1. window.onload与$(document).ready()之区别

    1.执行时间 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行.         $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕. 2 ...

  2. sqlserver 自增ID插入指定数据(转)

    set identity_insert 表名 ON --允许对自增列Id插入指定数据 insert into table_name(Id,Name) values(1,'test') set iden ...

  3. Expression Blend实例中文教程(2) - 界面快速入门

    上一篇主要介绍Expression系列产品,另外概述了Blend的强大功能,本篇将用Blend 3创建一个新Silverlight项目,通过创建的过程,对Blend进行快速入门学习. 在开始使用Ble ...

  4. Java - 避免使用finalizer

    Finalizers are unpredictable ,often dangerous ,and generally unnecessary. 在Java中,GC会自动回收不可达对象相关的空间,而 ...

  5. nodejs中引入art-template模板

    使用Webstorm创建nodejs express应用时,默认使用的是jade或者ejs模板,对于不习惯这两种模板语法的人来说确实不是很方便.没关系,这里我们使用art-template模板引擎,使 ...

  6. asp.net core2.0 连接mysql和mssql

    转自:https://www.jianshu.com/p/15a557ac43d9 1.连接mysql 第一步,新建asp.net core项目   新建项目 本例程作简单演示两种数据库的连接,为简便 ...

  7. Java 重写(Override)与重载(Overload)区别

    2019-04-1217:31:19 (1)方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载(Overloading). (2)方法重写是在子 ...

  8. Golang 的 TOML库

    TOML 的全称是 Tom's Obvious, Minimal Language,因为它的作者是 GitHub 联合创始人 Tom Preston-Werner. TOML 的目标是成为一个极简的配 ...

  9. sql left join 字符串

    select * FROM table1 as t1 right join (select '1,2,3,4,5'  as t) as tt on t1.Id=tt.t select * FROM t ...

  10. ogr2ogr使用

    简介 org2ogr是OGR模块中提供的一个重要工具,用于对数据源进行格式转换 使用方式 命令行参数 [xingxing.dxx@30_28_6_20 J50F001020]$ ogr2ogr --l ...