本文共 4093 字,大约阅读时间需要 13 分钟。
在使用MySQL之前,首先需要选择一个数据库。数据库的命名规则通常是唯一的,建议使用有意义的命名,如test
、mydb
等。
创建表的语法如下:
create table 表名(列定义列表);
列定义列表的格式为:
列名 数据类型
例如,创建一个学生表:
mysql> create table student( -> id int, -> name varchar(50), -> score double(3,1) -> );Query OK, 0 rows affected (0.03 sec)
要查看数据库中已有的表,可以使用以下命令:
show tables;
例如:
mysql> show tables;+----------------+| Tables_in_test |+----------------+| student || test_1 |+----------------+2 rows in set (0.00 sec)
要查看某个表的字段定义,可以使用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)
删除表需要谨慎操作,语法如下:
drop table 表名;
例如,删除一个表:
mysql> drop table test_1;Query OK, 0 rows affected (0.01 sec)
插入一行数据的语法如下:
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)
查询表中所有数据的语法如下:
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)
查询特定列的数据:
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)
对数据进行计算或转换:
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)
去重查询的语法如下:
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)
分页查询可以使用limit
和offset
来实现:
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)
修改数据的语法如下:
update 表名 set 列名 = 值 where 条件;
例如,修改喜羊羊的英语成绩:
mysql> update exam_score set english = 92 where name = "喜羊羊";Query OK, 1 row affected (0.01 sec)
删除数据的语法如下:
delete from 表名 where 条件;
例如,删除黑大帅的成绩:
mysql> delete from exam_score where name = "黑大帅";Query OK, 1 row affected (0.00 sec)
数据库操作是日常开发中不可或缺的一部分,掌握了CRUD操作后,可以更高效地管理和维护数据。通过不断练习和项目实践,相信大家会越来越熟练。
转载地址:http://tcdfk.baihongyu.com/