zoukankan      html  css  js  c++  java
  • MySQL

    数据库的基本概念

    • 数据 
      描述事物的符号记录为数据(Data),包含数字,文字,图形,图像,声音,档案记录等,以“记录”形式统一的格式进行储存
    • 表 
      将不同的记录组织在一起,就形成了“表”,是用来存储具体数据的
    • 数据库 
      表的集合,是存储数据的仓库,以一定的组织方式存储的互相有关的数据 
      image_1cqkcnji115tk11qo19vq1bl7aj69.png-50.6kB
    • 数据库管理系统(Database Management System DBMS) 
      实现对数据库资源有效组织、管理和存取的系统软件,具有以下功能:数据库的建立和维护功能、数据定义功能、数据操纵功能、运行管理功能、通信功能。

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

     

    数据库简单分为俩种

    • 关系型数据库====>MySQL,Oracle,postgresql 
      • 关系型数据库简单来说就是:数据与数据之间是有关系的通过关系能够将一系列数据都提取出来
    • 非关系型数据库===>Memcached和Redis
     

    MySQL数据库简绍

    MySQL属于传统关系型数据库产品,它开放式的架构使得用户选择性很强,同时社区开发与维护人数众多。其功能稳定,性能卓越,且在遵守GPL协议的前提下,可以免费使用与修改,也为MySQL的推广与使用带来了更多的利好。在MySQL成长与发展过程中,支持的功能逐渐增多,性能也不断提高,对平台的支持也越来越多。 
    MySQL是一种关系型数据库管理系统,关系型数据库的特点是将数据保存在不同的表中,再将这些表放入不同的数据库中,而不是将所有数据统一放在一个大仓库里,这样的设计增加了MySQL的读取速度,而且灵活性和可管理性也得到了很大提高。访问及管理MySQL数据库的最常用标准化语言为SQL结构化查询语言。

     

    MariaDB 数据库的诞生背景介绍

    自甲骨文公司收购MySQL后,其在商业数据库与开源数据库领域市场的占有份额都跃居第一,这样的格局引起了业内很多的人士的担忧,因为商业数据库的老大有可能将MySQL闭源。为了避免Oracle将MySQL闭源,而无开源的类MySQL数据库可用,MySQL社区采用分支的方式来避开这个风险。MariaDB数据库就这样诞生了,MariaDB是一个向后兼容,可能在以后替代MySQL的数据库产品,其官方地址为:https://mariadb.org/ 。不过,这里还是建议大家选择更稳定,使用更广泛的MySQL数据库,可以先测试MariaDB数据库,等使用的人员更多一些,社区更活跃后再考虑使用为好。

     

    编译安装MySQL

    MySQL 的下载地址:https://dev.mysql.com/downloads/mysql/ 
    还需要提前准备cmake包cmake-2.8.6.tar.gz

    • 准备工作

    [root@mysql ~]# yum -y install ncurses-devel 
    [root@mysql ~]# tar xf cmake-2.8.6.tar.gz -C /usr/src/ 
    [root@mysql ~]# cd /usr/src/cmake-2.8.6/ 
    [root@mysql cmake-2.8.6]# ./configure && gmake && gmake install 
    这是安装msyql的支持包

    • 源码编译及安装
     
    1. 增加程序用户 mysql
    2. [root@mysql ~]# useradd -M -s /sbin/nologin mysql
    3. 解压 mysql-5.5.22.tar.gz
    4. [root@mysql ~]# tar xf mysql-5.5.22.tar.gz -C /usr/src/
    5. cmake 配置,编译及安装
    6. [root@mysql ~]# cd /usr/src/mysql-5.5.22/
    7. [root@mysql 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 //主程序安装目录 
    -DDEFAULT_CHARSET=utf8 //默认字符集为 utf8 
    -DDEFAULT_COLLATION=utf8_general_ci //默认的字符集校对规则 
    -DWITH_EXTRA_CHARSETS=all //安装所有字符集 
    -DSYSCONFDIR=/etc //配置文件存放目录 

    • 安装后优化操作 
      [root@localhost ~]# cd /usr/local/mysql/

      image_1cqt10arb1u7m14q115mp15he12tip.png-31.1kB

     
    1. 修改 mysql 安装目录的属主与属组
    2. [root@mysql mysql-5.5.22]# chown -R mysql:root /usr/local/mysql/
    3. 创建修改 my.cnf 配置文件
    4. [root@mysql mysql-5.5.22]# /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 小数据量

    添加系统服务

     
    1. [root@mysql mysql-5.5.22]# /bin/cp support-files/mysql.server /etc/init.d/mysqld
    2. [root@mysql mysql-5.5.22]# chmod +x /etc/init.d/mysqld
    3. [root@mysql ~]# chkconfig mysqld --add
    4. [root@mysql ~]# chkconfig mysqld --list
    5. mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

    添加 MySQL 命令执行的路径到 PATH 环境变量

     
    1. [root@mysql ~]# echo "export PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile
    2. [root@mysql ~]# . /etc/profile
    3. [root@mysql ~]# echo $PATH
    4. /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/lo
    5. cal/mysql/bin

    这是把mysql里所有的命令加到系统变量中,让系统可以找到命令 
    执行 mysql_install_db 脚本初始 化数据库

     
    1. [root@mysql ~]#/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 服务,并查看运行状态

     
    1. [root@mysql ~]# /etc/init.d/mysqld start
    2. Starting MySQL... [确定]
    3. [root@mysql ~]# netstat -anpt |grep :3306
    4. tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
    5. 22858/mysqld

    连接并登录到 mysql 操作环境 
    mysql -u 指定用户名 
    -p 指定密码 
    -h 指定主机 
    -P 指定端口 

    [root@mysql ~]# mysql 
    [root@mysql ~]# mysql -uroot -p 

    设置数据库用户名密码 

     


    [root@mysql ~]# mysqladmin -uroot password '123123' 

     

    数据库操作

     

    SQL语句概括

    SQL 语言是(Structured Query Language 的缩写,即结构化查询语言),是关系型数据库的标准语言,用于维护管理数据库,如数据查询、数据更新、访问控制、对象管理等功能 
    SQL 分类: 
    ·DDL:数据定义语言,用于增删改数据库的对象,如库、表、索引等 
    ·DML:数据操纵语言,用于对表中的数据进行增删改 
    ·DQL:数据查询语言,用于数据查询 
    ·DCL:数据控制语言 
    image_1cqkg3n6mot01v901pcl1s0m1coam.png-25.7kB

     

    MySQL 数据库表的管理操作

    • 查看数据库结构 
      格式:show databases; 
      image_1cqkgehcd17isurvf4h1ji8oso2j.png-10.7kB
     

    查看数据库中的数据表信息

    格式:use 数据库名; 
    show tables ; 
    image_1cqkglaiv1bav1rtn106218af3au30.png-11.2kB 
    显示数据表的结构(字段 
    格式:describe [ 数据库.] 表名 
    image_1cqkgovg81frq74buj744a1u7o3d.png-12.9kB

    create创建新库,创建新表

    格式:create database ; 
    create table 表名 ( 定义字段); 
    image_1cqkh1aeu1q294lh1bfm26o35c3q.png-22.3kB

     
    1. mysql> use yunjisuan; //使用yunjisuan这个数据库
    2. mysql> create table users (user_name char(20) not null, user_passwd char(30) default '', primary key (user_name));// 在 yunjisuan 库中,创建名为 users 的表,表内两个字段为(user_name 最多 20 个字节 不能为空 ,user_passwd 最多 30 个字节 默认为空,索引关键字 user_name

    image_1cqki660n18somu4cpq1u1askg4k.png-8.6kB

    insert 插入新数据

    格式:insert into 表名( 字段 1, 字段 2,……) values(‘ 字段 1 的值’,’ 字段 2 的值’……); 
    image_1cqkhrli512fm48ad21fkuai447.png-18.3kB 
    在 users 表的(字段 user_name ,字段 user_passwd )中添加(‘zhangsan ’,调用函数 password(‘123123 ’));

    image_1cqki9oon1lt175bmu2193l1vi51.png-10.2kB

    image_1cqklripndgu18c819qi1h0q139j9.png-30.7kB

    update更改原有数据

    格式 :update 表名 set 字段名 1=值 值 1 [, 字段 2=值 值 2] where 条件表达式; 
    image_1cqkm7eig10ri1eq7j8oai41ljd26.png-26.9kB
    有时显示不出来需要用 flush privileges;这是刷新的意思

    select查询语句

    格式 :select 字段名 1, 字段名 2,……from 表名; 
    select 字段名 1, 字段名 2,……from 表名 where 条件表达式; 
    image_1cqkmfuod1msn1aoh1ah5q7l13432j.png-15.1kB

    image_1cqkmk25hb2g77sq3ofnvmv30.png-10.3kB

    image_1cqkmn4qs1ue919ov1l3nica13tv3d.png-11.7kB

    delete删除不需要的数据

    格式:delete from 表名 where 条件表达式; 
    image_1cqkn0fl74f8fv212jm6ll7eu47.png-31.4kB 
    delete from mysql.user where user=''; //在 在 mysql 库中的 user 表中,删除空的用户 
    名的记录

    drop删除库,删除表

    格式:drop table [ 数据库名.] 表名; 
    drop database 数据库名; 
    image_1cqkn7uuq1ergefh1vouaa134c4k.png-20kB

    image_1cqknfmnm44h7nd7341mf76bu61.png-31.9kB

  • 相关阅读:
    iOS 获取内外网ip
    iOS 查看层级关系以及调用堆栈
    CoreML Use of undeclared type & Use of unresolved identifier
    AFN的实时网络监控 但是block连续调用了两次
    iOS 11 偏好设置(NSUserDefaults)无效了?
    iOS 11 UIScrollView的新特性(automaticallyAdjustsScrollViewInsets 不起作用了)
    Xcode9~iOS11初体验 无线调试
    Hook~iOS用钩子实现代码注入(埋点方案)
    tomcat启动时端口占用的问题怎么解决
    Memcached在Linux环境下的使用详解http://blog.51cto.com/soysauce93/1737161
  • 原文地址:https://www.cnblogs.com/fengdou/p/9866539.html
Copyright © 2011-2022 走看看