MySQL常用语句

news2024/11/30 1:32:31

目录

连接MySQL

数据库操作

表的操作

数据操作

进阶查询

源码等资料获取方法


连接MySQL

-- 语法:mysql -u用户名 -p密码  注:--空格 起到注释的作用
mysql -uroot -p123456

数据库操作

-- 显示当前时间、用户名、数据库版本(可以单独查询)
    select now(), user(), version();

-- 查看所有数据库
    show databases;

-- 创建数据库
-- 语法:create database 数据库名 [数据库选项];  []可缺省
    create database test; 
    create database test1 charset=utf8;

-- 查看数据库的创建信息
-- 语法:show create database 数据库名;
    show create database test;

-- 修改数据库的选项
-- 语法:alter database 数据库名 修改的数据选项;
    alter database test1 charset=utf8mb4;

-- 使用数据库
-- 语法:use 数据库名;
    use test1;

-- 查看当前使用的数据库    
    select database();

-- 删除数据库 
-- 语法:drop database 数据库名; 
    drop database test;

表的操作

-- 创建表
-- 语法:create table 表名(字段 类型 [约束]);  -- []表示可缺省
-- 常用约束:
    -- 主键:primary key
    -- 非空:not null
    -- 自增:auto_increment
    -- 无符号:unsigned
    -- 默认:default 默认值
    create table user_info(id int,name varchar(30));
    create table user_info(
        `id` int unsigned primary key not null auto_increment, 
        `name` varchar(30),
        `gender` enum("男", "女", "保密") default "保密",
        `age` TINYINT,
        `createTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP , # 创建时间 
        `updateTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , # 更新时间
    );

-- 查看表结构
-- 语法:desc 表名;
    desc user_info;
        
-- 修改表结构
-- 语法:alter table 表名 操作名;
    -- 操作名
        -- 增加字段:add column 字段名 字段属性;
            alter table user_info add column addr varchar(30);
        -- 删除字段:drop column 字段名
            alter table user_info drop column addr;
        -- 修改字段属性:modify column 字段名 字段属性;
            alter table user_info modify column addr int;
        -- 修改字段名和属性:change column 原字段名 新字段名 字段属性;
            alter table user_info change column addr address varchar(20);
        -- 修改约束:
            -- 添加主键:add primary key(字段名)
                alter table user_info_cp add primary key(id);
            -- 删除主键:drop primary key  (删除主键前需删除其AUTO_INCREMENT属性)
                alter table user_info_cp drop primary key; 
                
-- 删除表
-- 语法:drop table 表名;
    drop table user_info;

-- 查看创建表的语句
-- 语法:show create table 表名;
    show create table user_info;

-- 复制表结构
-- 语法:create table 表名 like 要复制的表名
    create table user_info_cp like user_info;

-- 复制表结构和数据    
-- 语法:create table 表名 select * from 要复制的表名
    create table user_info_cpdata select * from user_info;

数据操作

-- 插入数据
-- 语法:insert into user_info[(指定字段)] values(字段值);
  -- 全部插入
    insert into user_info values(4, "李四", "女", 19);
  -- 部分插入
    insert into user_info(name, gender, age, create_time) values("张三", "男", 22, "2018-10-12 11:22:33");
  -- 插入多条
    insert into user_info(name, gender, age) values("王麻子", "男", 22),("老王",1,33);
  -- 插入一列数据,注意没有values
  insert into class(class_name) (SELECT class_name from user_info group by class_name);  -- 将user_info表中搜索出的class_name字段的内容在class表的class_name字段的最后条记录后插入

-- 查询表中数据
-- 语法:select 字段 from 表名 [where 字段=字段值];
  -- 简单查询
    select * from user_info;
    -- 查询后修改查询的值
    select name,IFNULL(gender,'未定义') from user_info;
  -- 条件查询
    select name,gender from user_info where gender="女";
  -- 多条件查询
    select name,gender from user_info where gender="女" and age>18;

-- 修改数据
-- 语法:update 表名 set 字段=新字段值 where 字段=字段值
    update user_info set name="王五" where gender="男" and age=22;
    -- 修改整个字段内容
      update user_info u left join class c on u.class_name=c.class_name set u.class_name=c.id;    -- 将user_info表中class_name字段内容全部替换成class表中对应的班级ID

-- 删除数据
-- 语法:delete from 表名 条件;
    delete from user_info where name="李四";

进阶查询

user_info表

score表

 

-- 使用 distinct 去重查询
    select distinct gender from user_info;

-- 使用 as 取别名,as 可缺省
        -- 为字段取别名
            select name "姓名",gender as g from user_info where g="男";
        -- 为表取别名
            select * from user_info as u,score s where u.name=s.name;

-- 查询常用函数
    -- 使用 avg 查询平均数
      select avg(age) from user_info;
    -- 使用 sum 查询总和
      select sum(age) from user_info;
    -- 使用 min(max) 查询最小(最大)值
      select min(age) from user_info;
    -- 使用 count 统计查询记录数
      select count(*) from user_info;
    
-- 使用 group by 分组查询
    select class from user_info group by class; -- 查询班级名称
    select avg(age) from user_info group by class; -
    -- 使用group by 查询语句不能使用where 条件筛选数据,可以使用 having 条件筛选
      select class from user_info group by class having avg(age)>20; -- 查询平均年龄大于20的班级
            select count(*) from user_info group by class; -- 查询每个班多少人
            select sum(score) from user_info group by class; -- 查询每个班所有人总分数
    -- 使用 group_concat 查看分组的详细信息
            select class,group_concat(name) from user_info group by class;

-- 使用运算符查询
    -- 使用比较运算符(> < =)
      select * from user_info where age>18;
    -- 使用between...and...查询
      select * from user_info where age between 18 and 30;
    -- 使用 in 查询
      select * from user_info where age in (11,22,33);
    -- 使用 is null (is not null) 查询
      select * from user_info where address is null;
    -- 使用 and  or  not 查询
      select * from user_info where (age=18 and gender="女") or gender!="女"
        
-- 使用 like 模糊查询
    select * from user_info where name like "王%"

-- 使用limit分页查询
-- 分页公式   limit (页码-1)*分页大小,分页大小
    select * from user_infor limit 10;  -- 显示最前面10条数据
    select * from user_infor limit 0,10;  -- 从第1条数据开始,显示后面10条数据
    select * from user_infor limit 10,10;  -- 从第11条数据开始,显示后面10条数据
    select * from user_infor limit 20,10;  -- 从第21条数据开始,显示后面10条数据
        
-- 使用 order by 给查询数据排序
    -- asc 升序查询,默认升序
      select * from user_info order by age;
      select * from user_info order by age asc;
    -- desc 降序查询
      select * from user_info order by age desc;
        
-- 多表查询
    -- 把查询结果当成条件
      select * from user_info where name in (select name from score where score>59);
    -- 把查询结果当成一张新表
      select * from (select name from user_info) as n left join score on n.name=score.name;

-- 等值连接查询
    select * from user_info as a, score as b where a.`name`=b.`name`;
        
-- 自连接查询
    select a.* from user_info a, user_info b where a.name=b.team_leader; -- 查询班长信息
        
-- 多列子查询
    select * from user_info where (age, class)=(select age, class from user_info where name="李四");  -- 查询与李四同班同龄的信息
        
-- 连接查询
    -- inner join on 内连接。只返回相互匹配部分的数据
      select * from user_info inner join score on user_info.name=score.name; -- 查询score中有成绩的人员信息
    -- 外连接分为 左连接 left join 和右连接 right join
      -- 左连接。返回左表全部数据和右表匹配数据
        select * from user_info left join score on user_info.name=score.name; -- 左表为user_info,右表为score
      -- 右连接。与左连接相反。
        select * from user_info right join score on user_info.name=score.name; -- 左表为user_info,右表为score

源码等资料获取方法

各位想获取源码等教程资料的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~

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

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

相关文章

NodeJS实现支付宝沙箱支付②③

文章目录 前言版权声明Alipay SDK 沙箱环境简介Node环境要求沙箱环境配置下载所需模块准备前端静态页面以及Node服务器文件夹规范AlipaySdk 配置准备AlipaySdk 代码演示 Alipay实例化 ~ alipay.sdk 文件 AlipayForm ~ alipayForm文件 AlipayFormStatus ~ alipayForm文件 …

MQTT协议在物联网环境中的应用及代码实现解析(四)

四、使用单片机环境编程接收MQTT服务器上特定主题的信息 以下是使用STM32F103单片机链接W5500芯片链接到网络上&#xff0c;利用MQTT协议接收MQTT服务器“mqtt.laobai.net”上的“laobai_topic001”主题上的订阅信息&#xff0c;并发送给串口的C语言代码示例&#xff0c;包括完…

C语言——指针详解(进阶)

轻松学会C语言指针 一、字符指针二、数组指针2.1 数组指针的定义2.2 &数组名VS数组名2.3 数组指针的使用 三、指针数组四、数组参数和指针参数4.1 一维数组传参4.2 二维数组传参4.3 一级指针传参4.4 二级指针传参 五、函数指针六、函数指针数组七、指向函数指针数组的指针八…

计算机网络微课堂学习笔记(详细图解讲解)-长期更新

前言&#xff1a; 计算机网络在信息时代的作用 计算机网络已由一种通信基础设施发展成为一种重要的信息服务基础设施&#xff0c;计算机网络已经像水、电、煤气这些基础设施一样&#xff0c;成为我们生活中不可或缺的一部分 一、因特网概述 &#xff08;1&#xff09;网络、…

ChatGPT火热之下的冷思考

作为一款基于人工智能的自然语言处理(NLP)​​聊天机器人​​程序&#xff0c;ChatGPT通过大量来自互联网的文本进行训练&#xff0c;并使用深度学习和机器学习算法来理解用户的问题并提供准确的回答。并且&#xff0c;ChatGPT还内置了情感分析、关键字提取和实体识别等功能&am…

ngsoc使用指南

和威胁告警差不多。 ngsoc是以资产为核心&#xff0c;以安全事件为管理的关键流程&#xff0c;建立一套威胁检测&#xff0c;相应&#xff0c;预测&#xff0c;和持续监控分析&#xff0c;一体化的监控与相应平台。 和天眼的区别&#xff1a;会把天眼的告警&#xff0c;其他安…

【041】从零开始:逐步学习使用C++ STL中的stack容器

从零开始&#xff1a;逐步学习使用C STL中的stack容器 引言一、stack容器概述二、stack容器常用API2.1、构造函数2.2、赋值操作2.3、数据存取操作2.4、大小操作 三、使用stack容器实现一个高效的算法总结 引言 &#x1f4a1; 作者简介&#xff1a;一个热爱分享高性能服务器后台…

安达发|如何选择更适合我们的APS高级排程软件

如何选择aps高级排程公司更适合我们?在选购aps高级排程的时候&#xff0c;一些朋友由于不清楚其中的选购技巧&#xff0c;许多时候会掉入些许选择误区&#xff0c;导致我们买不了合适我们选择的aps高级排程。因此选择适合我们的aps高级排程就变得十分重要&#xff0c;唯有明白…

23.JavaWeb-集群+Nginx+JMeter

1.集群概念 平时用的服务是的并发量是有限的&#xff0c;像tomcat只有不到500的并发量&#xff0c;不能满足高并发的需求&#xff0c;因此就采用了集群的方法&#xff0c;用多个服务器 当用户请求集群系统时&#xff0c;集群给用户的感觉就是一个单一独立的服务器&#xff0c;而…

项目中使用拆分数据库的优势

为什么要拆分数据库&#xff1f; 取决于数据库的负载和数据量。 单体项目在构建之初&#xff0c;数据库的负载和数据量都不大&#xff0c;所以不需要对数据库做拆分&#xff0c;小型财务系统、文书系统、ERP系统、OA系统&#xff0c;用一个MySQL数据库实例基本就够用了。 就…

重绘 ( Repaint) 和回流 ( Reflow)

重绘 ( Repaint) 和回流 ( Reflow) 首先了解 重绘 ( Repaint) 和回流 ( Reflow)其实是关乎到浏览器性能的问题 重绘和回流是渲染步骤中的⼀⼩节&#xff0c;但是这两个步骤对于性能影响很大 重绘和回流的过程都需要浏览器耗费大量的计算资源&#xff0c;过多的使用会导致网页性…

港联证券|熨平短期扰动 7月MLF小额加量续作

7月17日&#xff0c;为保护银行系统流动性合理充裕&#xff0c;人民银行开展1030亿元中期借贷便利&#xff08;MLF&#xff09;操作和330亿元公开商场逆回购操作,充沛满足了金融机构需求。本月MLF中标利率和公开商场逆回购操中标利率与上期持平&#xff0c;分别为2.65%、1.9%。…

[深度学习入门]什么是神经网络?[神经网络的架构、工作、激活函数]

目录 一、前言二、神经网络的架构——以手写数字识别三、神经网络的工作1、单输入单输出感知器函数2、二维输入参数3、三维输入参数 四、激活函数1、激活函数2、ReLU激活函数3、非线性激活函数&#xff08;1&#xff09;二输入二输出的神经网络的架构&#xff08;2&#xff09;…

创建、发布npm包,并且应用在项目里面

实现一个函数去监听dom宽高的变化&#xff0c;并且发布NPM包&#xff0c;然后使用到项目中 步骤 1.5W3H 八何分析法 2.如何监听dom宽高变化 3.如何用vite 打包库 4.如何发布npm 一、NPM包新建过程 查看完整目录 1.生成 package.json npm init生成TS配置文件 tsconfig.js…

OpenVas扫描器更新扫描引擎

OPenvas扫描器安装时step1 是交换指导升级&#xff08;nvt&#xff0c;cert&#xff0c;scap&#xff09;&#xff0c;这次升级后是自动升级24h升级一次&#xff0c;但第一次升级时选择默认的rsync升级时会出现同步失败的问题&#xff0c;导致openvas安装完后有很大模块和规则不…

软件测试教程之测试分类

目录 1.按测试对象分类 界面测试 可靠性测试 容错性测试 文档测试 兼容性测试 易用性测试 安装卸载测试 性能测试 安全性测试 内存泄漏测试 2.按照是否查看代码分类 黑盒测试 白盒测试 灰盒测试 3.按开发阶段划分 单元测试 集成测试 系统测试 回归测试 冒…

栈的压入、弹出序列

链接: 栈的压入、弹出序列 class Solution { public:/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可** * param pushV int整型vector * param popV int整型vector * return bool布尔型*/bool IsPopOrder(vector<int…

视频制作高清GIF动图的简单方法分享

有时想要将电视剧、电影中的精彩画面保存下来&#xff0c;但是视频较大非常的不方便的时候该怎么办呢&#xff1f;这时候&#xff0c;可以使用专业的视频转gif&#xff08;https://www.gif.cn/&#xff09;工具-GIF中文网&#xff0c;无需下载软件&#xff0c;手机、pc均可在线…

【深度学习平台推荐】 Kaggle

工欲善其事&#xff0c;必先利其器。在一个优秀的平台上&#xff0c;更利于深度学习的探究。 本文目的是推荐一些深度学习相关的网站。 1 Kaggle Kaggle offers a no-setup, customizable, Jupyter Notebooks environment. Access GPUs at no cost to you and a huge repositor…

搭建Redis主从集群和哨兵

说明&#xff1a;单机的Redis存在许多的问题&#xff0c;如数据丢失问题、高并发问题、故障恢复问题、海量数据的存储能力问题&#xff0c;针对这四个问题&#xff0c;对应解决方式有&#xff1a;数据持久化&#xff08;参考&#xff1a;http://t.csdn.cn/SSyBi&#xff09;、搭…