当前位置: 首页 > news >正文

SQL 基础语法

SQL 基础语法

在我们用 docker run --name ctf-mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:5.7 命令创建了 ctf-mysql 容器后,使用 start ctf-mysql 打开容器,用 docker exec -it ctf-mysql mysql -u root -p 进入容器。

常用的 docker 管理命令

# 查看正在运行的容器
docker ps# 查看所有容器(包括停止的)
docker ps -a# 停止容器
docker stop ctf-mysql# 启动已停止的容器
docker start ctf-mysql# 重启容器
docker restart ctf-mysql# 查看容器日志(排错时很有用)
docker logs ctf-mysql

数据库语法

show databases;: 查看现在有哪些数据库,初始是有四个数据库的。
create databases ctf_practice;: 创建名为 ctf_practice 的数据库。
use ctf_practice;: 使用数据库。
select database();: 查看当前使用的数据库。
drop database if exists ctf_practice;: 删除名为 ctf_practice 的数据库。

会出现像这样的场景。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.03 sec)mysql> create database ctf_practice;
Query OK, 1 row affected (0.03 sec)mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| ctf_practice       |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)mysql> use ctf_practice;
Database changed
mysql> select database();
+--------------+
| database()   |
+--------------+
| ctf_practice |
+--------------+
1 row in set (0.00 sec)mysql> create database temp;
Query OK, 1 row affected (0.00 sec)mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| ctf_practice       |
| mysql              |
| performance_schema |
| sys                |
| temp               |
+--------------------+
6 rows in set (0.00 sec)mysql> use temp;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| temp       |
+------------+
1 row in set (0.00 sec)mysql> drop database if exists ctf_practice;
Query OK, 0 rows affected (0.03 sec)mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| temp               |
+--------------------+
5 rows in set (0.00 sec)

重要命令

select: 从数据库中提取数据。
update: 更新数据库中的数据。
delete: 从数据库中删除数据。
insert into: 向数据库中插入新数据。
create database: 创建新数据库。
alter database: 修改数据库。
create table: 创建新数据库表。
alter table: 变更数据库表。
drop table: 删除表。
create index: 创建索引。
drop index: 删除索引。

select: 从数据库中查询数据

select column_name(s)
from table_name
where condition
order by column_name [ASC|DESC]
  • column_name(s): 要查询的列。
  • table_name: 要查询的表。
  • condition: 查询条件。
  • order by: 排序方式

insert into: 用于向数据库表中插入新数据

insert into table_name (column1, column2, ...)
values (value1, value2, ...)
  • table_name: 要插入数据的表。
  • column1, column2: ……要插入数据的列。
  • value1, value2: ……对应列的值。

update: 用于更新数据库表中的现有信息

update table_name
set column1 = value1, column2 = value2, ...
where condtiton
  • table_name: 要更新数据的表。
  • column1 = value1, column2 = value2, ...: 要更新的列及其新值。
  • condition: 更新条件。

delete: 用于从数据库表中

delete from table_name
where condition
  • table_name: 要删除数据的表。
  • condition: 删除条件。

create table: 用于创建新的数据表

create table table_name (column1 data_type constraint,column2 data_type constraint,...
)
  • table_name: 要创建的表名。
  • column1, column2: table_name 的列。
  • data_type: 列的数据类型。
  • constraint: 列的约束。

alter table: 用于修改现有数据库表的结构

alter table table_name
add column_name data_type
drop column column_name
  • table_name: 要修改的表。
  • column_name: 要添加/删除的列。
  • data_type: 列的数据类型。

create index: 用于创建索引,以加快查询速度

create index index_name
on table_name(column_name)
  • column_name: 要索引的列。

drop index: 用于删除索引

drop index index_name
on table_name
  • table_name: 索引所在的表。

其他

  • where: 用于指定筛选条件。
  • order by: 用于对结果集进行排序。
  • group by: 用于将结果集按一列或多列进行分组。
  • having: 用于对分组后的结果进行筛选。
  • join: 用于将两个或多个表的记录结合起来。
  • distinct: 用于返回唯一不同的值。
http://www.jsqmd.com/news/47078/

相关文章:

  • 实用指南:暖手宝方案开发,暖手宝MCU控制方案开发设计
  • NVM 与 单节点下PM2进程守护 安装配置以及使用教程完整指南(含 Node.js 环境搭建)
  • 北大六院的诊断
  • Pycharm远程连接服务器项目 - 实践
  • django项目前端模版文件,在pycahrm无法使用ctrl+alt+l格式化代码的解决办法
  • 北大六院后看又相
  • TPAMI 2025 | 从分离到融合:新一代3D场景技术建立双重能力提升!
  • 详细介绍:后端开发常用Linux命令
  • QT:Qt5.14向文档输出表格--编译异常信息
  • 《程序员修炼之道》阅读笔记5
  • java面向对象知识补充
  • 卷积神经网络的引入3 —— MLP 与 CNN 在更大数据集上的性能对比实验
  • 全网都在找的Nano Banana Pro API 来了!便宜稳定0.15/张
  • 通过DataReader获取sql查询的字段元数据信息
  • 2025.11.21 - A
  • 2025年新版ADB工具箱下载+驱动+ADB指令集+fastboot刷机ROOT程序
  • P7960 [NOIP2021] 报数__洛谷题解
  • 与括号序列相关的 DP 笔记
  • 【251121】CF2171 Div.3 vp 总结
  • OI 笑传 #32
  • PyOpenGL实现Bresenham算法
  • 【Linux】教你在 Linux 上搭建 Web 服务器,步骤清晰无门槛 - 详解
  • 【第7章 I/O编程与异常】\r\n 和 \n\r是一回事吗?
  • 深入解析:windows显示驱动开发-CCD api的摘要及方案(一)
  • nju实验七 状态机及键盘输入
  • Gephi如何支持MySQL数据的复杂查询
  • Mozilla CI日志中暴露微软x-apikey的安全事件分析
  • Gephi怎样优化MySQL数据的展示效果
  • Gephi对MySQL数据的导入导出有何支持
  • 智能制造(MOM)-详细设计 - 智慧园区