Data
Stay hungry,Stay foolish!

导航

 

数据库技术构成

数据库系统

  • 数据库系统有三个主要的组成部分

    • 数据库(DB):用于存储数据的地方
    • 数据库管理系统(DataBase Management Syestem , DBMS):用于管理数据库的软件
    • 数据库应用程序(DataBase Application,如:Navicat for MySQL)

SQL语言

  • 包含以下4个部分。

    • 数据定义语言(DDL): DROP/CREATE/ALTER等语句
    • 数据操作语言(DML):INSERT/UPDATA/DELETE等语句
    • 数据查询语言(DQL):SELECT语句
    • 数据控制语言(DCL):GRANT/REVOKE/COMMIT/ROLLBACK等语句

CREATE操作:

CREATE TABLE students
(
	student_id INT UNSIGNED,
	names VARCHAR(30),
	sex CHAR(2),
	birth DATE,
	PRIMARY KEY(student_id)
);

INSERT操作:

INSERT INTO students(student_id,names,sex,birth)
VALUES(41048101, 'Noevil','男','1990-01-30')

SELECT操作:

SELECT names from students WHERE student_id = 41048101;

数据库访问接口

  • ODBC
    (Open Database Connectivity,开放数据库互连),为了一个应用程序可以通过共同的一组代码访问不同的SQL数据库管理系统(DBMS)。

  • JDBC
    (Java Data Base Connectivity,Java数据库连接)用于Java应用程序连接数据库的标准方法,是一种用于执行sql语句的Java API。

  • ADO.NET
    微软在.NET框架下开发设计的一组用于和数据源进行交互的面向对象类库。

  • PDO
    PHP Data Object。

MySQL的优势

  • 主要优势如下:

    • 速度:运行速度快
    • 价格:免费开源
    • 容易使用:易于学习
    • 可移植性:能够在众多不同的系统平台上,例如:Windows、Linux、Unix、Mac OS等。
    • 丰富的接口:提供理论C、C++、Java、php、Python、Ruby等语言的API
    • 支持查询语言:MySQL可以利用标准SQL语法和支持ODBC的应用程序
    • 安全性和连接性:保证安全,由于MySQL是网络化的,因此可以在互联网上的任何地方访问,提高了数据共享的效率

MySQL命令行使用程序

  • 服务端如下:

    • mysqld:SQL后台程序
    • mysqld_safe:服务器启动脚本
    • mysql.server:服务器启动脚本,该脚本用于使用包含特定级别的、运行启动服务的脚本的、运行目录的系统。它调用mysqld_safe来启动MySQL服务器。
    • mysql_multi:可以启动或停止系统上安装的多个服务器。
    • myisamchk:用来描述、检查、优化和维护MyISAM表的实用工具
    • mysqlbug:MySQL缺陷报告脚本。它可以用来向MySQL邮件系统发送缺陷报告
    • mysql_install_db:该脚本用默认权限创建MySQL授权表。通常只在系统上首次安装MySQL时执行一次
  • 客户端如下:

    • myisampack:压缩MyISAM表以产生更小的只读表的一个工具
    • mysql:交互式输入SQL语句的命令行工具
    • mysqlaccess:检查访问主机名、用户名、和数据库组合的权限的脚本
    • MySQLadmin:执行管理操作的客户程序,例如创建或删除数据库
    • mysqlbinlog:从二进制日志读取语句的工具,包含执行过的语句,可用来帮助系统从奔溃中回复
    • mysqlcheck:检查、修复、分析以及优化表的表维护客户程序
    • mysqldump:将MySQL数据库转储到一个文件
    • mysqlhotcopy:快速备份MyISAM
    • mysql import:使用load data infile将文本文件读入相关表
    • mysqlshow:显示数据库、表、列以及索引相关信息
    • perror: 显示系统或MySQL错误代码含义的工具。

MySQL配置

  • 登录MySQL

    • mysql -h ip地址 -u 用户名 -p 密码

      • 例如:mysql -h 192.168.1.0 -u root -p123456
  • linux 安装和配置mysql

    • 进入下载页 https://dev.mysql.com/downloads/mysql/,选择Linux 选择要下载ram包

    • 解压下载包 tar -xvf MySQL-5.7.10-1.rhe15.i386.tar(一般只需要安装server和client两个包)

    • 切换root用户 su -root

    • 安装mysql rpm -ivh MySQL-server-5.7.10-1.rhe15.i386.rpm

    • 执行usr/bin/mysqladmin -u root password 'new-password' 可以更改root密码

    • 执行usr/bin/mysql_secure_installation 会删除测试数据库和匿名用户

    • 执行usr/bin/mysqlbug script 会报告bug

注意:安装前要查看是否有旧版mysql,如果有最好卸载

  • 查看 rpm -qa | grep -i mysql

  • 卸载 rpm -ev 版本

  • mysql服务操作

    service mysql restart|start|status|stop

数据库的使用

  • 查看数据库
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | bili               |
    | douban             |
    | fordearbox         |
    | gregs_list         |
    | information_schema |
    | kaola              |
    | mysql              |
    | performance_schema |
    | sina               |
    | sys                |
    | taobao             |
    | test               |
    | weixin             |
    | xhs                |
    +--------------------+
    14 rows in set (0.01 sec)

    mysql是必须的,它描述用户访问权限
    test库是测试库
  • 创建数据库
mysql> create database fordear;
Query OK, 1 row affected (0.02 sec)
  • 查看数据库的定义
mysql> show create database fordear;
+----------+------------------------------------------------------------------------------------------------+
| Database | Create Database                                                                                |
+----------+------------------------------------------------------------------------------------------------+
| fordear  | CREATE DATABASE `fordear` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ |
+----------+------------------------------------------------------------------------------------------------+
1 row in set (0.02 sec)
  • 删除数据库
mysql> drop database fordear;
Query OK, 0 rows affected (0.23 sec)

mysql> show create database fordear\g;
ERROR 1049 (42000): Unknown database 'fordear'
ERROR:
No query specified

数据库存储引擎

数据库存储引擎是数据库底层软件组织,数据库管理系统DBMS使用数据引擎进行创建、查看、更新和删除数据操作;MySQL的核心是存储引擎。

MySQL支持的存储引擎有:InnoDB,MyISAM,Memory,Merge,Archive,Federated,CSV,BLACKHOLE等

  • 查看系统支持的引擎
show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+

Support 表示支持哪种引擎
YES 表示可以使用
NO 表示不可以使用
DEFAULT 表示当前默认存储引擎
  • InnoDB存储引擎(事务型首选引擎)

    • InnoDB给MySQL提供了具有提交、回滚、和蹦溃回复能力的事务安全(ACID)存储引擎。

      • ACID数据库事务正确执行的四个基本要素的缩写,包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务(Transaction)的数据库系统,必需要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。
    • InnoDB存储引擎是为了处理巨大数据量的最大性能设计,CPU无可匹敌

    • InnoDB将表和索引存储在一个逻辑表空间中,表空间可以包含数个文件,MyISAM引擎中每个表被存在分离文件中。

    • InnoDB 支持外键完整性约束。

    • InnoDB 被用在众多需要高性能的大型数据库站点上。

  • MyISAM 存储引擎

    • 不支持事务

    • 插入和查询方便

  • Memory

    • 不支持事务

    • 临时存放,不需要太高安全性,数据量不大的时候

  • Archive(非常适合记录日志信息)

posted on 2018-10-23 16:27  进击中的青年  阅读(157)  评论(0编辑  收藏  举报