• MySQL基础


    一,数据库的基本概念

    1,数据

          描述事物的符号记录为数据(Data),包括数字、文字、图形、图像、声音、档案记录等,以“记录”的形式统一的格式进行储存;
    2,表

          将不同的二级路组织在一起,就形成了“表”是用来存储具体数据的;
    3,数据库

          表的集合,是存储数据的仓库,以一定的组织方式存储的互相有关的数据;
    4,数据库管理系统

          实现对数据库资源有效组织、管理和存取的系统软件,具有一下功能:数据库的建立和维护功能、数据定义功能、数据操纵功能、运行管理功能、通信功能;

    5,数据库系统

          是一个人-机系统,由硬件、操作系统、数据库、DBMS、应用软件和数据库用户组成,用户可以通过DBMS操作数据库,也可以通过应用程序操作数据库。

    二,当今主流数据库介绍
    1,当今主流的关系型数据库:

    (1)SQLServer (微软公司产品)
             面向Windows操作系统
             简单,易用

    (2)Oracle(甲骨文公司产品)
             面向所有主流平台
             安全、完善、操作复杂

    (3)DB2(IBM公司产品)
             面向所有主流平台
             大型、安全、完善

    (4)MySQL(甲骨文公司收购)
             免费、开源、体积小

    三,非关系数据库介绍

    1,非关系型数据库的优点
          可满足数据库高并发读写的需求
          对海量数据高效率存储与访问
          数据库的高扩展性与高可用性的需求

    2,非关系型数据库的存储方式
       (1)键-值 方式,以键为依据存储、删除、更改数据
       (2)列存储(Column-oriented),将关系的数据存储在列族中
       (3)文档方式,数据库由一系列数据项组成,每个数据项都有对应的值
       (4)图形方式,尸体为顶点,关系为变,数据保存为一个图形
    3,非关系数据库产品

        (1)Memcached-----是一个开源的,高性能的,具有分布式内存对象的缓存系统,以key-value方式存储数据。
                 特点:缓存数据以减轻数据库压力并能加快访问速度
                           加速动态Web应用
                           缓存的内容保存在内容中
        (2)redis----也是一个以key-value方式存储数据,数据也是保存在内存中,但会
                           定期将数据写入磁盘中。
                           特点: 支持内存缓存
                                    支持持久化
                                    数据类型更多
                                    支持集群,分布式
                                    支持队列
    四,MySQL数据库介绍

    1,特点:
    性能卓越,服务稳定
    开源,无版权限制,成本低
    多线程,多用户
    基于c/s(客户端/服务端)架构
    安全可靠

    五,编译安装MySQL

    1,准备工作
    卸载rpm方式安装的mysql-server,mysql
    查看命令:rpm -qa | grep mysql
    若存在,用rpm -e mysql-server mysql --nodeps命令卸载
    (最小化装机没有安装mysql)

    安装ncurses-devel与cmake包
    命令:yum -y install ncurses-devel
    tar xf cmake-2.8.6.tar.gz -C /usr/src/
    cd /usr/src/cmake-2.8.6/
    source /etc/configure && gmake && gmake install

    2,源码编译机安装 

    增加程序用户mysql=====>>useradd -s /sbin/nologin -M mysql(不能登录,没有家目录)
    解压mysql-5.5.22.tar.gz=====>>tar xf mysql-5.5.22.tar.gz -C /usr/src/
    cmake配置,编译及安装
    cd /usr/src/mysql-5.5.22/
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all && make && make install
    注释: -DCMAKE_INSTALL_PREFIX=/usr/local/mysql====>>主程序安装目录
               -DSYSCONFDIR=/etc =======>> 配置文件存放目录
               -DDEFAULT_CHARSET=utf8=====>>默认字符集为utf8
               -DDEFAULT_COLLATION=utf8_general_ci=====>>默认的字符集校对规则
               -DWITH_EXTRA_CHARSETS=all=====>>安装所有字符集

    3,安装后优化操作

    修改mysql安装目录的属主与属组=====>>chown -R mysql:root /usr/local/mysql/
    创建修改mu.cnf 配置文件=====>>/bin/cp support-files/my-medium.cnf /etc/my.cnf
    ***********************************************************************************
    my.cnf 配置文件相关介绍 ,在mysql 解压路径support-files/下提供的模板:
    my-huge.cnf========>>巨大数据量
    my-innodb-heavy-4G.cnf=====>> innodb引擎
    my-large.cnf=====>>大数据量
    my-medium.cnf=====>>测试使用
    my-small.cnf=====>> 小数据量
    MySQL数据库存储引擎:myisam innodb
    ***********************************************************************************
    添加系统服务
    cp support-files/mysql.server /etc/init.d/mysqld
    chmod +x /etc/init.d/mysqld======>>给文件添加执行权限
    chkconfig mysqld --add
    chkconfig mysqld --list

    添加MySQL命令执行的路径到PATH环境变量
    ecjo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
    source /etc/profile

    执行mysql_install_db脚本初始化数据库
    /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/
    --datadir=/usr/local/mysql/data/
    ***************************************************************************
    注释:--basedir=/usr/local/mysql/=====>>指定安装目录(产品目录)
              --datadir=/usr/local/mysql/data/=====>>指定数据目录
              --user=mysql =====>> 指定用户身份
    ***************************************************************************
    启动mysql服务======>>/etc/init.d/mysqld start
    查看运行状态======>> netstat -anpt | grep :3306

    设置数据库用户名及密码======>>mysqladmin -uroot password'123123'

    连接并登录到mysql操作环境=====>>mysql -uroot -p123123

    mysql -u 指定用户名
    -p(小写)指定密码
    -h 指定主机IP
    -P(大写) 指定端口
    退出登录=====>>quit或exit或ctrl+D

    六,MySQL数据库操作

    (一),SQL语言=====>>是关系型数据库的标准语言,用于维护管理数据可,如增,删,改,查;
    SQL分类:
    DDL:数据定义语言,增删改===>>库,表,索引=====>>create,drop
    DML:数据操纵语言,增删改===>>数据=====>>insert,update,delete
    DQL:数据查询语言,查询数据=====>>select

    (二),MySQL数据库表的管理操作
    注:大部分命令不区分大小写
    1,查看数据库结构
    查看数据库列表信息=====>> 命令格式 show databases;
    查看数据库中的数据表信息=====>>命令格式 show tables;
    显示数据表的结构:describe 数据库名.表名;
    或者先use 数据库名;(进入数据库)再describe 表名;

    2,DDL语句操作=====>>数据定义语言,用于增删改数据库,表,索引等

    create 创建新库=====>> create database 数据库名;
    创建新表=====>>create table 表名;
    示例:create database auth; =====>>新建一个名为auth的数据库
    use auth;=====>> 使用auth这个数据库
    创建表示例:create table users (user_name char(20) not null,user_passwd char(30)
    default ' ',primary key (user_name));===>> 创建名为users的表,表内两个字
    段为(user_name 最多20字节,不能为空,user_passwd 最多30字节 默认为空
    ,索引关键字user_name)
    drop删除表======>>drop table 数据库名.表名
    删除库======>>drop database 数据库名
    示例:drop table auth.users;=====>> 删除auth库的users表
    drop database auth;=====>> 删除auth数据库

    3,DML 语句操作 =====>>数据库操纵语言,用于对表中的数据进行增删改
    insert插入新数据 格式:insert into 数据库名.表名(字段1,字段2,。。。) values('字段1的值','字段2的值'...)
    update更改原有数据 格式:update 数据库名.表名 set 字段A='值A' where 字段B='值B'
    示例:update auth.users set user_passwd=password('') where user_name='lisi'
    解释:清空lisi的密码
    delete删除不需要的数据 格式:delete from 数据库名.表名 where 字段1='值1';
    示例:delete from auth.users where user_name='lisi'
    解释:在authentic库中的users表中,删除用户名为lisi的记录

    4,DQL语句操作 =====>> 数据查询语句,用于数据查询
    select查询语句 格式:select 字段名 from 数据库名.表名
    示例:select * from auth.users; 查看所有数据
    select user_name from auth.users;在users表中查看user_name数据
    select * from auth.users where user_name='zhangsan'查看表中名 字为zhangsan的所有信息
    强制刷新:flush privileges

    七,MySQL用户权限设置grand
    1,mysql账号由两部分组成:用户名和登录IP,中间用@连接 ,表示此用户只能在此IP地址上登录
    示例:grant all on *.* to 'root'@'192.168.200.130' identified by '123456';
    解释:grant all =====>>赋予所有权限(增删改查)
    *.* =====>>所有库所有表
    identified by '密码'=====>>设置用 户同时设置密码
    select user();=====>>查看当前登录账号
    show grants ;=====>>查看当前用户权限
    show grants for '用户名'@'IP' 查看指定用户权限
    revoke select on 空间名.表名 from '用户名'@'IP'=====>>撤销用户的读权限

    MySQL通配符:
    _:任意单个字符
    %:任意长度的任意字符

  • 相关阅读:
    软工小白菜的团队介绍和采访
    团队作业第二次——团队Github实战训练
    团队作业第一次—团队展示和项目展示
    week5:Technology: Internets and Packets
    week3:History: The Web Makes it Easy to Use
    week2:History: The First Internet
    week4:History: Commercialization and Growth
    week1:History: Dawn of Electronic Computing
    第二日会议博客
    第一日会议博客
  • 原文地址:https://www.cnblogs.com/gaowei123/p/9840971.html
Copyright © 2020-2023  润新知