MySQL数据库基础介绍



一、什么是MySQL

MySQL是一个开源的关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,目前属于Oracle公司。它使用SQL(结构化查询语言)进行数据库管理。

主要特点:

  • 开源免费
  • 性能高
  • 可靠性强
  • 易于使用
  • 跨平台支持

二、数据库基本概念

2.1 数据库组成

组件描述
数据库(Database)数据存储的容器,包含多个数据表
数据表(Table)数据的二维矩阵,由行和列组成
列(Column)表的字段,定义数据的属性
行(Row)表的记录,包含具体的数据

2.2 常见数据类型

分类数据类型描述
数值类型INT整数
DECIMAL精确小数
FLOAT浮点数
字符串类型VARCHAR可变长度字符串
CHAR固定长度字符串
TEXT长文本数据
日期时间DATE日期(YYYY-MM-DD)
DATETIME日期和时间

三、SQL基础语法

3.1 数据库操作

-- 创建数据库
CREATE DATABASE school;

-- 使用数据库
USE school;

-- 删除数据库
DROP DATABASE school;

3.2 数据表操作

-- 创建学生表
CREATE TABLE students (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(50) NOT NULL,
  age INT,
  gender ENUM('男','女'),
  class_id INT,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 创建班级表
CREATE TABLE classes (
  id INT PRIMARY KEY AUTO_INCREMENT,
  class_name VARCHAR(50) NOT NULL,
  teacher VARCHAR(50)
);

3.3 数据操作语言(DML)

-- 插入数据
INSERT INTO students (name, age, gender, class_id) 
VALUES ('张三', 18, '男', 1);

-- 查询数据
SELECT * FROM students;
SELECT name, age FROM students WHERE age > 18;

-- 更新数据
UPDATE students SET age = 19 WHERE name = '张三';

-- 删除数据
DELETE FROM students WHERE id = 1;

四、约束和索引

4.1 常用约束

约束类型说明示例
PRIMARY KEY主键,唯一标识id INT PRIMARY KEY
FOREIGN KEY外键,关联其他表FOREIGN KEY (class_id) REFERENCES classes(id)
NOT NULL非空约束name VARCHAR(50) NOT NULL
UNIQUE唯一约束email VARCHAR(100) UNIQUE
DEFAULT默认值status INT DEFAULT 1

4.2 索引

-- 创建索引
CREATE INDEX idx_name ON students(name);

-- 创建唯一索引
CREATE UNIQUE INDEX idx_email ON users(email);

-- 删除索引
DROP INDEX idx_name ON students;

五、查询进阶

5.1 多表查询

-- 内连接
SELECT s.name, c.class_name 
FROM students s 
INNER JOIN classes c ON s.class_id = c.id;

-- 左连接
SELECT s.name, c.class_name 
FROM students s 
LEFT JOIN classes c ON s.class_id = c.id;

5.2 聚合函数

函数描述示例
COUNT()计数SELECT COUNT(*) FROM students;
SUM()求和SELECT SUM(score) FROM grades;
AVG()平均值SELECT AVG(age) FROM students;
MAX()最大值SELECT MAX(score) FROM grades;
MIN()最小值SELECT MIN(age) FROM students;

5.3 分组和排序

-- 按班级分组统计学生人数
SELECT class_id, COUNT(*) as student_count 
FROM students 
GROUP BY class_id 
HAVING COUNT(*) > 5;

-- 按年龄排序
SELECT * FROM students ORDER BY age DESC;

-- 分页查询
SELECT * FROM students LIMIT 10 OFFSET 0;

六、示例数据表结构

学生管理系统表结构示例

表名字段类型说明
studentsidINT学生ID(主键)
nameVARCHAR(50)学生姓名
ageINT年龄
class_idINT班级ID(外键)
created_atTIMESTAMP创建时间
classesidINT班级ID(主键)
class_nameVARCHAR(50)班级名称
teacherVARCHAR(50)班主任

七、常用函数

7.1 字符串函数

SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM users;
SELECT UPPER(name) FROM students;
SELECT LENGTH(name) FROM students;
SELECT SUBSTRING(name, 1, 3) FROM students;

7.2 日期函数

SELECT NOW(); -- 当前日期时间
SELECT CURDATE(); -- 当前日期
SELECT DATE_FORMAT(created_at, '%Y-%m-%d') FROM students;
SELECT DATEDIFF(NOW(), created_at) FROM students;

八、数据库设计原则

  • 规范化设计:减少数据冗余
  • 适当使用索引:提高查询性能
  • 选择合适的数据类型:节省存储空间
  • 建立外键关系:保证数据完整性
  • 考虑扩展性:为未来发展留出空间

九、学习建议

  • 从基础SQL语法开始学习
  • 多动手实践,创建测试数据库
  • 理解关系型数据库的设计理念
  • 学习数据库优化技巧
  • 关注数据库安全知识

MySQL作为最流行的开源数据库之一,掌握其基础知识对于任何从事Web开发或数据分析的人员都是必不可少的。通过不断实践,你将能够熟练运用MySQL来管理和操作数据。


❤️收藏 👍点赞

用户评论

发表评论

您还未登录,无法发表评论!
快来留下你的足迹吧~