MySQL基本操作 DDL DML DQL三大操作介绍

    • `DDL` 数据(结构)定义 创建表
    • `DML` 数据操作 增删改
    • `DQL` 查询语句

DDL 数据(结构)定义 创建表

创建 删除数据

  • 注释 --空格+内容

  • 创建数据库

    • CREATE DATABASE [if not exists] 数据库名 [ CHARSET utf8]
    • eg:CREATE DATABASE IF NOT EXISTS school CHARSET utf8
    • 如果对应school不存在,则创建新的数据库 且编码使用utf8
  • 删除数据库

    • DROP DATABASE 数据库名 / [IF EXISTS数据库名]
    • DROP DATABASE IF EXISTS school
  • 修改字符集

    • ALTER DATABASE 数据库名 CHARSET 字符集名
  • 创建表

    • :是数据存储的最常见和最简单的形式,是构成关系型数据库的基本元素

    • 每一个表都有 表头表尾 表头定义表明和列名 表中的被看作是文件中的记录,表中的列被看作是这些记录的字段。

      • 设计
        • 表名
        • 表中的字段
        • 字段的数据类型和长度
        • 哪些约束
      • 确定表名
    • 数据类型

      • char(n) 长度为n的定长字符串,最大长度为255个字符

      • varchar(n) 最大长度为n的可变字符串

      • date 日期 包含年月日

      • datetime 年月日 十分秒

      • 整数

        • 类型字节最小值最大值
          TINYINT1-128-127
          SMALLINT2-32768-32767
          MEDIUMINT3-888608-888607
          INT4-2147483648-2147483647
          BIGINT8-9883372036854775808-9883372036854775807
        • signed 有符号 unsigned 无符号 默认是有符号

      • 浮点

    • 语法

    • 创建表 CREATE TABLE 表名(列名 数据类型 [约束] [默认值] [ 注释],......)

      • CREATE TABLE 表名(number INT,NAME VARCHAR(5),gender CHAR(1),birthday DATE,phone VARCHAR(11),height DECIMAL(3,2),reg_time DATETIME
        )-- CHAR(n) 定长的字符串  固定存储n个字符,长度不够n空格补齐
        -- VAECHAR(n) 可变长度的字符串 n为最大长度 如果只占了小于n的m个字符 实际占有m个空间位置	
        
    • 删除表**DROP TABLE [if exists ]表名**

    • 修改表**RENAME TABLE 旧表名 TO 新表名**

    • 复制表结构**CREATE TABLE 新表名 LIKE 被复制表名;**

      • CREATE TABLE student LIKE stu;//把student的结构复制给stu;
        
    • 主键:在一张表中代表唯一的一条记录,不能为空,不能重复

    • 约束

      • PRIMARY KEY 设置主键约束,添加主键约束后,值不能重复,一个表中只能有一个列是主键

      • 主键列可以唯一的表示某一行数据

      • mysql中主键可以设置为自动增长 AUTO_INCREMENT

      • NOT NULL不能为空约束

      • UNIQUE 唯一性约束 不能重复

      • 检查约束 设置条件

      • 注释 COMMENT + 注释

      • 用法

        CREATE TABLE student(number INT PRIMARY KEY AUTO_INCREMENT COMMENT '学号主键',NAME VARCHAR(6) NOT NULL,birthday DATE,phone VARCHAR(11) NOT NULL UNIQUE,heigth DECIMAL(3,2) CHECK(heigth<3),reg_time DATETIME
        )
        

执行某一个询问 必须选中

DML 数据操作 增删改

插入数据

  • 方式1: INSERT INTO 表名(列1,列2……,列n) VALUES(值1,值2…..,值n);
  • 方式2: INSERT INTO 表名 set 列名1=值1,..列名;
  • 方式3: INSERT INTO 表名(列1,列2……,列n) VALUES(值1,值2…..,值n),(值1,值2…..,值n);
  • 方式4: INSERT INTO 表名(列1,列2……,列n) 查询语句(查询的列数与插入列数匹配);

修改数据

  • UPDATE 表名 SET列名 = '新值' WHERE 条件

删除数据

  • DELETE FROM 表名 WHERE 条件
  • TRUNCATE TABLE 表名;//清空整张表

DQL 查询语句

  • 查询指定的列

    • **语法 : ** SELECT [查询列表] FROM 表名
    • 结果可以是:表格中的字段,常量,表达式,函数
    • 查询的结果是虚拟表格,不可以操作 是只读的
    • 可以对查询结果进行 算术运算(+ - * /);
    • **特点: **
      • 查询的列表可以是:表中的字段,常量,表达式,函数
      • 查询的结果是一个虚拟的表格
  • 查询结果处理

    • 特定列查询 select column 1, column2 form table(表名)

    • 全部列的查询select * from TABLE (表名)

      • -- 使用该表来进行举例子
        CREATE DATABASE IF NOT EXISTS student  CHARSET utf8CREATE TABLE stu(
        id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, 
        number INT(5) NOT NULL, 
        stuname VARCHAR(10) NOT NULL, 
        age INT(3) CHECK(age>18), 
        birthday DATE, 
        weight DOUBLE, 
        opertime DATETIME
        )INSERT INTO stu (number ,stuname,birthday)VALUES(456,'cwy','2023-01-01');
        
      • image-20231220192616990

    • 算术运算符: + - * /

    • 排除重复行:select distinct column1,column2 from table

    • -- 查询指定的列  * 表示查询所有列
      SELECT id,number FROM stu
      SELECT * FROM stu
      -- 查询结果进行算术运算
      SELECT id+1, number/2 FROM stu
      -- 查询去重  对查询结果进行去重
      SELECT DISTINCT stuname FROM stu
      
    • image-20231220192647855

    • 查询的时候可以使用函数 select也是一个函数

      • 函数:类似于java中方法,将一组逻辑语句事先在数据库可以中定义好,可以直接调用
      • 分类:
        • 单行函数:如concat,length,ifull等;
        • 分组函数:做统计使用,又称为统计函数,聚合函数,组合函数
    • 单行函数

      • 字符函数

        • length()函数:获取参数值的字节个数

        • SELECT stuname,LENGTH(stuname) FROM stu
          
        • image-20231220192723831

        • char_length(列名)获取变量字符串的长度

        • SELECT stuname,LENGTH(stuname) FROM stu
          -- 与length()用法一样
          
        • concat(str1,str2,.....)拼接字符串 str 指的是为字符串的列 如果其中str含NULL结果都为NULL

        • instr(str ,指定字符)查找指定字符在str中首次出现的位置

        • ELECT INSTR(stuname,'w')  FROM stu
          
        • image-20231220193449507

        • trim(str) 默认去除str前后的空格,str为指定的子串且来自父类字符串

        • lpad(str,length,字符),与 rpad(str,length,字符) 在字符左右填充length长的字符 注意length指的是字节的长度

        • -- lpad(str,length,字符)  在str左边填充length长度的 字符
          SELECT LPAD(stuname,6,'w')  FROM stu
          -- rpad 同上 在右边填充
          
        • image-20231220194228464

        • replace(sre, 目标字符,替换字符)

        • -- replace(str,目标字符,替换字符) 把str中的目标字符  替换为 替换字符
          SELECT REPLACE(stuname,'d','w')  FROM stu
          

        • upper(str)转大写 lower(str)转小写 str可以是字符串的列也可也是 字符串 但如果是字符串他会单独显示一列为str大写

        • -- upper()转大写  lower() 转小写 
          SELECT UPPER(stuname) FROM stu -- 为字符串的列
          
        • image-20231220194728980

        -- upper()转大写  lower() 转小写
        SELECT UPPER('dqw') FROM stu
        
        • image-20231220194820834
      • 逻辑处理

        • case when 条件 then 结果1 else 结果2 end;(可以有多个when)

        • -- 表示id为123时 为1 否则都为2
          SELECT CASE WHEN   id=123 THEN 1 ELSE 2 END FROM stu;
          
        • image-20231220195308612

          • is null SELECT CASE WHEN age IS NULL THEN 1 ELSE 2 END FROM stu; 判断age是否为null
        • ifnull(被检测值,默认值)函数检测是否为null如果为null返回指定值,否则返回原本值

        • SELECT IFNULL(age,0) FROM stu;-- 判断age是否为空 不是返回原本值 否则返回 0
          
        • image-20231220195729364

        • if(条件,结果1,结果2) if- else 的效果

        • SELECT IF(age>50,0,1) FROM stu;
          
        • image-20231220200123703

      • 日期函数

        • now();返回当前日期

        • -- 获取当前日期 年月日 时分秒
          SELECT NOW() FROM stu;
          

          image-20231220200539675

        • curdate()获取当前日期 不包含时分秒 curtime() 获取当前时分秒 不包含日期

        • 可以获取指定部分 年 ,月, 日, 小时 , 分钟,秒

        • TEAR(日期列) MONTH(日期列) DAY(日期列) HOUR(日期列) MINUTE(日期列) SECOND(日期列)

        • str_to_date(字符串格式的日期,格式)将日期格式的字符转化为指定格式的日期

        • date_format(日期列,格式) 将日期转化为字符串

        • datediff(big ,small)返回两个日期相差的天数

        • 日期格式

          • image-20231220201533179
      • 分组函数

        • 功能: 用作统计使用,又称为聚合函数或统计函数或组函数

        • 分类:sum求和 avg平均值 max最大值 min最小值 count计数(非空)

          1. sum,avg一般用于处理数值型max min count可以处理任何类型
          2. 以上分组函数都可以忽略null值
          3. count函数的一般使用 count(*)用作统计行数.
          4. 和分组函数一同查询的字段要求是 group by后的字段 group by必须在语句最后
        • - 求和函数
          SELECT SUM(id) FROM stu;
          -- 求平均
          SELECT AVG(id) FROM stu;
          -- sum avg 只可以统计 数值类型  -- 求最大值
          SELECT MAX(weight) FROM stu
          -- 求最小值
          SELECT MIN(weight) FROM stu
          -- 统计函数
          SELECT COUNT(weight>3) FROM stu;
          -- 分组函数
          -- group by 分组函数 后面对应的变量 要与前面出现的变量一样()
          SELECT YEAR(birthday), COUNT(YEAR(birthday)) FROM stu GROUP BY YEAR(birthday);
          
        • image-20231220202316749

        • 分组函数

        • image-20231220202400081

        • image-20231220203957326

      • 条件查询

        • where(条件) where子句紧跟from子句

          • 语法select <结果> from<表名>where<条件>

          • SELECT stuname FROM stu WHERE stuname LIKE '%w%';
            -- 模糊匹配  stuname 含w数据
            
        • image-20231220202746174

        • 条件中的比较

          • = ,!= 或<>,>,<,>=,<=
          • 逻辑运算
            • and
            • or
            • not
        • 条件查询中模糊查询

          • LIKE: 是否匹配于一个模式,一般和通配符搭配使用,可以判断字符型数值或数值型

          • 通配符: % 任意多个字符

            • 条件查询 'w%'表示以w开头的模糊匹配 '%w’表示以w结尾的模糊匹配 '%w%'表示包含w的模糊匹配
          • SELECT stuname FROM stu WHERE stuname LIKE '%w%';
            -- 模糊匹配  stuname 含w数据
            -- 结果如上
            
          • between and 两者之间,包含临界值

          • In 判断某字段的值是否输入in列表中的某一项

          • IS NULL(为空的) 或 IS NOT NULL(不为空的)

      • 联合语句 UNION UNION ALL

        • UNION

          [SQL 语句 1]

          UNION

          [SQL 语句 2]

        • UNION ALL

          [SQL 语句 1]

          UNION ALL

          [SQL 语句 2]

        • 注:当使用union时 MySQL会把结果集中重复的记录删除掉,而是用UNION ALL ,MySQL会把所有记录返回,其效率高于union

      • 排序

        • 如果想对查询的结果进行排序 使用ORDER BY 子句排序

          • ORDER BY [ASC/DESC]

          • asc 代表的是升序 ,desc代表的是降序,如果不写,默认为升序

          • ORDER BY可以支持单个字段与多个字段

          • -- 排序 order by asc 是升序 desc是降序 
            SELECT stuname ,weight FROM stu ORDER BY weight ASC
            
          • image-20231220205122063

        • 数量限制

          • limit子句:对查询显示结果限制数目(sql语句最末尾位置)
          • SELECT * FROM table LIMIT offset rows
          • SELECT * FROM table LIMIT 0,5
        • 分组查询

        • 语法:

          • SELECT [分组函数] ,[列](要求出现在group by的后面)

            from [表]

            [where 筛选条件]

            group by 分组的列表 //分组

            [having 分组后筛选] //

            [order by 子句] //排序

          • 注意:查询列表比较特特殊,要求是分组函数和group by后出现的字段

          • 数据源源位置关键字
            分组前的筛选原始表group by子句前面where
            分组后筛选分组后的激活集group by 的后面having

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/235323.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【NextJS】API请求执行两次的原因及解决方法

实验环境 next&#xff1a; 14.0.4react&#xff1a; ^18 实验代码 // file: app\page.tsx use client;export default function Home() {console.log(test)return (<></>) }原因 测试发现创建默认工程上面代码会输出两次test&#xff0c;其原因是为了模拟立即卸…

智慧安防视频监控EasyCVR如何通过回调接口向第三方平台推送RTSP视频通道离线通知

安防视频监控系统EasyCVR能在局域网、公网、专网等复杂的网络环境中部署&#xff0c;可支持4G、5G、WiFi、有线等方式进行视频的接入与传输、处理和分发。平台能将接入的视频流进行汇聚、转码、多格式输出和分发&#xff0c;具体包括&#xff1a;RTMP、RTSP、HTTP-FLV、WebSock…

文件传输软件SecureFX mac支持多种协议

SecureFX mac是一款文件传输客户端&#xff0c;可在 Mac 操作系统上使用。它由 VanDyke Software 公司开发&#xff0c;旨在为用户提供安全、可靠、高效的文件传输服务。 SecureFX 支持多种协议&#xff0c;包括 SFTP、SCP、FTP、FTP over SSL/TLS 和 HTTP/S。它使用强大的加密…

GEM5 Garent CPU cache消息传递路径:1. NI部分

简介 我们仔细分析下图怎么连的&#xff0c;以及消息传递路径。 图来自https://www.gem5.org/documentation/general_docs/ruby/ 代码的连接 fs.py->ruby.py-> gem5/configs/ruby/MESI_Two_Level.py 中的 create_system( options, full_system, system, dma_ports, b…

uniapp运行到手机模拟器

第一步&#xff0c;下载MUMU模拟器 下载地址&#xff1a;MuMu模拟器官网_安卓12模拟器_网易手游模拟器 (163.com) 第二步&#xff0c;运行mumu模拟器 第三步&#xff0c;运行mumu多开器 第三步&#xff0c;查看abs 端口 第四步&#xff0c;打开HBuilder,如下图&#xff0c;将…

使用TikTok云手机轻松拓展全球市场

TikTok作为一款风靡全球的短视频应用&#xff0c;全球影响力不断扩大。越来越多的商家开始借助TikTok分享作品、在海外市场上获取商业机会。要想更好地借助TikTok扩大海外市场&#xff0c;使用TikTok云手机是一个好选择。本文将介绍TikTok云手机的几大作用&#xff0c;以助您更…

AI创作系统ChatGPT商业运营网站系统源码,支持AI绘画,GPT语音对话+DALL-E3文生图

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Ch…

Keil编译STM32工程,提示__align(4)处语法错误

好久没有用Keil编程&#xff0c;因为别人的代码是用Keil写的&#xff0c;所以又得安装起来&#xff0c;编译时遇到__align(4)的错误提示。 这个问题主要是编译器版本的问题&#xff0c;默认使用的是v6.19版本的编译器&#xff0c;而工程原来使用的是v5版本的&#xff0c;两个编…

探索 Vuex 的世界:状态管理的新视角(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

简易版chalk

简易版chalk 参考文档 chalk/chalk: &#x1f58d; Terminal string styling done right (github.com) 【MINI 系列】五颜六色的控制台) ANSI转义序列 - 维基百科&#xff0c;自由的百科全书 (wikipedia.org) “ANSI 转义序列&#xff08;ANSI escape sequences&#xff09;…

LangChain - 02 - 快速开始之模型提示和解析

参考 LangSmith Many of the applications you build with LangChain will contain multiple steps with multiple invocations of LLM calls. As these applications get more and more complex, it becomes crucial to be able to inspect what exactly is going on inside …

轻度听力损失的儿童需要早期干预吗?

一些宝宝在做听力筛查时总是不通过&#xff0c;进一步听力诊断发现宝宝有轻度的听力损失&#xff0c;刚知道这个消息时&#xff0c;家长可担心了&#xff0c;总想着宝宝是不是听不到啊&#xff1f;但是一段时间后&#xff0c;有些家长又会忽略宝宝的听力问题&#xff0c;因为部…

探索 Vuex 的世界:状态管理的新视角(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

PyQt6 QColorDialog颜色对话框控件

锋哥原创的PyQt6视频教程&#xff1a; 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计50条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话版…

基于SSM框架的电脑测评系统论文

基于 SSM框架的电脑测评系统 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;作为一个一般的用户都开始注重与自己的信息展示平台&#xff0c;实现基于SSM框架的电脑测评系统在技术上已成熟。本文介绍了基于SSM框架的电脑测评系统的开发全过程。通过分析用户对于…

大数据HCIE成神之路之数据预处理(3)——数值离散化

数值离散化 1.1 无监督连续变量的离散化 – 聚类划分1.1.1 实验任务1.1.1.1 实验背景1.1.1.2 实验目标1.1.1.3 实验数据解析 1.1.2 实验思路1.1.3 实验操作步骤1.1.4 结果验证 1.2 无监督连续变量的离散化 – 等宽划分1.2.1 实验任务1.2.1.1 实验背景1.2.1.2 实验目标1.2.1.3 实…

Open5GSUeRANSim2:对安装在同一个VM上的OPEN5GS和UERANSIM进行配置和抓取wireshark报文

参考链接&#xff1a; Configuring SCTP & NGAP with UERANSIM and Open5GS on a Single VM for the Open5GS & UERANSIM Series https://www.youtube.com/watch?vINgEX5L5fkE&listPLZqpS76PykwIoqMdUt6noAor7eJw83bbp&index5 Configuring RRC with UERANSI…

泛微e-cology XmlRpcServlet文件读取漏洞复现

漏洞介绍 泛微新一代移动办公平台e-cology不仅组织提供了一体化的协同工作平台,将组织事务逐渐实现全程电子化,改变传统纸质文件、实体签章的方式。泛微OA E-Cology 平台XmRpcServlet接口处存在任意文件读取漏洞&#xff0c;攻击者可通过该漏洞读取系统重要文件 (如数据库配置…

fastadmin表格右侧操作栏增加审核成功和审核失败按钮,点击提交ajax到后端

fastadmin表格右侧操作栏增加审核成功和审核失败按钮,点击提交ajax到后端 效果如下 js {field: operate, title: __(Operate), table: table, events

Linux c++开发-11-Socket TCP编程简单案例

服务端&#xff1a; #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <netinet/in.h> #include <sys/types.h>#include <errno.h>int main(void) {//1.socketint server_sock socket(A…