zoukankan      html  css  js  c++  java
  • 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通配符:
    _:任意单个字符
    %:任意长度的任意字符

  • 相关阅读:
    Windows Azure Cloud Service (14) 使用Windows Azure诊断收集日志记录数据
    Windows Azure Cloud Service (13) 用Visual Studio 2010 将应用程序部署到Windows Azure平台
    Windows Azure Cloud Service (15) 多个VM Instance场景下如何处理ASP.NET Session
    Windows Azure Storage (5) Windows Azure Drive
    Windows Azure Storage (7) 使用工具管理Windows Azure Storage
    SQL Azure(二) SQL Azure vs SQL Server
    webbrowser的自动提交
    提取视频的背景声音的软件
    Listview列排序的bug原因
    两个奇怪的问题
  • 原文地址:https://www.cnblogs.com/gaowei123/p/9840971.html
Copyright © 2011-2022 走看看