zoukankan      html  css  js  c++  java
  • 数据库及MySQL概述

    #什么是数据

    用来描述事物的符号记录。可以是数字、文字、图形等,有多种形式,经过数字化之后存入计算机

    #什么是数据库

    数据库(Database)就是一个用来存放数据库的仓库,是按照一定的数据结构来组织、存储的

    #什么是数据库管理系统

    是用于管理数据库的软件

    #数据库服务器、数据库管理系统、数据库、表、记录之间的关系

    #数据库服务器相当于一台计算机,数据库管理系统相当于计算机里的一个软件,数据库相当于一个文件夹,表相当于文件夹中的文件,记录相当于文件中的内容

    #数据库的种类

      早期:分为层次式数据库、网络式数据库、关系型数据库
    
      现今:分为关系型数据库和非关系型数据库

    #关系型数据库介绍

      1.类似于excel表格
    
      2.关系型数据库使用结构化语言查询,sql语句来对数据进行存储
    
      3.代表作:mysql和Oracle

     #关系型数据库产品

      1.Oracle
    
      2.MySQL
    
      3.mariaDB
        是MySQL的一个分支,名称来自MySQL创始人Michael Widenius的女儿Maria的名字
    
      4.SQL server
        微软公司开发的大型关系型数据库系统, 只能在window系统下运行
      
    5.Access数据库     入门级小型桌面数据库   6.其他:DB2等

    #非关系型数据库介绍

      非关系型数据库也称为NoSQL数据库(Not Only SQL)
    
      产生的背景:为了解决web2.0,web3.0时代高并发,高吞吐量的需求,产生了非关系型数据库
    
      扩展:web2.0:指的是以用户为主体,上传文件发布博文等

    #种类

      1.键值(key-value)存储数据库
        典型产品:memcached、redis
      
    2.列存储(column-oriented)数据库     典型产品:Cassandra,HBase
      
    3.面向文档(Document-oriented)数据库     典型产品:MongoDB、CouchDB
      
    4.图形(graph)数据库

    #常用非关系型数据库产品

      1.Memcached
        是一个开源的、支持高性能的分布式内存缓存系统
      
    2.redis     基于key-value(键值)型的存储
      
    3.MongoDB     是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统

    #MySQL概述

     MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司

    #MySQL特点

      1.安装简单
    
      2.历史悠久,社区及用户活跃
    
      3.支持多种操作系统
    
      4.性能卓越,服务稳定
    
      5.支持多种存储引擎

    #MySQL分类

      MySQL采用双授权政策,分为社区版和商业版,然后又分为四个小版本:Alpha版、Beta版、RC版和GA版本
    
    #MySQL商业版和社区版区别
    
      1.商业版比社区版稳定
    
      2.商业版有技术支持等服务,社区版只能靠社区提供

    #MySQL版本

    #如:mysql-5.7.29.tar.gz
    
    #第一个数字5:主版本号
    
    #第二数字7:发行级别,与主版本组合构成发行序列号
    
    #第三个数字29:发行系列的版本号

    #查看版本

    mysql> select version();
    +-----------+
    | version() |
    +-----------+
    | 5.7.29    |
    +-----------+
    1 row in set (0.00 sec)

    #SQL语言介绍

    SQL,英文全称structured query language,中文意思为结构化语言查询,是一种对关系型数据库中的数据进行定义和操作的语言方法

    #SQL的分类

    一:数据查询语言(DQL)

     DQL全称data query language,称为数据检索语句,作用是从表中获得数据

    #例子:查看用户

    mysql> select user,host from mysql.user;
    +---------------+-----------------------+
    | user          | host                  |
    +---------------+-----------------------+
    | root          | localhost                     |
    | test2         | 1.1.1.%               |
    | test          | localhost             |
    +---------------+-----------------------+
    4 rows in set (0.00 sec)

    二:数据操纵语言(DML)

      DML全称data Manipulation language,其语句包括insert,update,delete,分别用于添加、修改和删除表中数据

    #例子:删除用户

    mysql> delete from mysql.user where user='test';
    Query OK, 1 row affected (0.02 sec)

    三:事务处理语言(TPL)

      语句能够确保被DML语句影响的表的所有行及时得以更新

    四:数据控制语言(DCL)

      DCL全称data control language,其语句通过grant或revoke获得许可

    五:数据定义语言(DDL)

      DDL全称data definition language,其语句包括create和drop,在数据库中创建和删除库表

    六:指针控制语言(CCL)

      CCL全称cursor  control language,语句像declare cursor,fetch into和update where current用于对一个或多个表单独行的操作

    #安装MySQL

    #一.Linux安装

    #1.yum/rpm方式安装
    #2.常规方式编译安装
    #3.采用cmake方式编译安装
    #4.采用二进制方式免编译安装

    #下面使用rpm方式安装mysql.5.7

    wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
    rpm -qpl mysql57-community-release-el7-7.noarch.rpm  #查看下载的rpm包
    rpm -ivh mysql57-community-release-el7-7.noarch.rpm  #安装rpm包
    yum install mysql-community-server -y  #安装mysql

    #提示:mysql5.7之后安装完会为root用户随机生成一个密码,如果使用rpm包,则使用grep "password" /var/log/myqld.log获取

    #1.安装完服务是没有启动,所以先要启动服务
    [root@db01 ~]#systemctl start mysqld

    #2.获取随机密码 [root@db01
    ~]# grep "password" /var/log/mysqld.log 2019-05-31T02:35:57.106896Z 1 [Note] A temporary password is generated for root@localhost: 0Hl;Ir.keo!; mysql> select @@log_error; +---------------------+ | @@log_error | +---------------------+ | /var/log/mysqld.log | +---------------------+ 1 row in set (0.00 sec)
    #3.设置密码复杂度,也可以在/etc/my.cnf里面设置validate_password_policy=LOW mysql
    > set global validate_password_policy=LOW; Query OK, 0 rows affected (0.00 sec)
    #4.修改密码,或者使用update修改,用户管理篇会详解 mysql
    > set password for root@localhost = password("guoke123"); Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)

    #二、Windows安装

    #登录方法

    1.mysql #直接输入mysql不用密码登录
    2.mysql -uroot -p #标准的登录密码
    3.mysql -uroot -p"guoke123" #如果不在脚本中建议不要使用,明文易暴露

    #登录后提示符

    #默认为:mysql>,为了让更好的区分是哪个用户或主机登录,可以使用如下方法

    #1.临时更改

    mysql> prompt u@mysql 
    :
    :s->
    PROMPT set to 'u@mysql 
    :
    :s->'
    root@mysql 09:56->

    #2.永久生效

    #进入/etc/my.cnf配置添加mysql模块,注意不是在[mysqld]里,如果在my.cnf配置文件中添加,可以使用\避免转义带来的问题

    #1.配置mysql模块
    [root@cots3 ~]# vim /etc/my.cnf
    [mysql]
    prompt=\u@mysql :\d\r:\m:\s->
    
    #2.重启服务
    [root@cots3 ~]# systemctl restart mysqld
    
    #3.登录查看
    [root@cots3 ~]# mysql -uroot -p
    Enter password: 
    root@mysql :(none)09:13:44->use db; #进入库
    Database changed
    
    root@mysql :db09:13:49-> #就会更改为db库

    #常用参数介绍

    # -u:用户名,-d:数据库名, :m:s 设置时间

    #prompt参数详解

        Option  Description
        c  A counter that increments for each statement you issue
            每个语句递增的计数器
        D  The full current date
            当前的完整日期
        d The default database
            默认数据库
        h The server host
            服务器主机
        l The current delimiter (new in 5.1.12)
            当前分隔符
        m  Minutes of the current time
            当前时间的分钟数
        
      A newline character
            换行符
        O  The current month in three-letter format (Jan, Feb, …)
            当前月份采用三字母格式
        o  The current month in numeric format
            数字格式的当前月份
        P  am/pm
        p The current TCP/IP port or socket file
            当前的tcp/ip端口或套接字文件
        R  The current time, in 24-hour military time (023)
            当前时间,24小时军事时间(0-24)
        
      The current time, standard 12-hour time (112)
            当前时间,标准12小时制
        S  Semicolon
            分号
        s  Seconds of the current time
            当前时间的秒数
        	  A tab character
            标签字符
        U   www.jb51.net 
        Your full user_name@host_name account name
            完整user_name@host_name 账户名称
        u Your user name
            你的用户名
        v  The server version
            服务器版本
        w  The current day of the week in three-letter format (Mon, Tue, …)
            三个字母格式的星期几
        Y  The current year, four digits
            当年,四位数
        y  The current year, two digits
            当前年份,二位数
        \_  A space
            空间
           A space (a space follows the backslash)
            一个空格
        '  Single quote
            单引号
            
        "  Double quote
            双重报价
        \  A literal “” backslash character       \文字“”反斜杠字符
        x 
        x, for any “x” not listed above
                  x,对于上面未列出的任何“x”
    View Code
  • 相关阅读:
    动态第K大 (树状数组套主席树)
    AC自动机
    开发Jquery插件文字自动截取(提供源代码)
    基于CentOS 5.5,集成LAMP、LNMP精简定制版应用服务器
    MySQL中的mysqldump命令使用详解
    开源CRM和ERP撑起后台系统能走多远
    squid,正向代理,反向代理
    linux架设subversion(svn)版本控制
    浅谈php的urlencode()函数
    读《MYSQL开发者SQL权威指南》笔记
  • 原文地址:https://www.cnblogs.com/guoke-boy/p/12392398.html
Copyright © 2011-2022 走看看