zoukankan      html  css  js  c++  java
  • MySQL(一)

    一.数据库管理软件的由来

    1.程序所有的组建不可能运行在一台机器上

      如果运行在一台机器上,那么这台机器出现问题就意味着软件的崩溃,并且程序的执行效率依赖于承载它的硬件,而一台机器的性能终归是有限的.

      所以我们只能通过水平扩展来增强我们系统的整体性能,着就需要将程序的各个组件分布于多台机器上去执行.

    2.数据安全问题

      根据上述描述,我们将程序的各个组件分布到各台机器,但需知道各组件仍然是一个整体,言外之意,所有组件的数据还是要共享的,但每台机器上的组件都只能操作本机的文件,这导致了数据必然不一致.

      于是想到了将数据与应用程序分离:把文件存放于一台机器,然后将多台机器通过网络去访问这台机器上的文件(使用socket),即共享这台机器上的文件,共享意味着竞争,会发生数据不安全,就需要加锁处理.

    3.并发

      根据2的描述,我们必须写一个socket服务端来管理这台机器上的文件,然后写一个socket客户端.

    总结:

      在编写程序之前,都需要事先写好基于网络操作一台主机上文件的程序,于是有人将此类程序写成一个专门的处理软件,这就是mysql等数据库管理软件的由来,但mysql解决的不仅仅是数据共享的问题,还有查询效率,安全稳定性一系列问题,把程序员从数据管理中解放出来,专注于自己的程序逻辑的编写

    二.数据库介绍

    1.数据(Data)

      描述事物的符号记录称为数据,描述事物的符号也可以是数字,可以是文字,图片,语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机.

    2.数据库(DataBase,简称DB)

      数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一点的格式存放的.

      数据库是长期存放在计算机内,有组织,可共享的数据.

      数据库中的数据按一定的数据模型组织,描述和存储,具有较小的冗余度,较高的数据独立性和易扩展性,并可为各种用户共享.

    3.数据库管理系统(DataBase Management System 简称DBMS)

      在了解了Data和DB的概念后,如何科学地组织和存储数据,如何高效获取和维护数据成了关键.

      这就用到了一个系统软件数据库管理系统

    4.数据库服务器,数据库管理系统,数据库,表与记录的关系

      数据库服务器:运行数据库管理软件

      数据库管理软件:管理数据库

      数据库:即文件夹,用来组织文件/表

      表:即文件,用来存放多行内容/多行记录

    三.MySQL介绍

      MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前数据Oracle旗下公司.MySQL最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS应用软件之一.

      数据库管理软件分类

      关系型:db2, oracle, access,sqlserver,MySQL

      非关系型:mongodb, redis, memcache

    四.下载安装

      1.下载

        进入MySQL官方网站:https://www.mysql.com/,选择Download,选择免费的社区版

      

        在选择MySQL Community Server,根据自己电脑下载选择需要的版本

      

      2.安装

        解压下载好的安装包,根据自己的需要选择解压路径

        新增系统环境变量:键名:MYSQL_HOME 值为:之前解压的路径如(D:MySQLmysql-5.7.23-winx64)

        再在Path中添加:%MYSQL_HOME%in,注意Path中不同值之间的'';''符号不能省略

        由于我安装的是5.7.23所以准备好配置文件my.ini,之前的版本解压后就会存在mydefault.ini文件,文件内容如下

        

        编辑好文件之后,将my,ini文件放到安装路径下

        接下来以管理员身份打开cmd命令窗口,将目录切换到MySQL的安装目录的bin目录下

        执行以下语句进行MySQL的安装

    mysqld -install

        执行命令后提示:Service successfully installed.表示安装成功

        执行以下语句进行MySQL的初始化

    mysqld --initialize-insecure --user=mysql

        执行命令后会在MySQL的安装目录下生成data目录并创建root用户。

        

        执行以下命令以启动mysql服务

    net start mysql

        执行后会有如下提示:

          MySQL服务正在启动...

          MySQL服务已经启动成功.

        执行net stop mysql 可以关闭MySQL服务

    五.mysql软件基本管理

      1.登录,设置密码

    初始状态下,管理员root,密码为空,默认只允许从本机登录localhost
    设置密码
    [root@egon ~]# mysqladmin -uroot password "123"        设置初始密码 由于原密码为空,因此-p可以不用
    [root@egon ~]# mysqladmin -uroot -p"123" password "456"        修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密码
    
    命令格式:
    [root@egon ~]# mysql -h172.31.0.2 -uroot -p456
    [root@egon ~]# mysql -uroot -p
    [root@egon ~]# mysql                    以root用户登录本机,密码为空

      2.忘记密码.window平台下,5.7版本mysql,破解密码的两种方式

    #1 关闭mysql
    #2 在cmd中执行:mysqld --skip-grant-tables
    #3 在cmd中执行:mysql
    #4 执行如下sql:
    update mysql.user set authentication_string=password('') where user = 'root';
    flush privileges;
    
    #5 tskill mysqld #或taskkill -f /PID 7832
    #6 重新启动mysql
    方式一
    #1. 关闭mysql,可以用tskill mysqld将其杀死
    #2. 在解压目录下,新建mysql配置文件my.ini
    #3. my.ini内容,指定
    [mysqld]
    skip-grant-tables
    
    #4.启动mysqld
    #5.在cmd里直接输入mysql登录,然后操作
    update mysql.user set authentication_string=password('') where user='root and host='localhost';
    
    flush privileges;
    
    #6.注释my.ini中的skip-grant-tables,然后启动myqsld,然后就可以以新密码登录了
    方式二

    六.初始sql语句

    数据库服务器中存放的是库(文件夹)表(文件)表里面放的是记录
            库相关
                创建
                    create database 数据库名 character set 编码名称;
                修改
                    alter database 数据库名 charset gbk;
                查看
                    show databases;
                    show create database 数据库名;    查看建库语句
                删除
                    drop database 数据库名;
    表相关 创建 create table 表名(id int, name char); 修改 修改表结构: alter table 表名 add
    |drop|modify|change; add 后面跟 字段名 数据类型 drop 后面跟 字段名 modify 后面跟 字段名 数据类型 change 后面跟 旧字段名 新字段名 数据类型 改属性 编码 alter table t1 charset 编码名称; 表名 rename table 旧表名 to 新表名; 查看 show tables; show create table 表名; 查看建表语句 desc 表名; 查看表结构 删除 drop table 表名; truncate table 表名; 重建表 记录相关 创建 insert into 表名 values(值1...),(值1...)... 插入时注意 值的顺序和类型与表结构一致 修改 update 表名 set 字段名 = 新值,字段名 = 新值... where 条件 查看 select *|字段名 from 表名 *表示所有字段 删除 delete from 表名 where 条件
        
        清空表:
          delete from t1;如果由自增id,新增的数据,仍然是以删除前的最后一样作为起始
          truncate table t1;数据量大,删除速度比上一条快,且直接从零开始

          auto_increment 表示:自增
          primary key 表示:约束;加速查找
  • 相关阅读:
    ctags的基本操作总结
    iOS开发使用Unwind Segue进行返回
    Swoole源代码学习记录(十二)——ReactorThread模块
    HDU 2189 ( 悼念512汶川大地震遇难同胞——来生一起走 )
    WEB开发面试题
    UVA 11762
    shell EOF注意点
    Oracle EBS 从Web界面进入责任时,提示不存在可用的有效责任
    LeetCode--Reverse Integer
    atitit.web 推送实现方案集合
  • 原文地址:https://www.cnblogs.com/louyefeng/p/9628748.html
Copyright © 2011-2022 走看看