zoukankan      html  css  js  c++  java
  • 数据库基础+重置root密码

    
    

    测试工程师在测试软件过程中,不仅仅需要在界面进行操作,还需要检查数据库中的数据是否正确,从而在软件出现问题时候,能够定位到问题原因。


     

    数据库

    1. 定义:数据库是按照数据的结构来组织,存储,和管理数据的仓库。

    1. 数据库和SQL是什么关系?

    SQL:结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

    关系:数据库里面放着数据,而SQL是用来操作数据库里数据的语言(工具)。例如有一碗米饭(碗就是mysql,里面放的米是数据),你要吃碗里的米饭,拿什么吃?拿筷子(sql)。用筷子(sql)操作碗里(mysql)的米饭(数据)

     

     

    1. 数据库有哪些?

    1. Oracle:最挣钱的数据库,出自甲骨文公司,市场占有率非常高,功能非常强大,被一些大型企业,电信,银行,证券公司所使用

     

    1. MySQ:一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。MySQL目前最流行的开源数据库,被甲骨文公司所占用,威胁着老大Oracle的地位,开源,免费,支持多平台,易用

     

    1. SQLServer:微软开发的数据库,仅支持Windows操作系统,号称是windows上最好用的数据库。数据库的天下不仅仅是MySQL和Oracle的,SQLServer也正在慢慢崛起,微软网罗了不少数据库的专家,推出了不少重磅功能。

     

    1. MongoDB:最好用的文档型数据库,是NOSQL类型数据库的领导者之一,也是当前最成功的NoSQL类型数据库,数据存储格式采用JSON形式,非常灵活。

     

    1. Redis:最好的内存级数据库,查询效率极高,并且在Redis 3.0之后,支持多种数据类型,String,Set,List,Hash等类型,开始支持集群,弥补了自身短板。是目前做缓存最流行的数据库

     

    1. Neo4J:最好的图形化数据库,流行话较低,但是图形化数据库的绝对领导者。

     

    1. SQLite:最流行的嵌入式数据库,占领手机行业的绝对领导者地位,Android和IOS两大手机系统,都内嵌了SQLite数据库,SQLite是一个完整的关系型数据库,支持标准SQL,支持事务操作,程序包非常小,是嵌入式设备的最佳选择。

     

    1. MYSQL安装

      1. 安装及配置:参考文档:https://kdocs.cn/l/s3IygVMGm

      2. 卸载:参考文档:https://www.cnblogs.com/sunzzc/p/13030676.html

      3. 实在不行重启后再安。一定要注意端口占用问题。

      4. 重置MySQL root密码:

       

    2. 数据库语言的分类:

      DDL: 数据库定义语言 对的增删改

      DML: 数据操作语言 对的增删改

      DQL : 数据库查询语言 对库和表的查询(模糊查询,分页查询,子查询,多表查询 聚合函数 分类 分组 排序等)

      DCl: 数据控制语言

       

    3. 表中字段基本数据类型

      1. MySQL支持多种类型,大致可以分为三类:数值日期/时间字符串(字符)类型

         

      2. 一个汉字占多少长度与编码有关:

        1. UTF-8:一个汉字=3个字节,

        2. GBK :一个汉字=2个字节

     

     

    1. 表结构语句操作

       

       

      1. 整型
        类型大小范围(有符号)范围(无符号)用途
        TINYINT 1 字节 (-128,127) (0,255) 小整数值
        SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值
        MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
        INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
        BIGINT 8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
        FLOAT 4 字节 (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度 浮点数值
        DOUBLE 8 字节 (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度 浮点数值
        DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

        取值范围如果加了 unsigned,则最大值翻倍,如 tinyint unsigned 的取值范围为(0~256)。

        int(m) 里的 m 是表示 SELECT 查询结果集中的显示宽度,并不影响实际的取值范围,没有影响到显示的宽度,不知道这个 m 有什么用。

         

         

      2. 浮点型(float 和 double)

      MySQL数据类型含义
      float(m,d) 单精度浮点型 8位精度(4字节) m总个数,d小数位
      double(m,d) 双精度浮点型 16位精度(8字节) m总个数,d小数位

      设一个字段定义为 float(5,3),如果插入一个数 123.45678,实际数据库里存的是 123.457,但总个数还以实际为准,即 6 位。

      1. 定点数

        浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。

        decimal(m,d) 参数 m<65 是总个数,d<30 且 d<m 是小数位。

         

      2. 字符串(char,varchar,_text)

        MySQL数据类型含义
        char(n) 固定长度,最多255个字符
        varchar(n) 固定长度,最多65535个字符
        tinytext 可变长度,最多255个字符
        text 可变长度,最多65535个字符
        mediumtext 可变长度,最多2的24次方-1个字符
        longtext 可变长度,最多2的32次方-1个字符

        char 和 varchar

        1. char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以 char 类型存储的字符串末尾不能有空格,varchar 不限于此。

        2. char(n) 固定长度,char(4) 不管是存入几个字符,都将占用 4 个字节,varchar 是存入的实际字符数 +1 个字节(n<=255)或2个字节(n>255),所以 varchar(4),存入 3 个字符将占用 4 个字节。

        3. char 类型的字符串检索速度要比 varchar 类型的快。

        varchar 和 text

        1. varchar 可指定 n,text 不能指定,内部存储 varchar 是存入的实际字符数 +1 个字节(n<=255)或 2 个字节(n>255),text 是实际字符数 +2 个字节。

        2. text 类型不能有默认值。

        3. varchar 可直接创建索引,text 创建索引要指定前多少个字符。varchar 查询速度快于 text, 在都创建索引的情况下,text 的索引似乎不起作用。

         

      3. 二进制数据(_Blob)

        1. _Blob和text存储方式不同,TEXT以文本方式存储,英文存储区分大小写,而 _Blob是以二进制方式存储,不分大小写。

        2. _BLOB 存储的数据只能整体读出。

        3. TEXT可以指定字符集,_Blob不用指定字符集。

         

      4. 日期时间类型

        MySQL数据类型含义
        date 日期 '2008-12-2'
        time 时间 '12:25:36'
        datetime 日期时间 '2008-12-2 22:06:44'
        timestamp 自动存储记录修改时间

        若定义一个字段为timestamp,这个字段里的时间数据会随其他字段修改的时候自动刷新,所以这个数据类型的字段可以存放这条记录最后被修改的时间。

         

      5. 数据类型的属性
        MySQL关键字含义
        NULL 数据列可包含NULL值
        NOT NULL 数据列不允许包含NULL值
        DEFAULT 默认值
        PRIMARY KEY 主键
        AUTO_INCREMENT 自动递增,适用于整数类型
        UNSIGNED 无符号
        CHARACTER SET name 指定一个字符集

        常用约束

        1. primary key 主键

        2. auto_increment 自增

        3. not null 非空

        4. foreign key 外键

        5. unique 唯一

        6. default 默认

        7. decimal 浮点

     


    方法一:

    my.ini的[mysqld]字段加入:skip-grant-tables

    重启mysql服务,这时的mysql不需要密码即可登录数据库 进入mysql:

     mysql>更新 user set password=password('新密码') WHERE User='root';
     mysql>flush privileges;

    运行之后最后去掉my.ini中的skip-grant-tables,重启mysqld即可。

    方法二:

    不使用修改my.ini重启服务的方法,通过非服务方式加skip-grant-tables运行mysql来修改mysql密码

    1. 停止mysql服务

    2. 打开命令行窗口,在bin目录下使用mysqld-nt.exe启动,即在命令行窗口执行: mysqld-nt --skip-grant-tables

    3. 然后另外打开一个命令行窗口,登录mysql,此时无需输入mysql密码即可进入。

    按以上方法修改好密码后,关闭命令行运行mysql的那个窗口,此时即关闭了mysql,如果发现mysql仍在运行的话可以结束掉对应进程来关闭。

    启动mysql服务

     

    没有结果就是最好的结果。 -Linux哲学
  • 相关阅读:
    HDU 1423
    POJ 3264
    POJ 3177
    CodeForces 81A
    SPOJ RATING
    ZOJ 2588
    POJ 1523
    POJ 3667
    递归
    数据结构
  • 原文地址:https://www.cnblogs.com/Stubbornlyn/p/13158619.html
Copyright © 2011-2022 走看看