zoukankan      html  css  js  c++  java
  • 初识Mysql数据库

    一、前言

    1.1 什么是数据库(DataBase,简称DB)

    数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。数据库是长期存放在计算机内、有组织、可共享的数据集合

    将所有数据存放到一个第三方的公共位置(数据库),同一个软件凡是需要操作数据的,就必须去这个共享的位置操作。

    数据库集群: 将同一个数据库中的数据,复制到不同的服务器中。

    1.2 什么是数据库管理系统(简称DBMS)

    如何科学地组织和存储数据,如何高效获取和维护数据成了关键。如MySQL,Oracle,Access等
    数据库管理软件分类:
    1. 关系型数据库: MySQL、postgreSQL、Oracle、DB2、sql server、.... 注意:sql语句通用
    关系型数据库需要有表结构

    • 1)表结构
      - 需要哪些字段
      - 字段是什么类型

    • 2)字段与字段类型
      - name ---> 'tank' ----> 字符串
      - age ---> 17 ---> 整型

    2. 非关系型数据库: redis、mongodb...
    非关系型数据库一般以 key:value的形式存储,没有表结构

    二、Mysql数据库

    MySQL数据库: 基于socket编写的 C ---> S架构的软件

    1. mysql数据库本质上就是一个基于网络通信的软件。
    2. 所有基于网络通信的软件,底层都是socket。

    如何安装配置使用Mysql?

    Windows系统下

    1、下载:http://dev.mysql.com/downloads/mysql/
    
    2、解压安装包
    
    3、添加环境变量
    	-【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQL的bin目录路径追加到变值值中】
     
    4.以管理员身份打开CMD,输入mysqld启动服务端,此时会卡住
        
    5.在新建一个cmd,mysql客户端连接服务端,输入mysql -h 127.0.0.1 -P 3306 -p 密码
    
        - mysql初始化时无密码,可以进入游客模式,功能会很少
        - 无密码直接进入 ---》 不需要“-p 密码”
        - bin目录下的: mysql.exe
        	全写: mysql -h 127.0.0.1 -P 3306 -p 密码
        	简写: mysql -uroot -p 密码
        	
    6.退出数据库客户端
        - exit;
        - quit;
    
    
    注意: SQL语句末尾必须加 “;” 号。
    CMD
    mysql -h主机名或IP -u用户名 -p密码
    mysql -hlocalhost -uroot -proot
     
    -h:代表MySQL的主机名或IP地址,如:-h 127.0.01   -hlocalhost
    
    -u:代表MySQL中的用户名,默认是root
    
    -p:代表MySQL中用户的密码,默认是root
    
    1.服务器程序:存取数据是服务器的工作
    
    2.客户端程序:命令服务器来完成存取工作,
    			 客户端将命令发送给服务器,服务器解析执行命令,返回客户端要的数据
    
    - 查看操作系统中是否已经启动mysqld 服务端
    	- tasklist | findstr "mysqld"
           
    - 杀死mysqld进程
    	- taskkill /F /PID pid号
    
    - *****做服务端操作时,必须先以管理员身份打开
    
    - 制作系统服务:
    
        - 1.必须将已启动的服务端mysqld关掉
        - 2.删掉已经启动过的mysqld的进程
        - 3.输入  mysqld --install ----> 安装mysqld系统服务
        - 4.输入 net start mysqld
    
    服务器为了保证数据安全需要进行用户认证
    
    默认有一个root 账户,默认没有密码,不安全
    
    - 密码设置及修改(在服务器的终端进行操作):
    
        - 默认没有密码的情况下,设置密码
            - cmd>>>: mysqladmin -uroot password 123
    
        - 有密码的情况下,修改密码
            - cmd>>>: mysqladmin -uroot -p原密码 password修改的密码
            - cmd>>>: mysqladmin -uroot -p123456 password 123
    
    - 破解密码: 当密码忘记时采用
        - 1.关闭服务端
        - 2.跳过权限启动服务端
            - cmd>>>:  mysqld --skip-grant-tables
    
        - 3.客户端进入游客模式:
            - cmd>>>:  mysql
    
            - update mysql库.user表名 set 字段password=字段password('字段值') where 条件(若条件成立,则修改)user="root";
            - cmd>>>:  update mysql.user set password=password('123456') where user="root";
    
        - 4.重新启动服务端,不要跳过权限认证
            - 先kill掉跳过权限认证启动的服务端进程
            - 再手动去开服服务中的mysql服务即可
    

    设置配置文件

       - 1.先在mysql目录下  --》 D:mysql-5.6.40-winx64
    
       - 2.创建一个名为 “my.ini” 的文件,这个是mysql的配置文件
       
    配置文件:
    
    	[mysqld]
    	character-set-server=utf8
    	collation-server=utf8_general_ci
    	
    	# 这个是用python软件连接的客户端
    	[client]
    	default-character-set=utf8
    	
    	# mysql软件的客户端
    	[mysql]
    	# 可写,可不写这样可以不需要用户名与密码直接登录mysql
    	# user='root'
    	# password=123
    	
    	# 设置默认的字符编码
    	default-character-set=utf8
    
       - 3.重启mysql服务,即修改成功!
    

    三、存储引擎

    存储引擎是用于根据不同的机制处理不同的数据。

    - 查看mysql中所有引擎:show engines;   
          - myisam: 5.5以前老的版本使用的存储引擎
          - blackhole: 类似于队列中的数据,存进去消失
          - innodb: 默认使用的存储引擎
                - 支持事务
                - 行锁
                - 外键
          - memory: 通电数据存在,断电丢失
    
    create table t1(id int)engine=innodb;
    create table t2(id int)engine=myisam;
    create table t3(id int)engine=blackhole;
    create table t4(id int)engine=memory;
    
    插入数据验证引擎的作用:
    insert into t1 values(1);
    insert into t2 values(2);
    insert into t3 values(3);
    insert into t4 values(4);
    
    mysql> select * from t1;
    +------+
    | id   |
    +------+
    |    1 |
    +------+
    1 row in set (0.00 sec)
    
    mysql> select * from t2;
    +------+
    | id   |
    +------+
    |    2 |
    +------+
    1 row in set (0.01 sec)
    
    mysql> select * from t3;
    Empty set (0.00 sec)
    
    mysql> select * from t4;
    +------+
    | id   |
    +------+
    |    4 |
    +------+
    1 row in set (0.00 sec)
    
    
  • 相关阅读:
    Codeforces 992C(数学)
    Codeforces 990C (思维)
    Codeforces 989C (构造)
    POJ 1511 Invitation Cards(链式前向星,dij,反向建边)
    Codeforces 1335E2 Three Blocks Palindrome (hard version)(暴力)
    POJ 3273 Monthly Expense(二分)
    POJ 2566 Bound Found(尺取前缀和)
    POJ 1321 棋盘问题(dfs)
    HDU 1506 Largest Rectangle in a Histogram(单调栈)
    POJ 2823 Sliding Window(单调队列)
  • 原文地址:https://www.cnblogs.com/baohanblog/p/12144108.html
Copyright © 2011-2022 走看看