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通配符:
_:任意单个字符
%:任意长度的任意字符

posted @ 2018-10-24 01:16  高维1  阅读(204)  评论(0编辑  收藏  举报