MySQL常用语句

目录

连接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);-- 插入一列数据,注意没有valuesinsert 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.mzph.cn/news/2465.shtml

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

相关文章

MATLAB 之 可视化图形用户界面设计

这里写目录标题 一、可视化图形用户界面设计1. 图形用户界面设计窗口1.1 图形用户界面设计模板1.2 图形用户界面设计窗口 2. 可视化图形用户界面设计工具1.1 对象属性检查器2.2 菜单编辑器2.3 工具栏编辑器2.4 对齐对象工具2.5 对象浏览器2.6 Tab 键顺序编辑器 3. 可视化图形用…

hibernate入门,springboot整合hibernate

Mybatis和Hibernate是我们常用的两大ORM框架&#xff0c;这篇文章主要介绍hibernate的使用&#xff0c;如何通过springboot整合hibernate&#xff0c;实现简单的crud功能。 添加依赖 首先&#xff0c;需要创建一个springboot项目&#xff0c;这里就取名为hibernate。项目创建完…

【Visual Studio Code】---自定义键盘快捷键设置

概述 一个好的文章能够帮助开发者完成更便捷、更快速的开发。书山有路勤为径&#xff0c;学海无涯苦作舟。我是秋知叶i、期望每一个阅读了我的文章的开发者都能够有所成长。 一、进入键盘快捷键设置 1、进入键盘快捷键设置方法1 使用快捷键进入键盘快捷键设置先按 Ctrl K再…

怎么做活码二维码?动态码在线生成技巧

现在制作二维码用户大多习惯使用活码二维码&#xff0c;其优势在于能够在二维码不变的情况下修改内容&#xff0c;能够生成二维码长期使用&#xff0c;还可以设置有效期、加密等其他功能可以使用。那么怎么生成活码二维码呢&#xff1f;可以使用二维码生成器&#xff08;免费在…

leetcode 445. Add Two Numbers II(两数相加)

用链表代表2个数字&#xff0c;这2个数字相加的和用链表返回。 最高位在链表的head. 思路&#xff1a; 1.链表逆序 数字相加是从低位到高位的&#xff0c;然而链表中的数字是从高位指向低位。 所以涉及到链表的逆序。 逆序之后只需从head到tail把两个链表的数字相加&#x…

克服 ClickHouse 运维难题:ByteHouse 水平扩容功能上线

前言 对于分析型数据库产品&#xff0c;通过增加服务节点实现集群水平扩容&#xff0c;并提升集群性能和容量&#xff0c;是运维的必要手段。 但是对于熟悉 ClickHouse 的工程师而言&#xff0c;听到“扩容”二字一定会头疼不已。开源 ClickHouse 的 MPP 架构导致扩容成本高&…

C++图形开发(16):绘制一个圆环和一根针

文章目录 绘制一个圆环和一根针1.1 绘制1.2 line()函数1.3 circle()函数1.4 setlinestyle()函数1.5 setlinecolor()函数 接下来&#xff0c;我会继续制作一些小游戏&#xff0c;但因为整个难度的上升&#xff08;毕竟我也是初学者&#xff09;&#xff0c;可能文章不会再像之前…

http连接处理(下)(四)

1.结合代码分析请求报文响应 下面我们将介绍服务器如何响应请求报文&#xff0c;并将该报文发送给浏览器端。首先介绍一些基础API&#xff0c;然后结合流程图和代码对服务器响应请求报文进行详解。 基础API部分&#xff0c;介绍stat、mmap、iovec、writev。 流程图部分&…

【Ubuntu 20.04LTS系统】安装CUDA11.8、cuDNN,可进行CUDA版本切换

Ubuntu 20.04LTS系统安装CUDA11.8、cuDNN&#xff0c;可进行CUDA版本切换 1. 更改为清华源并更新软件列表和依赖项2. 安装CUDA3. 安装cuDNN4. CUDA版本切换 1. 更改为清华源并更新软件列表和依赖项 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/ # 默认注释了源码镜像以提…

二维码识别 OCR 原理及如何应用于物流和仓储管理中

摘要 在传统的物流和仓储管理中&#xff0c;人工操作容易出现错误和低效率。然而&#xff0c;随着二维码技术的普及和二维码识别OCR接口的应用&#xff0c;物流和仓储管理实现了更高水平的自动化和智能化。通过扫描和解码二维码&#xff0c;物流和仓储管理系统可以实现货物跟踪…

【JavaEE】JavaEE进阶:框架的学习 - Spring的初步认识

JavaEE进阶首章 文章目录 【JavaEE】JavaEE进阶&#xff1a;框架的学习 - Spring的初步认识1. JavaEE初阶 与 JavaEE进阶 开发上的区别1.1 Servlet VS Spring Boot1.2 Spring Boot的 “hello world”代码演示1.2.1 Spring Boot项目的创建1.2.2 hello world1.2.3 发布 2. 框架的…

分区类型ID一键变身!快速改变分区类型ID的简单方法

分区类型ID是什么&#xff1f; 想要改变分区类型ID&#xff0c;先得明白分区类型ID是什么。大多数电脑用户可能只熟悉分区和分区类型&#xff0c;实际上有5种分区类型&#xff1a;主分区、可扩展固件接口&#xff08;EFI&#xff09;、扩展分区、逻辑分区和Microsoft保留分…

idea 自定义类注释模板和方法模板,无警告

背景&#xff1a;idea&#xff1a;IntelliJ IDEA 2023.1.3 (Ultimate Edition) 效果&#xff1a;&#xff08;主要是没无参&#xff0c;不会换行&#xff09; 类&#xff1a; /** * author sss* date ${DATE} on ${TIME}* desc $NAME*/# 完全复制上面的&#xff0c;删除这一行…

ES6标准下在if中进行函数声明

ES5中规定&#xff0c;函数只能在顶层作用域或函数作用域之中声明&#xff0c;不能在块级作用域声明。 // 情况一 if (true) {function f() {} }// 情况二 try {function f() {} } catch(e) {// ... }上面两种函数声明&#xff0c;根据 ES5 的规定都是非法的。但是&#xff0c…

【C++】将类对象转换成基本数据类型

2023年7月19日&#xff0c;周三晚上&#xff1a; 今天晚上看源码的时候&#xff0c;突然在某个类里面看到了“operator bool() const;”&#xff0c;我完全想不起来这是啥意思了&#xff0c;于是今晚重新学习了一下 目录 类型转换函数的定义类型转换函数的作用 类型转换函数的…

王道计算机网络学习笔记(5)——传输层和应用层

前言 文章中的内容来自B站王道考研计算机网络课程&#xff0c;想要完整学习的可以到B站官方看完整版。 五&#xff1a;传输层 5.1&#xff1a;传输层基本概述 传输层的功能&#xff1a; 1传输层提供进程和进程之间的逻辑通信 2复用和分用 微信和QQ都使用传输层的协议进行发…

Vue3基础知识

文章目录 第一章 vue3 安装1.1安装1.2开启服务器1.3 使用图形化界面1.4 Vite1.5 vue3项目打包1.6 vue3 创建项目1.6.1 vue create命令1.6.2 创建一个项目 第二章 vue3 基础2.1 vue3 的目录结构2.2 vue3 的起步2.2.2 data 选项2,2.3 methods 2.3 Vue3 指令2.4 vue3 模板语法2.4.…

vue3和tauri直接下载Binary 数组的二进制文件内容到本地

通过发送url请求&#xff0c;直接获取到一个文件的Binary 数组内容&#xff0c;然后通过tauri的api&#xff1a;writeBinaryFile保存文件到本地电脑。 发送请求的时候&#xff0c;要加上响应类型&#xff1a;responseType: ResponseType.Binary 然后等返回的响应内容&#xf…

Chat GPT是什么,初学者怎么使用Chat GPT,需要注意些什么

目录 Chat GPT是什么 初学者怎么使用Chat GPT 使用Chat GPT需要注意什么 一些简单的prompt示例 Chat GPT是什么 Chat GPT是由OpenAI开发的一种大型语言模型&#xff0c;它基于GPT&#xff08;Generative Pre-trained Transformer&#xff09;架构。GPT是一种基于深度学习的…

应对突发流量,如何快速为自建 K8s 添加云上弹性能力

作者&#xff1a;庄宇 以 Kubernetes 为代表的容器技术带来的是一种应用交付模式的变革&#xff0c;其正迅速成为全世界数据中心的统一 API。 为了保证业务持续稳定、用户访问不中断&#xff0c;高可用、高弹性等能力是应用架构设计不变的追求&#xff0c;多集群架构天然具备…