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:\MySQL\mysql-5.7.23-winx64)

    再在Path中添加:%MYSQL_HOME%\bin,注意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 表示:约束;加速查找

 

posted @ 2018-09-11 16:50  Yven  阅读(292)  评论(0编辑  收藏  举报