MySQL

1.良好的数据库设计:                     数据库设计的缺点:

    1.节省数据的存储空间                  1.数据冗余,存储及空间浪费

    2.能够确保数据的完整性                 2.内存空间的浪费

    3.方便进行数据库应用系统的开发             3.数据更新和插入异常

2.数据库设计的步骤: 

    1.收集信息[充分了解设计需求]

    2.标识实体(Entity)[标识数据库要管理的关键对象或实体,一般为名称]

    3.标识每个实体的属性[Attribute]

    4.标识实体之间的关系[Relationship]

3.E(实体)-R(属性)图

  

    符号

含义

 MySQL 

实体,一般为名词

 MySQL

属性,一般为名词

 MySQL

关系,一般为动词

4.绘制E-R模型图:

  1.Visio

  2.亿图图示

  3.在线制图:https://www.processon.com

  4.脑图:xmind

5.关系模式

  概念: 用二维图的形式标识实体和实体之间联系的数据模型

  E-R图转换为关系模式的步骤

    1.把每个实体都转化为关系模式R(U)形式

    2.建立实体间联系的转换

6.数据规范化:

  概念 : 是指将被挖掘对象的属性数据按比例缩放,使其落入一个小的特定区间(就是对表中的属性来做设计,防止数据冗余,存储空间浪费,内存空间浪费,数据更新和异常)

  一般使用三大范式进行数据规范化

    三大范式:

      1.第一范式:的目的是确保每列的原子性

      2.第二范式要求每个表只描述一件事情

      3.如果一个关系满足第二范式,并且除了主键以外的其他列都不依赖于主键列,则满足第三范式

7.mysql的优势

  运行速度快  使用成本低  可移植性强  使用用户广

8.mysql的运行机制: 

9.Dos命令

  1.命令行连接mysql: 

    mysql-h  服务器主机地址-u  用户名-p  密码

  2.创建数据库

    create database  数据库名 ;

  3.查看数据库列表:

    show database;

  4.选择数据库

    use 数据库名;

  5.删除数据库

    drop database 数据库名;

10.数值类型

  unsigned属性; 标识为无符号数

  zerofill 属性: 宽度位数不足以0填充(若某数值字段指定了zerofill属性,将自动添加unsigned)

11.数据类型:

  1.字符串

    char: 定长字符串

    varchar:可变字符串

    tinytext: 微型文本串

    text  :  文本串

  2.日期类型

    date : 日期(年月日 YYYY-MM--DD)[不需要设置长度 ]

    datetime: 日期(年月日 YYYY-MM-DD hh-mm-ss)[不需要设置长度]

    times tamp : 某段时间精确到1s(若某日期字段默认值为当前日期,一般设置为times tamp类型)

    time : 时间 (hh-mm-ss)

    year : YYYY格式的年份(1901-2155)

12.创建表:

  语法:

    create table ‘ 表名 ‘(

      ‘ 列名1 ‘ 类型(长度) 各类约束  非空  注释 ,

    )comment=‘ 注释 ‘;

  eg:

    CREATE TABLE `student`(

      `studentNo` INT(4) NOT NULL COMMENT ‘学号‘ PRIMARY KEY,

      `loginPwd` VARCHAR(20) NOT NULL COMMENT ‘密码‘,

      `studentName` VARCHAR(50) NOT NULL COMMENT ‘学生姓名‘,

      `sex` CHAR(2) DEFAULT ‘男‘ NOT NULL COMMENT ‘性别‘,

      `gradeId` INT(4) UNSIGNED COMMENT ‘年级编号‘,

       `phone` VARCHAR(50) COMMENT ‘联系电话‘,

      `address` VARCHAR(255) DEFAULT ‘地址不详‘COMMENT ‘地址‘,

      `bornDate` DATETIME COMMENT ‘出生时间‘,

       `email` VARCHAR(50) COMMENT‘邮件账号‘,

       ` identityCard ` VARCHAR(18) UNIQUE KEY COMMENT ‘身份证号‘ )       COMMENT=‘学生表‘;

    注 : 1.多字段使用‘  , ‘隔开

      2.保留字用 ‘  ‘ 括起来

      3.单行注释 :  # ......

       多行注释 : /*.......*/

13. 字段的约束及属性

    名称          关键字          说明

   非空约束         not  null         不允许为空值

   默认约束         default          默认值

   唯一约束         unique key(uk)      只有唯一的一个值

   主键约束         primary key(pk)      主键

   外键约束         foreign key(fk)       用于建立关系

   自动增值         auto_increment       用于主键 ,自增1

14.删除表:

   drop table [ if exists ]  表名 ;

    在删除表之前 , 先试用 if exists 语句验证表是否存在

15.存储引擎

  1.mysql的存储引擎: (查看当前默认存储引擎)

      show variables like ‘ storage_engine% ‘

   修改存储引擎: (修改my,ini配置文件)

      default-storage-engine=InnoDB --> 改为其他存储存储  

  2.设置表的存储引擎:

      create table 表名(

        #省略代码 

    ) engine = 存储对象 / myisam 

  3.myisam 与 innodb类型的适用场景

    1.使用myisam : 不需事务 , 空间小 , 以查询访问为主

    2.使用innodb : 多删除 , 更新操作 , 安全性高 , 事务处理及并发控制

  4.myisam类型表文件:         innod类型表文件

    .frm: 表结构定义文件        .frm : 表结构定义文件

    .myd: 数据文件           ibdata1 文件

    .myi: 索引文件

  5.mysql系统帮助 :    help 查询内容 ;

MySQL

上一篇:Oracle学习笔记:dba_tables、all_tables、user_tables区别


下一篇:MongoDB启动和关闭问题