数据库上手避坑之--探索数据库
一、数据库的登陆:当使用mysql -usqlxxl -p登陆数据库的那一刻,到数据库操作提示符MariaDB [(none)]>的出现,就是数据库的登陆过程
mysql -usqlxxl -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 3 Server version: 10.5.8-MariaDB Arch Linux Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
二、基本概念:数据库主要靠表来存储数据。表的主要元素有属性,一个属性为一列,所有的属性构成列的集合。每一行数据的每一个列都有数据。反映着用户查看数据的方式。
数据库:存储数据表的库为数据库。表必须在数据库中。
数据库的操作主要有应用、查看、创建和删除。
MariaDB [(none)]> show databases; //显示数据库 +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | student_info | +--------------------+ 4 rows in set (0.036 sec) MariaDB [(none)]> create database sample; //创建数据库 Query OK, 1 row affected (0.000 sec) MariaDB [(none)]> show databases; //查看数据库 +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sample | | student_info | +--------------------+ 5 rows in set (0.001 sec) MariaDB [(none)]> drop database sample; //删除数据库 Query OK, 0 rows affected (0.039 sec) MariaDB [(none)]> show databases; //查看数据库 +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | student_info | +--------------------+ 4 rows in set (0.001 sec) MariaDB [(none)]> use student_info; //应用数据库 Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed
三、数据表的基本操作
MariaDB [student_info]> show tables; //查看数据库中的表们 +------------------------+ | Tables_in_student_info | +------------------------+ | stu_info | +------------------------+ 1 row in set (0.001 sec) MariaDB [student_info]> create table books(book_id INT, title TEXT, status INT); //创建表books Query OK, 0 rows affected (0.186 sec) MariaDB [student_info]> show tables; //查看数据库中的表们 +------------------------+ | Tables_in_student_info | +------------------------+ | books | | stu_info | +------------------------+ 2 rows in set (0.001 sec) MariaDB [student_info]> describe books; //查看表的详细结构 +---------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+---------+------+-----+---------+-------+ | book_id | int(11) | YES | | NULL | | | title | text | YES | | NULL | | | status | int(11) | YES | | NULL | | +---------+---------+------+-----+---------+-------+ 3 rows in set (0.001 sec) MariaDB [student_info]> insert into books values(100, 'Heart of Darkness', 0); //插入一条数据 Query OK, 1 row affected (0.066 sec) MariaDB [student_info]> insert into books values(101, 'The Catcher of the Rye', 1); //插入第二条数据 Query OK, 1 row affected (0.033 sec) MariaDB [student_info]> insert into books values(102, 'My Antonia', 0); //插入第三条数据 Query OK, 1 row affected (0.025 sec) MariaDB [student_info]> insert into books values(103, 'Uncle\'s Home', 2); //插入第三条数据 Query OK, 1 row affected (0.033 sec) MariaDB [student_info]> select * from books; //查询表的内容 +---------+------------------------+--------+ | book_id | title | status | +---------+------------------------+--------+ | 100 | Heart of Darkness | 0 | | 101 | The Catcher of the Rye | 1 | | 102 | My Antonia | 0 | | 103 | Uncle's Home | 2 | +---------+------------------------+--------+ 4 rows in set (0.000 sec) MariaDB [student_info]> select * from books where status = 0; //条件查询表的内容 +---------+-------------------+--------+ | book_id | title | status | +---------+-------------------+--------+ | 100 | Heart of Darkness | 0 | | 102 | My Antonia | 0 | +---------+-------------------+--------+ 2 rows in set (0.025 sec) MariaDB [student_info]> select * from books where status = 0\G; //查询表,改变显示方式 *************************** 1. row *************************** book_id: 100 title: Heart of Darkness status: 0 *************************** 2. row *************************** book_id: 102 title: My Antonia status: 0 2 rows in set (0.001 sec) ERROR: No query specified MariaDB [student_info]> update books set status = 1 where book_id = 102; //更新表信息 Query OK, 1 row affected (0.029 sec) Rows matched: 1 Changed: 1 Warnings: 0 MariaDB [student_info]> select * from books where status = 1; //条件查询表的内容 +---------+------------------------+--------+ | book_id | title | status | +---------+------------------------+--------+ | 101 | The Catcher of the Rye | 1 | | 102 | My Antonia | 1 | +---------+------------------------+--------+ 2 rows in set (0.001 sec) MariaDB [student_info]> update books set status = 0 where book_id = 101; //更新表信息 Query OK, 1 row affected (0.022 sec) Rows matched: 1 Changed: 1 Warnings: 0 MariaDB [student_info]> select * from books where status = 0; //条件查询表的内容 +---------+------------------------+--------+ | book_id | title | status | +---------+------------------------+--------+ | 100 | Heart of Darkness | 0 | | 101 | The Catcher of the Rye | 0 | +---------+------------------------+--------+ 2 rows in set (0.000 sec) MariaDB [student_info]> update books set title = 'The Catcher in the Rye', status = 1 where book_id = 101; //更新表信息 Query OK, 1 row affected (0.030 sec) Rows matched: 1 Changed: 1 Warnings: 0
四、表的高级操作
MariaDB [student_info]> create table status_names(status_id INT, status_name char(8)); //创建表 Query OK, 0 rows affected (0.182 sec) MariaDB [student_info]> insert into status_names values(0, 'inactive'), (1, 'active'), (2, 'inactive'); //向表中插入数据 Query OK, 3 rows affected (0.038 sec) Records: 3 Duplicates: 0 Warnings: 0 MariaDB [student_info]> select * from status_names; //查询表内容 +-----------+-------------+ | status_id | status_name | +-----------+-------------+ | 0 | inactive | | 1 | active | | 2 | inactive | +-----------+-------------+ 3 rows in set (0.000 sec) MariaDB [student_info]> select book_id, title, status_name from books join status_names where status = status_id; //两个表的链接操作 +---------+------------------------+-------------+ | book_id | title | status_name | +---------+------------------------+-------------+ | 100 | Heart of Darkness | inactive | | 101 | The Catcher in the Rye | active | | 102 | My Antonia | active | | 103 | Uncle's Home | inactive | +---------+------------------------+-------------+ 4 rows in set (0.001 sec)
说明:
1、select book_id, title, status_name from books //从books表中选择特定的列们
2、join status_names //指定第二个表
3、where status = status_id //指定查询条件
SELECT - 从数据库表中获取数据
UPDATE - 更新数据库表中的数据
DELETE - 从数据库表中删除数据
INSERT INTO - 向数据库表中插入数据
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2017-11-25 《Linux命令行与shell脚本编程大全 第3版》创建实用的脚本---11
2017-11-25 《Linux命令行与shell脚本编程大全 第3版》创建实用的脚本---10
2017-11-25 《Linux命令行与shell脚本编程大全 第3版》创建实用的脚本---07
2017-11-25 《Linux命令行与shell脚本编程大全 第3版》创建实用的脚本---06
2017-11-25 《Linux命令行与shell脚本编程大全 第3版》创建实用的脚本---05
2017-11-25 《Linux命令行与shell脚本编程大全 第3版》创建实用的脚本---03
2017-11-25 《Linux命令行与shell脚本编程大全 第3版》创建实用的脚本---04