zoukankan      html  css  js  c++  java
  • 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
     
       
     
     
  • 相关阅读:
    LeetCode 12. 整数转罗马数字
    [Python] for in range()使用以及列表字符串反转方法
    组合数问题
    「BJOI2020」封印
    数据结构优化建图
    小Q与找茬
    无旋Treap学习
    jzoj5679
    数星星
    凸性
  • 原文地址:https://www.cnblogs.com/yu412/p/11523223.html
Copyright © 2011-2022 走看看