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

MySQL数据库常用命令

MySQL数据库常用命令

一、操作数据库命令

  1. 创建数据库

    create database [if not exists] school;
    
  2. 删除数据库

    drop database [if not exists] school;
    
  3. 使用数据库

    use school;
    
  4. 查看数据库

    show databases;
    

注:

  1. 如果数据库名,表名或者字段名是特殊字符,需要带``。
  2. sql关键字不区分大小写。
  3. 所有符号都用英文。

二、创建数据库表

CREATE TABLE student (
`id` INT(5) not null auto_increment COMMENT 'ID',    --auto_increment指的是自增
`name` VARCHAR(20) COMMENT '名字',
`age` INT(5) NOT NULL COMMENT '年龄',
PRIMARY KEY(`id`)   --主键id
)ENGINE=INNODB DEFAULT CHARSET =utf8;

三、修改数据库

  1. 修改表名

    alter table `class` rename as `student`;
    --结构:alter table `新表名` rename as `旧表名`;
    
  2. 增加表的字段

    alter table `class` add sex varchar(2);
    --结构:alter table `表名` add 字段名 属性
    
  3. 字段重命名

    alter table `class` change age age1 int(3);
    --结构:alter table `表名` change 旧字段名 新字段名 新的字段属性
    
  4. 修改约束,将class表中的age字段属性改为varchar(20)

    alter table `class` modify age1 varchar(20);
    --结构:alter table `表名` modify 字段名 新的列属性
    
  5. 删除表的字段

    alter table `calss` drop age1;
    --结构:alter table `表名` drop 要删除的字段
    
  6. 删除表

    drop table [if exists] `class`;
    --结构:drop table `要删除的表名`
    

四、DML语言

1、添加

insert into `class` (`id`,`name`,`age`,`sex`) 
values(1,'sbc',21,'女'),(2,'shn',23,'男');           --id设置的自增也可以不写
--结构:insert into `表名`(字段1,字段2,字段3,字段4) values (值1),(值2),(值3),(值4)

注意:字段与后面的值要一一对应

2、修改

update `class` set `name`='whn',age=18 where id=2;
--结构:update `表名` set 字段名=值 ... where 条件

3、删除(delete命令 truncate命令)

delete from `class`;              --删除所有数据
delete from `class` where id=1;   --删除指定数据truncate `class`;                 --清空表

五、DQL查询

1、完整语法:

SELECT-- 1. 指定要查询的列(字段)[DISTINCT] column1, column2, ..., 				--DISTINCT去除重复行(作用于所有 SELECT 列)-- 可使用表达式、函数、别名等expression AS alias_name,						--AS列或表的别名(可省略 AS,但建议保留提高可读性)COUNT(*) AS totalFROM-- 2. 指定数据来源(表、视图、子查询等)table1 [AS t1]-- 多表连接(JOIN)[INNER | LEFT | RIGHT | FULL OUTER] JOIN table2 [AS t2] 	 ON join_conditionWHERE															-- 3. 过滤行(在分组前筛选)-- 不能使用聚合函数(如 COUNT, SUM)condition1 AND/OR condition2GROUP BY-- 4. 按指定列分组(用于聚合函数)column1, column2-- 可配合 ROLLUP 生成汇总行(MySQL 支持)[WITH ROLLUP]HAVING-- 5. 过滤分组后的结果(可使用聚合函数)aggregate_conditionORDER BY-- 6. 对结果排序column1 [ASC | DESC],column2 [ASC | DESC]LIMIT														-- 7. 限制返回的行数(MySQL 特有,分页常用)offset, row_count-- 或简写:LIMIT row_count(从第0行开始)-- 或:LIMIT row_count OFFSET offset
;

各子句执行顺序(逻辑顺序,非书写顺序)

实际 SQL 引擎按以下逻辑处理(非常重要!):

  1. FROM → 确定数据源
  2. WHERE → 过滤原始行
  3. GROUP BY → 分组
  4. HAVING → 过滤分组
  5. SELECT → 计算字段、去重(DISTINCT)
  6. ORDER BY → 排序
  7. LIMIT → 截取结果

案例:

-- 查询每个部门中年龄大于25岁的员工人数,
-- 只显示人数 >= 2 的部门,
-- 按人数降序排列,取前3个部门SELECTdepartment AS 部门,COUNT(*) AS 员工人数,AVG(age) AS 平均年龄
FROMemployees eINNER JOIN departments d ON e.dept_id = d.id
WHEREe.age > 25
GROUP BYdepartment
HAVINGCOUNT(*) >= 2
ORDER BY员工人数 DESC
LIMIT 0, 3;
http://www.jsqmd.com/news/29212/

相关文章:

  • List中sublist()用法
  • JavaScript中的闭包:原理与实战
  • Zabbix执行Ping脚本报错,Global script execution被禁用
  • windows---无法删除文件解决办法
  • 2025 年 11 月氨糖厂家最新推荐,聚焦资质、案例、售后的五家机构深度解读
  • 基于嵌入式无人机UAV通信系统的实时最优资源分配算法matlab仿真
  • 2025年11月氨糖厂家最新推荐,聚焦跨平台能力与售后体系的实用指南
  • 2025 年 11 月氨糖厂家最新推荐,高性能与可靠性兼具的优质品牌
  • bash 终端中无法正常使用python
  • MSYS静态编译dav1d最新版本步骤
  • rust学习(四)变量与数据类型
  • 构建现代Web应用:使用React框架打造单页面应用
  • 基于有限体积法(FVM)的MATLAB流体力学求解程序
  • 证明:割空间以及环空间的直和为边空间当且仅当图的生成树个数为偶数
  • langgraph-reflexion
  • WC 2026 备战记录
  • 面向院区病房的空间智能体新范式:下一代病房框架研究(上)
  • JSR 303 常用注解及示例
  • 实用指南:用 Go 并发优化用户中心 API:goroutine 和 errgroup 的实战魔法
  • MySQL02 函数
  • 夸克网盘免费领取1TB空间的方法
  • python:pymupdf的save参数
  • vmware fusion:windows会自动挂起
  • 前端三剑客——javascript函数作用域与内置函数
  • 完全背包内外循环是否能对调?
  • 浅谈ASP.NET Core中间件实现分布式 Session
  • .NET周刊【10月第3期 2025-10-19】
  • 2025 年 11 月快速卷帘门厂家最新推荐,聚焦高端定制需求与全案交付能力!
  • 【大模型应用开发】之调用大模型
  • 11/2