MySQL,作为开源数据库管理系统的佼佼者,凭借其高性能、可靠性和易用性,成为了众多开发者和企业的首选
而掌握MySQL的基础SQL(Structured Query Language,结构化查询语言)语句,则是高效管理和操作数据库数据的基础
本文将深入探讨MySQL基础SQL语句,帮助读者构建扎实的数据管理技能
一、MySQL与SQL简介 MySQL是一种关系型数据库管理系统(RDBMS),使用标准的SQL语言进行数据定义、查询、更新和管理
SQL是一种专门用来与数据库通信的编程语言,它不仅适用于MySQL,还广泛应用于Oracle、SQL Server等其他数据库系统
掌握SQL,意味着你拥有了一把打开众多数据库大门的钥匙
二、数据定义语言(DDL) DDL(Data Definition Language)用于定义数据库结构或模式,包括创建、修改和删除数据库对象(如表、索引、视图等)
1.创建数据库和表 sql CREATE DATABASE mydatabase; USE mydatabase; CREATE TABLE users( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(100), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); 上述代码首先创建了一个名为`mydatabase`的数据库,然后切换到这个数据库,并创建了一个名为`users`的表,其中包含四个字段:`id`(自增主键)、`username`(非空字符串)、`email`(字符串)和`created_at`(默认值为当前时间的时间戳)
2.修改表结构 sql ALTER TABLE users ADD COLUMN age INT; ALTER TABLE users MODIFY COLUMN email VARCHAR(150); ALTER TABLE users DROP COLUMN age; 这些语句分别用于向`users`表中添加一个新的`age`列、修改`email`列的长度为150字符以及删除`age`列
3.删除数据库和表 sql DROP TABLE users; DROP DATABASE mydatabase; 上述命令分别用于删除`users`表和`mydatabase`数据库
注意,这些操作是不可逆的,使用前需谨慎
三、数据操作语言(DML) DML(Data Manipulation Language)用于对数据库中的数据进行增删改查操作
1.插入数据 sql INSERT INTO users(username, email) VALUES(john_doe, john@example.com); INSERT INTO users(username, email, age) VALUES(jane_smith, jane@example.com,30); 这些语句向`users`表中插入了两行数据
2.查询数据 sql SELECTFROM users; SELECT username, email FROM users WHERE age >25; 第一个查询返回`users`表中的所有数据,而第二个查询仅返回年龄大于25岁的用户的用户名和电子邮件
3.更新数据 sql UPDATE users SET email = new_email@example.com WHERE username = john_doe; 这条语句将用户名为`john_doe`的用户的电子邮件地址更新为`new_email@example.com`
4.删除数据 sql DELETE FROM users WHERE username = jane_smith; 这条语句删除了用户名为`jane_smith`的用户记录
四、数据查询语言(DQL) 虽然DQL(Data Query Language)通常被视为DML的一部分,但鉴于其重要性,这里单独讨论
DQL主要通过`SELECT`语句实现复杂的数据检索和分析
1.基本查询 除了之前提到的简单查询,`SELECT`语句还支持排序、分组和过滤等功能
sql SELECT username, email FROM users ORDER BY created_at DESC; 这条语句按`created_at`字段降序排列返回用户列表
2.聚合函数 sql SELECT COUNT() FROM users; SELECT AVG(age) FROM users WHERE age IS NOT NULL; 第一个查询返回`users`表中的记录总数,第二个查询计算非空年龄的平均值
3.分组和过滤分组结果 sql SELECT age, COUNT() FROM users GROUP BY age HAVING COUNT() > 1; 这条语句按年龄分组,并返回出现次数大于1的年龄及其出现次数
五、数据控制语言(DCL) DCL(Data Control Language)用于控制数据库的访问权限
1.授予权限 sql GRANT SELECT, INSERT ON mydatabase- . TO username@localhost IDENTIFIED BY password; 这条语句授予用户`username`在`localhost`上对`mydatabase`数据库进行`SELECT`和`INSERT`操作的权限,并设置密码
2.撤销权限 sql REVOKE SELECT ON mydatabase- . FROM username@localhost; 这条语句撤销用户`username`在`localhost`上对`mydatabase`数据库的`SELECT`权限
六、事务处理 事务是数据库操作的一个逻辑单元,它包含了一系列对数据库的操作,这些操作要么全部成功,要么全部失败
My