码迷,mamicode.com
首页 > 数据库 > 详细

MySQL数据库总结

时间:2018-09-21 21:39:11      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:参数   二进制   group   ++   sys   0 rows   文件中   关系   mkfs.ext4   

什么是数据库?

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,
每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。
我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
RDBMS即关系数据库管理系统(Relational Database Management System)的特点:
1.数据以表格的形式出现
2.每行为各种记录名称
3.每列为记录名称所对应的数据域
4.许多的行和列组成一张表单
5.若干的表单组成database

关于MySQL数据库

MySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL 是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL 是开源的,所以你不需要支付额外的费用。。
MySQL 使用标准的SQL数据语言形式。
MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
MySQL 对PHP有很好的支持,PHP是目前最流行的Web开发语言。
MySQL 支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。
现在的MariaDb和MySQL是同一个人写的。两者语法并没有太多的出入。

MySQL的安装

方法一:yum直接安装

[root@centos6 ~]# yum install mysql mysql-server -y  

方法二:编译安装

  • 从downloads.mariadb.org下载所需版本的mariadb的二进制包 mariadb-10.3.9-linux-x86_64.tar.gz
  • 创建所需用户及组
    [root@centos6 ~]# groupadd -g 36 -r mysql
    [root@centos6 ~]# useradd -u 36 -r -g mysql -m -d /app/dbdata -s /sbin/nologin mysql
  • 准备dbdata 建议做到lvm上(方便后期数据库的移植)选作
    [root@centos6(nanyibo) ~]# pvcreate /dev/sda6
    [root@centos6(nanyibo) ~]# vgcreate vgmysql /dev/sda6
    [root@centos6(nanyibo) ~]# lvcreate -l +100%FREE -n lvmysql vgmysql
    [root@centos6(nanyibo) ~]# mkfs.ext4 /dev/vgmysql/lvmysql
    [root@centos6(nanyibo) ~]# vim /etc/fstab 
    /dev/vgmysql/lvmysql    /app/dbdata             ext4    defaults        0 0
    [root@centos6(nanyibo) ~]# mount -a
    [root@centos6(nanyibo) ~]# chown mysql.mysql /app/dbdata
    [root@centos6(nanyibo) ~]# chmod 700 /app/dbdata
  • 解压二进制目录,做一个链接文件(选作)
    [root@centos6 ~]# tar -xvf mariadb-10.2.14-linux-x86_64.tar.gz -C /usr/local/
    [root@centos6 ~]# cd /usr/local/
    [root@centos6 local]# ln -sv mariadb-10.2.14-linux-x86_64 mysql
  • 创建配置文件
    [root@centos6 mysql]# vim /etc/mysql/my.cnf
    [mysqld] 
    datadir         = /app/dbdata  #
    innodb_file_per_table   = on  #每一个数据和表都会生成一个文件
    skip_name_resolve = on   #这个参数是禁止域名解析,默认off
  • 创建数据库
    [root@centos6 mysql]# scripts/mysql_install_db --datadir=/app/dbdata --user=mysql
  • 配置启动脚本
    [root@centos6 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
    [root@centos6 mysql]# chkconfig --add mysqld
    [root@centos6 mysql]# chkconfig mysqld on
    [root@centos6 mysql]# service mysqld restart
  • 配置环境变量PATH
    [root@centos6 ~]# vim /etc/profile.d/mage.sh
    export PATH=/usr/local/mysql/bin:$PATH
    [root@centos6 ~]# source /etc/profile.d/mage.sh
  • 初始化mysql,设置密码
    [root@centos6 ~]# mysql_secure_installation

MySQL库操作

  1. 创建数据库
    CREATE DATABASE 数据库名;#不区分大小写
    create database test;
  2. 删除数据库
    drop database <数据库名>;
    drop database test;
  3. 选择数据库
    MariaDB [(none)]> use test;
    Database changed
  4. 查看数据库

    MariaDB [none]> show databases;

    MySQL表操作

    1. 创建数据表

      create table table_name (column_name column_type);
      MariaDB [test]> create table student (id tinyint unsigned primary key, name varchar(20) not null, age tinyint unsigned,sex char(1) default "m" );
      Query OK, 0 rows affected (0.05 sec)
      MariaDB [test]> desc student;

      设置主键的方法:
      a. 直接设置

          CREATE TABLE student(
          sid INT PRIMARY KEY,
          sname VARCHAR(30)
          );

    b. constraint 约束

    CREATE TABLE test(
    id INT,
    ?NAME? VARCHAR(20),
    CONSTRAINT pk_id PRIMARY KEY(id));

    c. 添加主键约束

    CREATE TABLE teacher(
    tid INT,
    tname VARCHAR(50)
    );
    ALTER TABLE teacher ADD CONSTRAINT pk_tid PRIMARY KEY(tid);

    d. 联合主键 把两列设置成一个主键

    CREATE TABLE book(
    bid INT,
    bname VARCHAR(100),
    author VARCHAR(30),
    CONSTRAINT pk_bid_bname PRIMARY KEY(bid,bname)
    );
    1. 删除数据表
      drop table tablename;
      MariaDB [test]> drop table student;
    2. 插入数据
      INSERT INTO table_name ( field1, field2,...fieldN )
      VALUES
      ( value1, value2,...valueN );
      MariaDB [test]> insert into student values (1,‘liumou‘,‘18768896428‘,22,default);
    3. 查询数据
      SELECT column_name,column_name
      FROM table_name
      [WHERE Clause]
      [LIMIT N]
      MariaDB [test]> select name,age from student where sex=‘m‘ limit 5;
    4. WHERE 子句
      查询语句中你可以使用一个或者多个表,表之间使用逗号, 分割,并使用WHERE语句来设定查询条件。
      你可以在 WHERE 子句中指定任何条件。
      你可以使用 AND 或者 OR 指定一个或多个条件。
      WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。
      WHERE 子句类似于程序语言中的 if 条件,根据 MySQL 表中的字段值来读取指定的数据。
    5. UPDATE 查询
      UPDATE table_name SET field1=new-value1, field2=new-value2
      [WHERE Clause]
      MariaDB [test]> update student set phone=‘18438613802‘ where id=2;

      可以同时更新一个或多个字段。
      可以在 WHERE 子句中指定任何条件。
      可以在一个单独表中同时更新数据。

    6. DELETE 语句
      DELETE FROM table_name [WHERE Clause]
      MariaDB [test]> delete from student where id=1;

      如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
      你可以在 WHERE 子句中指定任何条件
      您可以在单个表中一次性删除记录。

    7. LIKE 子句
      SELECT field1, field2,...fieldN 
      FROM table_name
      WHERE field1 LIKE condition1 [AND [OR]] filed2 = ‘%char%‘
      MariaDB [hellodb]> select * from students where name like ‘L%‘;

      可以在 WHERE 子句中指定任何条件。
      可以在 WHERE 子句中使用LIKE子句。
      可以使用LIKE子句代替等号 =。
      LIKE 通常与 % 一同使用,类似于一个元字符的搜索。
      可以使用 AND 或者 OR 指定一个或多个条件。
      可以在 DELETE 或 UPDATE 命令中使用 WHERE...LIKE 子句来指定条件。

MySQL数据库总结

标签:参数   二进制   group   ++   sys   0 rows   文件中   关系   mkfs.ext4   

原文地址:http://blog.51cto.com/13805636/2178864

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!