• 初识数据库


    数据库技术构成

    数据库系统

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

      • 数据库(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 fordearg;
    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(非常适合记录日志信息)

  • 相关阅读:
    《学习OpenCV》练习题第五章第二题abc
    《学习OpenCV》练习题第五章第一题ab
    《学习OpenCV》练习题第四章第八题ab
    《学习OpenCV》练习题第四章第三题b
    《学习OpenCV》练习题第四章第三题a
    《学习OpenCV》练习题第四章第二题
    《学习OpenCV》练习题第四章第一题b&c
    《学习OpenCV》练习题第四章第一题a
    《学习OpenCV》练习题第四章第七题abc
    【T^T 1736】【FJUTOJ 1077】排座位
  • 原文地址:https://www.cnblogs.com/lishi-jie/p/9837413.html
Copyright © 2020-2023  润新知