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

Mysql数据库详解

在cmd中选择数据库操作用 USE test_db;

相关概念

Sql是操作关系型数据库的编程语言

关系型数据库:建立在关系模型基础上,由多张相互连接的二维表组成的数据库

语法

sql语法分类

DDL-数据库操作

  • 创建:CREATE DATABASE db_name;
  • 创建完整的:CREATE
  • 删除:DROP DATABASE db_name;
  • 查询所有数据库:SHOW DATABASES ;
  • 查询一个:SELECT DATABASE db_name;

DDL-数据表操作 

  • 查询所有表:SHOW TABLES;
  • 查询表结构:DESC table_name;
  • 修改表:ALTER TABLE table_name ADD column_name datatype;
  • 修改列类型或名称
    ALTER TABLE table_name MODIFY column_name new_datatype;
    ALTER TABLE table_name CHANGE old_column_name new_column_name datatype;
  • 删除列
    ALTER TABLE table_name DROP COLUMN column_name; 
  • 重命名表
    RENAME TABLE old_table_name TO new_table_name;
  • 删除表:DROP TABLE table_name;

创建表:CREATE TABLE table_name (

        column1 datatype [constraints],
        column2 datatype [constraints],
);

DML-数据操作(增删改)

  • 给指定字段添加数据:INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
  • 给字段插入多行数据:INSERT INTO table_name (col1, col2) VALUES (value1_1, value1_2),(value2_1, value2_2);
  • 省略字段名添加(字段顺序必须匹配):INSERT INTO table_name VALUES (value1, value2, ...);
  • 更新数据:UPDATE table_name SET column1 = value1, column2 = value2 [WHERE condition];
  • 不加where限制条件就会修改全部行,                      加了限制年龄为36的修改为赵康
  • 删除数据:DELETE FROM table_name WHERE condition;不加where是指删了整张表的数据

DQL-数据查询语言

SELECT [DISTINCT] column1, column2, ...
FROM table_name
[WHERE condition]
[GROUP BY column]
[HAVING condition]
[ORDER BY column [ASC|DESC]]
[LIMIT offset, count];

  • 基本查询:查询相关列SELECT column1, column2, ...FROM table_name;
    查询全部:SELECT * FROM table_name;
    设置别名查询:SELECT column1 AS 别名1, column2 AS 别名2...FROM table_name;
    去掉重复记录查询:SELECT DISTINCT column1FROM table_name;
  • 条件查询(WHERE):条件包括
    操作符 / 关键字含义
    =等于
    !=<>不等于
    > / <大于 / 小于
    >= / <=大于等于 / 小于等于
    BETWEEN a AND b在区间内(含边界)
    IN (a, b, ...)值在集合中,满足其一即可
    NOT IN (...)值不在集合中
    LIKE模糊匹配
    NOT LIKE不匹配
    IS NULL是空值
    IS NOT NULL不是空值
    AND / OR逻辑与 / 或
    NOT逻辑非
    EXISTS / NOT EXISTS子查询结果存在 / 不存在
    REGEXP正则匹配(大小写敏感)
    LIKE BINARY严格区分大小写的模糊匹配
    通配符含义示例说明
    %匹配任意数量的任意字符(包括0个)'a%':以 a 开头的任意字符串
    _匹配任意一个字符'a_':a 开头且后面跟一个任意字符
    []匹配指定范围内的任一字符(仅某些版本支持)'[a-c]%':以 a、b 或 c 开头的
    [^]排除某些字符(仅某些版本支持)'[^a]%':不以 a 开头的


  • 聚合参数(count,max,min,avg,sum):SELECT 函数(column1) FROM table_name;
  • 分组查询(GROUP BY):
    SELECT column1, column2, ...FROM table_name [WHERE condition] GROUP BY 分组字段名 [HAVING 过滤条件];
  • 排序查询(ORDER BY)
  • 分页查询(LIMIT)

数据类型 

整型

类型字节范围(有符号)描述
TINYINT1-128 ~ 127小整数
SMALLINT2-32,768 ~ 32,767较小整数
INT / INTEGER4-2,147,483,648 ~ 2,147,483,647常用整数
BIGINT8±9.22×10¹⁸超大整数

浮点型

类型描述
FLOAT(M, D)单精度浮点数(约 7 位精度)
DOUBLE(M, D)双精度浮点数(约 16 位精度)
DECIMAL(M, D)精确小数(用于财务/货币)

字符串型 

类型描述最大长度
CHAR(n)固定长度字符串最多 255 字节
VARCHAR(n)可变长度字符串最多 65,535 字节(受行限制)
TEXT长文本(不支持默认值)最多 65,535 字节

日期时间类型

类型格式描述
DATEYYYY-MM-DD日期
DATETIMEYYYY-MM-DD HH:MM:SS日期 + 时间(无时区)
TIMESTAMPYYYY-MM-DD HH:MM:SS日期 + 时间(自动时区转换)
TIMEHH:MM:SS时间
YEARYYYY

 

相关文章:

  • 【linux】Web服务—搭建nginx+ssl的加密认证web服务器
  • PostgreSQL中的全页写
  • 在Linux服务器上部署Jupyter Notebook并实现ssh无密码远程访问
  • 通信安全堡垒:profinet转ethernet ip主网关提升冶炼安全与连接
  • Jenkins 最佳实践
  • 探索大型语言模型(LLM)的开源学习路径:mlabonne/llm-course 深度解析
  • 文本分类任务Qwen3-0.6B与Bert:实验见解
  • 人工智能100问☞第24问:什么是生成对抗网络(GAN)?
  • 多模态大语言模型arxiv论文略读(七十九)
  • C# DataGridView 选中所有复选框
  • Centos7系统(最小化安装)安装zabbix7版本详细文章、nginx源代码配置、php源代码、mysql-yum安装
  • CSS面试题汇总
  • 【Rust闭包】rust语言闭包函数原理用法汇总与应用实战
  • 微信小程序:封装表格组件并引用
  • C++之unordered_map/unordered_set模拟实现
  • conda创建环境常用命令(个人用)
  • STM32就业前景和下载KEIL软件(保姆级)
  • Vue3中setup运行时机介绍
  • FC7300 DMA MCAL 配置引导
  • 经典循环神经网络变体
  • 夜读丨什么样的前程值得把春天错过
  • 媒体:“重病老人银行取款身亡”涉事家属称已和解,银行将支付十万
  • 刘强东坐镇京东一线:管理层培训1800人次,最注重用户体验
  • 刘晓庆被实名举报涉嫌偷税漏税,税务部门启动调查
  • 乌总统:若与普京会谈,全面停火和交换战俘是主要议题
  • 远如《月球背面》,近似你我内心