
无论是初学者还是有一定经验的数据库管理员,掌握MySQL的基础语法及进行实际操作练习都至关重要
本文将全面介绍MySQL的基础语法,并提供一系列练习题,帮助读者更好地理解和应用这些语法
一、MySQL简介与理论基础 MySQL采用客户端/服务器架构,支持多用户环境,并基于SQL(结构化查询语言)标准
关系型数据库的核心概念在于数据以表格(二维表)形式存储,表之间通过关系连接
MySQL具有ACID特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),这些特性确保了数据库事务的可靠性和完整性
MySQL采用多层架构设计,包括连接层、服务层、存储引擎层和文件系统层
其中,存储引擎是MySQL架构中的重要组成部分,不同的存储引擎具有不同的特性和用途
InnoDB是MySQL的默认存储引擎,支持事务、外键和行级锁;MyISAM适合读密集型应用,支持全文索引;Memory将数据存储在内存中,速度极快但不持久;Archive则适合存储和检索大量很少被查询的历史数据
二、MySQL数据类型 在MySQL中,数据类型是创建和操作数据库表的基础
MySQL支持多种数据类型,包括数值类型、字符串类型、日期和时间类型以及其他类型
1.数值类型: - INT:整数类型,4字节
- TINYINT:小整数,1字节
- BIGINT:大整数,8字节
- FLOAT/DOUBLE:浮点数
- DECIMAL:精确小数
2.字符串类型: - CHAR(n):固定长度字符串
- VARCHAR(n):可变长度字符串
- TEXT:长文本
3.日期和时间类型: - DATE:日期,格式YYYY-MM-DD
- TIME:时间,格式HH:MM:SS
- DATETIME:日期和时间,格式YYYY-MM-DD HH:MM:SS
- TIMESTAMP:时间戳
4.其他类型: - ENUM:枚举类型
- SET:集合类型
- BLOB:二进制大对象
三、数据库和表的基本操作 数据库操作 -创建数据库: sql CREATE DATABASE【IF NOT EXISTS】 mydb【CHARACTER SET charset_name】【COLLATE collation_name】; -查看所有数据库: sql SHOW DATABASES; -使用数据库: sql USE mydb; -删除数据库: sql DROP DATABASE【IF EXISTS】 mydb; 表操作 -创建表: sql CREATE TABLE students( id INT AUTO_INCREMENT PRIMARY KEY, -- 主键,自动递增 name VARCHAR(50) NOT NULL, -- NOT NULL约束 age INT CHECK(age >0), -- CHECK约束 gender ENUM(男, 女), --枚举类型 class VARCHAR(20), score FLOAT DEFAULT0, --默认值 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 自动记录创建时间 INDEX idx_class(class) --索引 ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; -查看表结构: sql DESCRIBE students; -- 或 SHOW COLUMNS FROM students; -修改表结构: - 添加列: sql ALTER TABLE students ADD COLUMN email VARCHAR(100); - 修改列: sql ALTER TABLE students MODIFY COLUMN name VARCHAR(100); - 删除列: sql ALTER TABLE students DROP COLUMN email; -删除表: sql DROP TABLE【IF EXISTS】 students; 四、数据操作语言(DML) DML主要用于对数据库表中的数据进行增删改查操作
-INSERT:插入数据: sql INSERT INTO table_name【(column1, column2, ...)】 VALUES(value1, value2,...); -SELECT:查询数据: sql SELECT column1, column2, ... FROM table_name WHERE condition; -UPDATE:更新数据: sql UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition; -DELETE:删除数据: sql DELETE FROM table_name WHERE condition; 五、数据定义语言(DDL) DDL主要用于定义和管理数据库结构,包括创建、修改和删除数据库对象
-CREATE:创建数据库和表(上文已介绍)
-ALTER:修改表结构(上文已介绍)
-DROP:删除数据库和表(上文已介绍)
此外,DDL还包括对索引、视图、存储过程和触发器的定义和管理
-创建索引: sql CREATE INDEX index_name ON table_name(column_name); -创建视图: sql CREATE VIEW view_name AS SELECT statement; -创建存储过程: sql CREATE PROCEDURE procedure_name(IN parameter_name datatype, OUT parameter_name datatype,...) BEGIN -- SQL语句 END; -调用存储过程: sql CALL procedure_name(value1, @value2,...); -删除视图和存储过程: sql DROP VIEW view_name; DROP PROCEDURE procedure_name; 六、数据控制语言(DCL) DCL主要用于定义数据库的访问权限和安全级别
-GRANT:授权: sql GRANT SELECT, INSERT, UPDATE ON database_name.table_name TO username@host; -REVOKE:撤销权限: sql REVOKE SELECT, INSERT, UPDATE ON database_name.table_name FROM username@host; 七、MySQL练习题 以下是一些基于上述基础语法的MySQL练习题,旨在帮助读者巩固所学知识
1.创建数据库和表: -创建一个名为`school_system`的数据库
- 在`school_system`数据库中创建一个
Linux中MySQL僵尸进程处理指南
MySQL基础语法大全与实战练习指南
IDEA中高效使用MySQL数据库技巧
揭秘MySQL存储引擎的核心作用
MySQL8.0分区技术详解:高效管理大数据的秘诀
MySQL优选可视化软件推荐
MySQL进阶语法实战技巧解析
Linux中MySQL僵尸进程处理指南
IDEA中高效使用MySQL数据库技巧
揭秘MySQL存储引擎的核心作用
MySQL8.0分区技术详解:高效管理大数据的秘诀
MySQL优选可视化软件推荐
MySQL进阶语法实战技巧解析
MySQL事务管理揭秘:谁在掌舵?
Spring Boot JPA连接MySQL实战指南
解决MySQL表中文字符乱码问题:步骤与技巧
JSP+MySQL实现图片上传指南
MySQL内存设置优化指南
MySQL技巧:如何保留数字后四位