zoukankan      html  css  js  c++  java
  • MySQL(01)基础

    安装MySQL 5.7

    官网下载 :https://dev.mysql.com/downloads/mysql/

    以压缩包的方式安装比较方便 , 下载好后, 解压到自定义目录, 添加环境变量 path=文件目录下的bin  

    在文件的根目录下(和bin同级)添加一个 my.ini 配置文件 ,文件内容

    [mysqld]
    basedir=D:MySQL5.7mysql-5.7.35-winx64mysql-5.7.35-winx64
    datadir=D:MySQL5.7mysql-5.7.35-winx64mysql-5.7.35-winx64data  data会自动生成,不需要手动创建
    port=3306
    skip-grant-tables  跳过密码

    以管理员身份运行 CMD 

    安装服务  binmysqld -install

    初始化数据库文件  mysqld --initialize-insecure --user=mysql  运行后会自动创建data文件

    启动mysql   net start mysql

    进入mysql管理用户  mysql -u root -p  密码为空

    设置密码  mysql> update mysql.user set authentication_string=password('55555') where user='root' and Host='localhost';
    刷新权限 mysql>flush privileges; my.ini删除最后一句 skip...

    重启mysql,  关闭服务net stop mysql , 开启服务 net start mysql

    数据库是按照数据结构来组织,存储,和管理数据的仓库

    1.数据模型

      层次数据结构 参考树状图

        优点: 结构清晰 检索效率高 

        缺点: 结构缺乏灵活性 , 依赖父节点 ,对增删操作限制多,对某个节点的下级层级影响较大

      网状数据模型 参考有向图

        优点: 没有层次结构那么严格限制. 增删操作对整个模型影响不大

        缺点: 结构复杂操作不易

      关系数据模型 参考二维表格 ,上面提到的两种是非关系型数据模型

        优点: 相对于其他模型更容易理解, 表格之间的增删对其他表格影响较小

        缺点: 读写性能上相对较差, 但足以我们去使用

    2.数据库系统 DBS

      包含: 数据 数据库 DBMS(操作和管理数据库的软件,一般不能直接操作数据库的 , 只能通过数据库软件进行操作)

    3.SQL 结构化查询语言

      SQL语句不区分大小写, 但字符串区分大小写( " "  和 ' ' 都是表示字符串)

      SQL 分类

        DQL 数据查询语言 专用于查询数据

        DML 数据操作语言 专用于数据的 增 删 改(更新数据)

        DDL 数据定义语言 用于创建数据库中的对象(数据库 表 视图 索引 这些都是对象)

        DCL 数据控制语言 提交 回滚(撤销) GRANT(授权)

      Mysql最大支持 5000万条记录 , 32位 表最大占4GB 64位 表最大占8TB  支持C/C++ python java perl PHP Ruby等语言的连接

    4.术语:

      表     存放数据的二维数组

      记录(元祖) 表中的一行叫记录

      字段(属性) 表中的一列

      域     属性的取值范围(比如性别的值 男或女)

      冗余    重复的数据(降低了性能 ,提高了数据的安全性)

      存储引擎  默认MYISAM(比较旧)  更新的 INNODB(功能更多)

    5.常用命令:

      显示数据库 show databases; 显示创建的数据库(随时都可以用, 就算已经身处某个数据里了可用于切换数据量)

        默认有四个数据库(如果缺少其中一个或者没有需要重新安装,因为Mysql的信息都存在这四个数据库中)

          information_schema  数据库信息(保存着MySQL维护的 其他的数据库信息 比如数据库名 表  数据类型等信息)
          mysql         保存用户信息 权限设置 关键字等保存在该数据库

          performance_schema   收集数据库服务器的性能参数

          sys          保存数据库服务器系统的数据

      删除数据库 drop databases [数据库名];

      进入数据库 use [数据库名];

      显示表列   show tables;

      查看表的结构 descride [表名];

      查看表的字段 show full column from [表名] ;

      改密码   updata mysql.user set authentication_string = password("新密码"); 改完密码后要刷新权限 flush  privileges;

      退出MySQL quit; exit;

    命令化管理太费劲了, 所以有了图形化管理工具 navicat 和 MySQL自己的workbench

    数据库设计

    概念结构设计 从需求分析中找到实体和联系比如

          学生表(实体是学生)

                  选修关系

          课程表(实体是课程)

                  任课关系

          老师任课表(实体是老师)

      联系类型 1对1  (A表中的一行最多只能匹配到B表的一行, 反之亦然) 

           多对多 (A表中的一行可以匹配到B表中的多行 , 反之亦然)

           1对多   (A中的一行可以匹配到B的多行, 但是B中的一行只能匹配到A中的一行)

      E-R图: 矩形表示实体

          菱形表示联系

          椭圆表示实体的属性 (下划线表示主属性)

          用线把关系联系起来

       表的设计范式 1NF 2NF 3NF BCNF 4NF 5NF

        1NF 原子性(每个数据不可再分,保持数据的原子性)过滤 过滤重复属性    比如学生表中出现 年龄 和 出生日期 就是重复属性

        2NF 基于1NF上 非主属性必须完全依赖于主属性(没有主属性则创建一个) 比如学生表必须有ID编号

        3NF 基于2NF上 所有的非主属性不能依赖于其他的非主属性       顾名思义

        BCNF 基于3NF上  非主属性的不能依赖于主属性的子集   主键可能是联合主键(多个属性组合成的)不能依赖于其中某个属性,只能依赖于整体

    一般只要求 做到1-3范式就可以了, 不能过分的追求完美, 虽然后面的范式更加健全可是逻辑和管理太庞大了 , 动一张表要牵扯改N张表, 没必要

    物理结构设计 将逻辑结构实现在具体环境, 依赖于给定的DBMS和硬件系统

    数据库的实施 根据逻辑设计和物理设计的结果, 建立数据库系统,加载数据,调试

    数据库的运行和维护 优化数据库的性能, 维护数据库的安全和完整性(有效的数据)

  • 相关阅读:
    怎样用ZBrush中的Curves和Insert笔刷创建四肢
    如何利用ZBrush中的DynaMesh创建身体(二)
    如何利用ZBrush中的DynaMesh创建身体(一)
    如何用ZBrush雕刻出栩栩如生的头发(二)
    Fisker大师用ZBrush制作兽人萨尔全过程
    如何用ZBrush雕刻出栩栩如生的头发(一)
    ZBrush中的SubTool工具该怎样使用
    Access denied for user 'Administrator'@'localhost' (using password: YES)
    java.lang.NoClassDefFoundError: org/apache/ibatis/session/SqlSession
    Unable to install breakpoint in
  • 原文地址:https://www.cnblogs.com/yxnrh/p/13323969.html
Copyright © 2011-2022 走看看