本节介绍了MySQL的一些基本操作,以及增、删、改与查的C++示例程序。
MySQL基本操作
1. 查询数据库
-- 查询所有数据库 |
2. 修改数据库
3. 创建数据库和表
创建数据库
CREATE DATABASE school; |
CREATE DATABASE:用于创建新的数据库。
school:数据库名称。
使用数据库
USE school; |
USE:选择数据库。
创建表
CREATE TABLE 语句
CREATE TABLE 语句用于在数据库中创建一个新表。
CREATE TABLE student ( |
语法详细解释:
- CREATE TABLE student:
CREATE TABLE是创建表的命令。student是表的名称。
- 列定义:
- 每个字段用逗号分隔,并且定义了字段名称、数据类型和约束条件。
- id INT PRIMARY KEY AUTO_INCREMENT:
id是列的名称。INT指定数据类型为整数。PRIMARY KEY将这列设置为主键,保证列中的值唯一且不为空。AUTO_INCREMENT自动生成唯一的整数值,每次插入新行时递增。
- sage INT:
sage是列的名称。INT指定数据类型为整数。
- sname VARCHAR(32) NOT NULL:
sname是列的名称。VARCHAR(32)指定数据类型为可变长度字符串,最大长度为32个字符。NOT NULL表示此列不能为空。
- gender VARCHAR(10) NOT NULL:
gender是列的名称。VARCHAR(10)指定数据类型为可变长度字符串,最大长度为10个字符。NOT NULL表示此列不能为空。
- score DOUBLE NOT NULL:
score是列的名称。DOUBLE指定数据类型为双精度浮点数。NOT NULL表示此列不能为空。
- birthday DATE:
birthday是列的名称。DATE指定数据类型为日期。
约束条件的详细说明
- PRIMARY KEY:
- 主键约束,用于唯一标识表中的每一行数据。一个表只能有一个主键。
- AUTO_INCREMENT:
- 仅用于整数类型的列。每插入一条新记录时,自动生成一个唯一的数值,通常从1开始递增。
- NOT NULL:
- 此约束条件表示该列不允许存储NULL值,即该字段必须有值。
数据类型的详细说明
- INT:
- 用于存储整数值,范围通常为-2147483648到2147483647。
- VARCHAR(n):
- 可变长度的字符串,
n指定了字符串的最大长度。例如,VARCHAR(32)表示最大长度为32个字符。
- 可变长度的字符串,
- DOUBLE:
- 双精度浮点数,用于存储浮点数,精度高于FLOAT类型。
- DATE:
- 用于存储日期值,格式为
YYYY-MM-DD。
- 用于存储日期值,格式为
这段SQL语句创建了一个名为student的表,表中的每一行代表一个学生,包含学生的ID、年龄、姓名、性别、成绩和生日信息。
4. 插入数据
INSERT INTO student (sage, sname, gender, score, birthday) VALUES (18, 'Alice', 'Female', 85.5, '2005-08-15'); |
INSERT INTO:插入数据的命令。
student:表名称。
(sage, sname, gender, score, birthday):要插入数据的列。
VALUES:指定要插入的值。
5. 查询数据
查询所有数据
SELECT * FROM student; |
SELECT *:选择所有列。FROM student:从student表中。
查询特定列
SELECT sname, score FROM student; |
SELECT sname, score:选择特定的列name和score。
查询带条件的数据
SELECT * FROM student WHERE gender = 'Female'; |
WHERE:指定查询条件。
排序查询结果
SELECT * FROM student ORDER BY score DESC; |
ORDER BY:排序查询结果。score DESC:按score列降序排列(ASC为升序)。
6. 更新数据
UPDATE student SET score = 90 WHERE sname = 'Alice'; |
UPDATE:更新命令。student:表名称。SET score = 90:要更新的列及其新值。WHERE:指定更新条件。
7. 删除数据
删除特定数据
DELETE FROM student WHERE sname = 'Alice'; |
DELETE FROM:删除命令。student:表名称。WHERE:指定删除条件。
删除所有数据
DELETE FROM student; |
注意:这将删除表中的所有数据,但表结构仍然存在。
8. 删除表和数据库
删除表
DROP TABLE student; |
DROP TABLE:删除表的命令。
删除数据库
DROP DATABASE school; |
DROP DATABASE:删除数据库的命令。
9. 使用索引
创建索引
CREATE INDEX idx_sname ON student (sname); |
CREATE INDEX:创建索引的命令。idx_sname:索引名称。ON student (sname):在student表的sname列上创建索引。
删除索引
DROP INDEX idx_sname ON student; |
DROP INDEX:删除索引的命令。
10. 使用视图
创建视图
CREATE VIEW top_students AS |
CREATE VIEW:创建视图的命令。top_students:视图名称。SELECT sname, score FROM student WHERE score > 90:定义视图的查询。
查询视图
SELECT * FROM top_students; |
- 查询视图就像查询表一样。
删除视图
DROP VIEW top_students; |
DROP VIEW:删除视图的命令。
示例程序
StudentManager.h:
|
StudentManager.cpp:
|
main.cpp:
|
- 本文作者: hzr
- 本文链接: https://HZR0709.github.io/2024/07/23/Mysql-usage/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!
