博客
关于我
MySQL数据库必会的增删查改操作(CRUD)
阅读量:790 次
发布时间:2023-02-12

本文共 4093 字,大约阅读时间需要 13 分钟。

MySQL数据库基础操作

1. 数据表的基本操作

1.1 新建表

在使用MySQL之前,首先需要选择一个数据库。数据库的命名规则通常是唯一的,建议使用有意义的命名,如testmydb等。

创建表的语法如下:

create table 表名(列定义列表);

列定义列表的格式为:

列名 数据类型

例如,创建一个学生表:

mysql> create table student(    -> id int,    -> name varchar(50),    -> score double(3,1)    -> );Query OK, 0 rows affected (0.03 sec)

1.2 查看表

要查看数据库中已有的表,可以使用以下命令:

show tables;

例如:

mysql> show tables;+----------------+| Tables_in_test |+----------------+| student        || test_1         |+----------------+2 rows in set (0.00 sec)

1.3 查看表结构

要查看某个表的字段定义,可以使用desc命令:

desc 表名;

例如,查看学生表的结构:

mysql> desc student;+-------+-------------+------+-----+---------+-------+| Field | Type        | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id    | int(11)     | YES  |     | NULL    |       || name  | varchar(50)  | YES  |     | NULL    |       || score | double(3,1)  | YES  |     | NULL    |       |+-------+-------------+------+-----+---------+-------+3 rows in set (0.00 sec)

1.4 删除表

删除表需要谨慎操作,语法如下:

drop table 表名;

例如,删除一个表:

mysql> drop table test_1;Query OK, 0 rows affected (0.01 sec)

2. 数据表的增删查改(CRUD)

2.1 插入数据

插入一行数据的语法如下:

insert into 表名 values (值1, 值2, ...);

值列表需要与表中列的定义一一对应。

例如,插入学生数据:

mysql> insert into student values (1, "喜羊羊", 98);Query OK, 1 row affected (0.01 sec)

也可以指定插入的列:

insert into 表名 (列名1, 列名2, ...) values (值1, 值2, ...);

例如,插入学生数据:

mysql> insert into student (id, name) values (2, "懒羊羊");Query OK, 1 row affected (0.00 sec)

可以一次插入多行数据:

insert into 表名 values (值组1), (值组2), ...;

例如,插入多行学生数据:

mysql> insert into student values (3,"美羊羊", 92), (4, "沸羊羊", 70), (5, "暖羊羊", 88);Query OK, 3 rows affected (0.00 sec)

2.2 查询数据

2.2.1 查询整表

查询表中所有数据的语法如下:

select * from 表名;

例如,查询学生表和时间表:

mysql> select * from student;+------+-----------+-------+| id   | name      | score |+------+-----------+-------+|    1 | 喜羊羊    |  98.0 ||    2 | 懒羊羊    |  NULL ||    3 | 美羊羊    |  92.0 ||    4 | 沸羊羊    |  70.0 ||    5 | 暖羊羊    |  88.0 |+------+-----------+-------+5 rows in set (0.00 sec)

2.2.2 查询指定列

查询特定列的数据:

select 列名1, 列名2, ... from 表名;

例如,查询学生表的姓名和成绩:

mysql> select name, score from student;+-----------+-------+| name      | score |+-----------+-------+| 喜羊羊    |  98.0 || 懒羊羊    |  NULL || 美羊羊    |  92.0 || 沸羊羊    |  70.0 || 暖羊羊    |  88.0 |+-----------+-------+5 rows in set (0.00 sec)

2.2.3 查询表达式

对数据进行计算或转换:

select 列名1, (列名1 + 列名2) as 别名 from 表名;

例如,计算每位学生的平均成绩:

mysql> select name, (chinese + math + english + computer) as total,     -> (chinese + math + english + computer) / 4 as average from exam_score;+-----------+-------+----------+| name      | total | average  |+-----------+-------+----------+| 美羊羊    | 370.0 | 92.50000 || 懒羊羊    | 181.5 | 45.37500 || 喜羊羊    | 378.0 | 94.50000 || 沸羊羊    | 305.5 | 76.37500 || 暖羊羊    | 355.0 | 88.75000 || 灰太狼    | 234.5 | 58.62500 || 小灰灰    | 329.0 | 82.25000 || 黑大帅    |  50.0 | 12.50000 |+-----------+-------+----------+8 rows in set (0.00 sec)

2.2.4 去重查询

去重查询的语法如下:

select distinct 列名 from 表名;

例如,去重查询英语成绩:

mysql> select distinct english from exam_score;+---------+| english |+---------+|    98.0 ||    24.0 ||    88.0 ||    74.5 ||    12.0 ||    78.0 ||     9.0 |+---------+7 rows in set (0.00 sec)

2.2.5 分页查询

分页查询可以使用limitoffset来实现:

select 列名, 列名, ... from 表名 limit 数量 offset 起始位置;

例如,获取每页3条成绩:

mysql> select * from exam_score limit 3;+------+-----------+---------+------+---------+----------+| id   | name      | chinese | math | english | computer |+------+-----------+---------+------+---------+----------+|    1 | 美羊羊    |    99.5 | 90.5 |    98.0 |     82.0 ||    2 | 懒羊羊    |    58.5 | 32.5 |    24.0 |     66.5 ||    3 | 喜羊羊    |    92.0 | 98.0 |    88.0 |    100.0 |+------+-----------+---------+------+---------+----------+3 rows in set (0.00 sec)

2.3 修改数据

修改数据的语法如下:

update 表名 set 列名 = 值 where 条件;

例如,修改喜羊羊的英语成绩:

mysql> update exam_score set english = 92 where name = "喜羊羊";Query OK, 1 row affected (0.01 sec)

2.4 删除数据

删除数据的语法如下:

delete from 表名 where 条件;

例如,删除黑大帅的成绩:

mysql> delete from exam_score where name = "黑大帅";Query OK, 1 row affected (0.00 sec)

结语

数据库操作是日常开发中不可或缺的一部分,掌握了CRUD操作后,可以更高效地管理和维护数据。通过不断练习和项目实践,相信大家会越来越熟练。

转载地址:http://tcdfk.baihongyu.com/

你可能感兴趣的文章