MySQL 基本语法
一、数据库操作
1. 创建数据库
语法格式:
CREATE DATABASE [IF NOT EXISTS] database_name;
创建一个名为 test_db 的数据库:
CREATE DATABASE IF NOT EXISTS test_db;
IF NOT EXISTS 是可选的,用于避免数据库已存在时出现错误。
2. 查看数据库列表
语法格式:
SHOW DATABASES;
执行后会列出当前 MySQL 服务器中所有的数据库名称。
3. 选择要使用的数据库
语法格式:
USE database_name;
使用 test_db 数据库:
USE test_db;
4. 删除数据库
语法格式:
DROP DATABASE [IF EXISTS] database_name;
删除 test_db 数据库(谨慎操作):
DROP DATABASE IF EXISTS test_db;
二、数据表操作
1. 创建数据表
语法格式:
CREATE TABLE table_name (
column1_name data_type constraints,
column2_name data_type constraints,
...
PRIMARY KEY (column_name)
);
创建 students 表:
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT,
gender ENUM('男', '女')
);
2. 查看数据表结构
语法格式:
DESCRIBE table_name;
或缩写形式:
DESC table_name;
查看 students 表结构:
DESC students;
3. 修改数据表
添加列:
ALTER TABLE table_name
ADD COLUMN new_column_name data_type constraints;
给 students 表添加 address 字段:
ALTER TABLE students
ADD COLUMN address VARCHAR(100);
修改列:
ALTER TABLE table_name
MODIFY COLUMN column_name new_data_type new_constraints;
修改 students 表的 age 字段类型:
ALTER TABLE students
MODIFY COLUMN age SMALLINT;
删除列:
ALTER TABLE table_name
DROP COLUMN column_name;
删除 students 表的 address 字段:
ALTER TABLE students
DROP COLUMN address;
4. 删除数据表
语法格式:
DROP TABLE [IF EXISTS] table_name;
删除 students 表:
DROP TABLE IF EXISTS students;
三、数据操作(增删改查)
1. 插入数据(INSERT)
语法格式:
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
向 students 表插入一条记录:
INSERT INTO students (name, age, gender)
VALUES ('张三', 20, '男');
插入多条记录:
INSERT INTO table_name (column1, column2, ...)
VALUES
(value1_1, value1_2, ...),
(value2_1, value2_2, ...),
...;
2. 查询数据(SELECT)
基本语法格式:
SELECT column1, column2, ...
FROM table_name
[WHERE condition]
[GROUP BY column_name]
[HAVING condition]
[ORDER BY column_name [ASC|DESC]]
[LIMIT offset, count];
示例:
查询所有学生信息
SELECT * FROM students;
查询年龄大于 18 岁的学生姓名和年龄
SELECT name, age
FROM students
WHERE age > 18;
按年龄分组并统计人数
SELECT age, COUNT(*) AS num_students
FROM students
GROUP BY age;
筛选人数大于 2 的年龄组
SELECT age, COUNT(*) AS num_students
FROM students
GROUP BY age
HAVING num_students > 2;
按年龄升序排列
SELECT *
FROM students
ORDER BY age ASC;
查询前 5 条记录
SELECT *
FROM students
LIMIT 5;
3. 更新数据(UPDATE)
语法格式:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
更新张三的年龄为 21 岁:
UPDATE students
SET age = 21
WHERE name = '张三';
4. 删除数据(DELETE)
语法格式:
DELETE FROM table_name
WHERE condition;
删除年龄小于 18 岁的学生记录:
DELETE FROM students
WHERE age < 18;