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中数据类型
基本数据烈性主要有三类:数字、字符串、日期和时间
- 数值类型:
INT:整数(4字节),TINYINT:(1字节)S,MALLINT:(2字节)等。
FLOAT:浮动指针数。 - 字符串类型:
CHAR(size):固定长度字符串,长度为1~255字符。
VARCHAR(size):可变长度字符串,但不能使用任何空格。
TEXT:可变长度的字符串。 - 日期和时间类型:
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中,使用主键-外键约束条件来定义表关系,其中一个表的主键与另一个表的外键相关联,存在以下几种关联方式:
- 一对一关系
一个表中的一行在另一个表中只有一个匹配行的关系,如学生—电子邮件 - 一对多关系
一个表中的一行在另一个表中有多个匹配行的关系,如学生—选课 - 多对多关系
一个表中的多条记录与另一个表中的多条记录相关,如学生—选课—学生
连接操作
SELECT * FROM table_name1 JOIN table_name2 ON
table_name1.value1 = table_name2.value2 //表一与表二间的连接键
(INNER) JOIN 共有的项
LEFT JOIN 共有以及表1有的项
RIGHT JOIN 共有以及表2有的项
OUTER JOIN 所有
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~