MySQL

MySQL

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

在本教程中,会让大家快速掌握 MySQL 的基本知识,并轻松使用 MySQL 数据库。

RDBMS 术语

在我们开始学习MySQL 数据库前,让我们先了解下RDBMS的一些术语:

  • 数据库: 数据库是一些关联表的集合。
  • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
  • 列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。
  • 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
  • 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
  • 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
  • 外键:外键用于关联两个表。
  • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
  • 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
  • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成, 如图所示的一个表格:

  • 表头(header): 每一列的名称;
  • 列(col): 具有相同数据类型的数据的集合;
  • 行(row): 每一行用来描述某条记录的具体信息;
  • 值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
  • 键(key): 键的值在当前列中具有唯一性。

MySQL数据库

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

  • MySQL 是开源的,所以你不需要支付额外的费用。
  • MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
  • MySQL 使用标准的 SQL 数据语言形式。
  • MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
  • MySQL 对PHP有很好的支持,PHP 是目前最流行的 Web 开发语言。
  • MySQL 支持大型数据库,支持 5000 万条记录的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支持最大的表文件为8TB。
  • MySQL 是可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 MySQL 系统。
在PHP中使用MySQL
   
 连接数据库管理系统函数:
        $link = new mysqli(host,username,password,dbname);
          参数释义:
               host,mysql的主机名或ip地址
               usernane,mysql用户名
               pasword,mysql密码
               dbname,要操作的数据库名
          返回值:
               当连接成功时返回连接标识符
               当连接失败时返回false
        连接失败:
            echo $link->connect_error;
 
     设置字符集:
          $link->set_charset("utf8");
 
     查询语句(执行一条sql语句):
          $link->query(sql命令);
     
     插入数据:
          $query1 = "insert tb_name (字段名) values(对应值)";
          $link->query($query1);
 
     更新数据:
          $query2 = "update tb_name set 字段名=值 where 条件";
          $link->query($query2);
 
     删除记录:
          $query3 = "delete from tb_name where 条件"
          $link->query($query3);
 
     查询记录:
          $query4 = "select * from tb_name";
          $res = $link->query($query4);
         
          索引数组+关联数组查看数据:$res->fetch_array()
          索引数组查看数据:$res->fetch_row();
          关联数组查看数据:$res->fetch_assoc();        √
          对象方式查看数据:$res->fetch_object();
          以上四种方式每次执行返回一条记录的数据,可配合循环多次执行,查询所有数据
          
     断开数据库的函数:
          $link->close();
          断开连接
          程序执行完毕自动断开,可省略不用
 
 
在命令窗口使用MySQL
 
登录过程中出现1103报错、登录过程中出现1045报错:
https://www.jianshu.com/p/c3ac62985369
 
     MySQL语句的规范:
          1.关键字与函数名称全部大写
          2.数据库名称,表名称,字段名称全部小写
          3.SQL语句必须以分号结尾
 
     创建数据库:
          CREATE DATABASE db_name;
          CHARACTER SET charset_name     //创建数据库同时设置编码方式
     查看编码格式:
          SHOW CREATE DATABASE db_name;
     查看当前服务器下的数据库列表:
          SHOW DATABASES;
     修改编码格式:
          ALTER DATABASE db_name CHARACTER SET utf8;
     删除数据库:
          DROP DATABASE db_name;
     选择数据库:
          USE db_name;
     显示当前数据库:
          SELECT DATABASE();
     -----------------------------------------------------------------------------
     创建数据表(创建字段名):
          CREATE TABLE table_name (
               column_name data_type,
               ......
          )
     显示数据表列表:
          SHOW TABLES [FROM db_name];
     显示数据表的结构:
          SHOW COLUMNS FROM tb_name;
     修改数据表:
        添加一列:
            ALTER TABLE tb_name ADD column_name data_type;
        添加多列:
            ALTER TABLE tb_name ADD (column_name data_type,…);
        删除列:
            ALTER TABLE tb_name DROP column_name,DROP column_name,……
 
     插入记录(创建字段下的数据):
          INSERT tb_name (col_name,...) VALUES(val,...);
     查找记录:
          SELECT col_name,... FROM tb_name;
     更新记录UPDATE:
          UPDATE tb_name SET age = age + 5, sex = 2 WHERE username='TOM’;
     删除记录DELETE:
          DELETE FROM tb_name WHERE id=2;
 
     排序:SELECT * FROM stu ORDER BY 笔试 LIMIT 0,8
 
   
 
 
原文地址:https://www.cnblogs.com/yu412/p/11523223.html