MYSQL数据库系统

本章讨论了MySQL关系数据库系统;介绍了MySQL并指出了它的重要性;展示了如何在Linux机器上安装和运行MySQL;演示了如何使用MySQL在命令模式和批处理模式下使用SQL脚本创建和管理数据库;说明了如何将MySQL与C编程相结合;演示了如何将MySQL与PHP集成,通过动态Web页面创建和管理数据库。

MySQL

 MySQL是一个关系型数据库管理系统,在关系数据库中,数据存储在表中。每个表由多个行和列组成。表中的数据相互关联。表也可能与其他表有关联。关系结构使得可在表上运行查询来检索信息并修改数据库中的数据。
  MySQL是一个开源数据库管理系统,由服务器和客户机组成。在将客户机连接到服务器后,用户可向服务器输入SQL命令,以便创建数据库,删除数据库,存储、组织和检索数据库中的数据。- -- MySQL有广泛的应用。除了提供标准的数据库系统服务外,MySQL 和PHP已成为大多数数据管理和在线商务网站的主干网。

MySQL的使用

连接到MySQL服务器

运行客户机程序。从终端输入MySQL客户机命令mysql,连接到同一台计算机上默认本地主机上的MySQL服务器。

mysql -u root -p
Enter password:******

连接到MySQL服务器后,即可访问MySQL shell,如mysql>提示符所示,要求用户输入可供MySQL服务器执行的SQL命令
与普通sh类似,它还维护一个名利历史记录,允许用户通过剪头键回忆和修改先前的命令。但它只接受MySQL命令/脚本,不接受sh命令
注:

  • MySQL命令行末尾必定是分号,对长命令可输入ENTER。MySQL将会通过->符号继续提示过呢更多的输入,直到看到结束分号
  • MySQL命令行不区分大小写,为方便识别,一般用大写编写MySQL命令,小写写数据库、表、文件或用户名。
    显示数据库
    SHOW DATABASES命令可显示MySQL中的当前数据库
    新建数据库
    CREATE DATABASE xx 创建一个名为xx的数据库,如果数据库已经存在,则可以使用IF NOT EXISTS子句对命令限定。
CREATE DATABASE [IF NOT EXISTS] xx;

删除数据库
DROP DATABASE xx 删除已存在的命名数据库,该命令可以用一个可选的IF EXISTS 子句限定。
选择数据库
USE xx 命令选择一个数据库
创建表

CREATE TABLE students(
    student_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    nam CHAR(20),
    score INT);

删除表
DROP TABLE xx 命令删除表

MySQL中数据类型

基本数据烈性主要有三类:数字、字符串、日期和时间

  1. 数值类型:
    INT:整数(4字节),TINYINT:(1字节)S,MALLINT:(2字节)等。
    FLOAT:浮动指针数。
  2. 字符串类型:
    CHAR(size):固定长度字符串,长度为1~255字符。
    VARCHAR(size):可变长度字符串,但不能使用任何空格。
    TEXT:可变长度的字符串。
  3. 日期和时间类型:
    DATE:日期格式为YYYYMM-DD。
    TIME:以HHMMSS格式保存时间.
    插入/删除行
    要在表中添加/删除行,可使用INSERT/DELETE命名,具有语法形式:
    INSERT/DELETE INTO table_name VLAUES(columnValuel,columnValue2,....);
INSERT INTO students VALUES (0,'x','0');

更新表
UPDATE命令用于修改表中的现有记录(列)
UPDATE table_name SET coll = value1, col2 = value2,…… WHERE condition

e.g

mysql> UPDATE students SET score = 92 WHERE name = 'Walton';

修改表

ALTER TABLE命令用于添加、删除或修改当前表中的列。它还用于添加和删除当前表中的各种约束条件。

  • 修改表名
    ALTER TABLE table_name RENAME To new_name;
  • 添加/删除/修改列
    ALTER TABLE table_name ADD/DROP/ALTER column_name datatype;

关联表

一个数据库中,包含多个相互关联的表。在MySQL中,使用主键-外键约束条件来定义表关系,其中一个表的主键与另一个表的外键相关联,存在以下几种关联方式:

  1. 一对一关系
    一个表中的一行在另一个表中只有一个匹配行的关系,如学生—电子邮件
  2. 一对多关系
    一个表中的一行在另一个表中有多个匹配行的关系,如学生—选课
  3. 多对多关系
    一个表中的多条记录与另一个表中的多条记录相关,如学生—选课—学生

连接操作

    SELECT * FROM table_name1 JOIN table_name2 ON
    table_name1.value1 = table_name2.value2 //表一与表二间的连接键

(INNER) JOIN 共有的项
LEFT JOIN 共有以及表1有的项
RIGHT JOIN 共有以及表2有的项
OUTER JOIN 所有