首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MYSQL从入门到入土(mysql基础概览)

MYSQL从入门到入土(mysql基础概览)

作者头像
北极的代码
发布2026-04-22 18:52:01
发布2026-04-22 18:52:01
1170
举报

前言:我们在javaWeb的学习中已经接触到了数据库的相关知识和操作,这篇对重点知识进行汇总,为后面的数据库进阶打好基础。

SQL分类

DDL        Data Definition Language          数据定义语言,用来定义数据库对象(数据库,表,字段) DML        Data Manipulation Language    数据操作语言,用来对数据库表中的数据进行增删改 DQL        Data Query Language               数据查询语言,用来查询数据库中表的记录 DCL        Data Control Language     数据控制语言,用来创建数据库用户、控制数据库的访问权限

DDL-数据库操作

查询所有数据库:SHOW DATABASES; 查询当前数据库:SELECT DATABASE(); 创建:CREATE DATABASE [IF NOT EXISTS] 数据库名[DEFAULT CHARSET 字符集][COLLATE 排序规则]; 删除:DROP DATABASE[IF EXISTS]数据库名; 使用:USE 数据库名

DDL-表操作-查询

查询当前数据库所有表:SHOW TABLES; 查询表结构:DESC表名; 查询指定表的建表语句:SHOW CREATE TABLE 表名;

DDL-表操作-创建
DDL-表操作-修改

添加字段:       ALTERTABLE表名ADD 字段名 类型(长度)[COMMENT注释][约束]; 修改数据类型:ALTERTABLE表名MODIFY 字段名 新数据类型(长度); 修改字段名和字段类型:ALTERTABLE表名CHANGE I旧字段名 新字段名 类型(长度)[COMMENT注释][约束];

删除字段 ALTERTABLE表名 DROP 字段名;

修改表名 ALTERTABLE表名 RENAME TO 新表名;

删除表:DROP TABLE[IF EXISTS]表名; 删除指定表,并重新创建该表:TRUNCATE TABLE 表名;(用于把数据清空)

DML

添加数据:INSERT INTO表名(字段1,字段2,...)VALUES(值1,值2,..)[,(值1,值2,..)...]; 修改数据:UPDATE表名 SET 字段1=值1,字段2=值2[WHERE条件]; 删除数据:DELETE FROM 表岛[WHERE 条件];

DQL

编写顺序:

SELECT [列名|表达式|*] FROM [表名] [WHERE 条件] [GROUP BY 分组列] [HAVING 分组后条件] [ORDER BY 排序列 [ASC|DESC]] [LIMIT/OFFSET 子句]; -- 或其他数据库的等效语法(如 TOP、FETCH NEXT)

具体实例:
简单查询
代码语言:javascript
复制
-- 查询所有员工的所有信息
SELECT * FROM employees;

-- 查询特定列
SELECT employee_id, first_name, last_name, salary 
FROM employees;

-- 使用别名
SELECT 
    employee_id AS "员工编号",
    first_name AS "名",
    last_name AS "姓",
    salary * 12 AS "年薪"
FROM employees;
条件过滤:
代码语言:javascript
复制
-- 基本条件
SELECT * FROM employees 
WHERE salary > 5000;

-- 多条件组合
SELECT * FROM employees 
WHERE department_id = 10 
  AND salary > 4000 
  AND hire_date > '2020-01-01';

-- 使用 BETWEEN
SELECT * FROM employees 
WHERE salary BETWEEN 4000 AND 8000;

-- 使用 IN
SELECT * FROM employees 
WHERE department_id IN (10, 20, 30);

-- 模糊查询 (LIKE)
SELECT * FROM employees 
WHERE first_name LIKE 'J%';  -- J开头
SELECT * FROM employees 
WHERE email LIKE '%@gmail.com';  -- gmail邮箱
SELECT * FROM employees 
WHERE phone LIKE '13_%';  -- 13开头,11位手机号

-- NULL 值处理
SELECT * FROM employees 
WHERE commission_pct IS NULL;
SELECT * FROM employees 
WHERE commission_pct IS NOT NULL;
排序
代码语言:javascript
复制
-- 单列排序
SELECT * FROM employees 
ORDER BY hire_date DESC;  -- 按入职日期降序

-- 多列排序
SELECT * FROM employees 
ORDER BY department_id ASC, salary DESC;  -- 先按部门升序,再按工资降序

-- 结合条件
SELECT employee_id, first_name, salary 
FROM employees 
WHERE salary > 3000 
ORDER BY salary DESC 
LIMIT 10;  -- 工资最高的10名员工
DQL的执行顺序:(与编写顺序不一样!)

函数:

字符串函数

MySQL中内置了很多字符串函数,常用的几个如下:

CONCAT(S1,S2,..Sn):           字符串拼接,将S1,S2,...Sn拼接成一个字符串 LOWER(str):                          将字符串str全部转为小写 UPPER(str):                           将字符串str全部转为大写 LPAD(str,n,pad):                     左填充,用字符串pad对str的左边进行填充,达到n个字符串长度 RPAD(str,n,pad):                    右填充,用字符串pad对str的右边进行填充,达到n个字符串长度 TRIM(str):                               去掉字符串头部和尾部的空格  SUBSTRING(str,start,len):      返回从字符串str从stat位置起的len个长度的字符串

数值函数

CEIL(x):              向上取整 FLOOR(x ):           向下取整 MOD(x,y):             返回x/y的模 RANDO:                返回0~1内的随机数 ROUND(xY):         求参数x的四舍五入的值,保留y位小数

日期函数

常见的日期函数如下: CURDATE():                返回当前日期 CURTIME( ):              返回当前日期和时间 YEAR(date):                   获取指定date的年份 MONTH(date):                获取指定date的月份 DAY(date):                       获取指定date的日期 DATE_ ADD(date, INTERVAL expr type): 返回一个日期/时间值加上一个时间间隔expr后的时间 DATEDIFF(datel,date2)  :返回起始时间date1和结束时间date2之间的天数

流程函数

流程函数也是很常用的一类函数,可以在SQL语句中实现条件筛选,从而提高语句的效率。 函数 IF(value,t,f)                          如果value为true,则返回t,否则返回f IFNULL(value, value2)         如果valuel不为空,返回valuel,否则返回value2

CASE WHEN [vall ] THEN [res1] ... ELSE[ default] END                                                                  如果vall为true,返回res1,...否则返回default默认值

CASE[expr] WHEN [vall] THEN [resl] ...ELSE[default] END                                                           如果expr的值等于val1,返回res1,...否则返回default默认值

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-02-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SQL分类
    • DDL-数据库操作
      • DDL-表操作-查询
      • DDL-表操作-创建
      • DDL-表操作-修改
    • DML
    • DQL
      • 具体实例:
      • DQL的执行顺序:(与编写顺序不一样!)
  • 函数:
    • 字符串函数
    • 数值函数
    • 日期函数
    • 流程函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档