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再…

12-组队竞赛

题目 牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。 例如: 一个队伍三个队员的水平值分别是3,3,3.那么队伍的水平值是3一个队伍三个…

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

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

【自然语言特征工程笔记】

字典特征提取 DictVectorizer 介绍 字典特征提取是机器学习和自然语言处理中常用的一种技术&#xff0c;用于将文本数据转化为可用于机器学习算法的数值特征。DictVectorizer是一个用于将字典对象转化为稀疏特征矩阵的工具。它能够处理带有非数值特征的数据&#xff0c;并将其…

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;可能文章不会再像之前…

Maven工程中排除依赖打包的两种方式

在Maven工程中,我们常需要依赖各种第三方库完成项目开发,但在最终交付时,往往不希望将这些依赖本身打包到产品中,以减小发布包体积。此时,可以通过以下两种方式实现: 使用provided 这适用于那些编译时需要,但运行时会由服务器或运行环境提供的库,典型的如Servlet API、JDBC驱…

spring boot 引入hive

在Spring Boot中使用Hive&#xff0c;需要引入以下依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-hadoop</artifactId> </dependency>然后&#xff0c;在application.…

Android 图片加载库改造

一、现状: 1、bug众多 加载前没有判断 context 是否为空&activity 是否已经销毁,导致崩溃; trying to use a recycled bitmap android.graphics.Bitmap 导致崩溃; 使用applicationContext 作为上下文,导致内存泄露,卡顿; ActivityUtilKt.context() && Activ…

http连接处理(下)(四)

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

如何在pycharm上安装yfinance库

在 PyCharm 上安装 yfinance 库&#xff0c;可以按照以下步骤进行操作&#xff1a; 打开 PyCharm&#xff0c;创建一个新的 Python 项目或打开已有项目。在 PyCharm 的顶部菜单栏中&#xff0c;选择 “File”&#xff08;文件&#xff09;> “Settings”&#xff08;设置&a…

【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;物流和仓储管理系统可以实现货物跟踪…

Flutter有状态组件StatefulWidget

当继承StatelessWidget组件时&#xff0c;在组件中更新数据时页面不会立即刷新。 如果继承StatefulWidget时&#xff0c;只要在setState方法中更新数据后页面会实时更新数据。 Flutter有状态组件StatefulWidget 完整代码&#xff1a; import package:flutter/material.dart;v…

【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. 框架的…

.net core jwt 身份验证初步了解1

JWT全称Json Web Token jwt是用于身份验证的开放标准,是目前最流行的跨域认证解决方案&#xff0c;是一种基于 Token 的认证授权机制。从 JWT 的全称可以看出&#xff0c;JWT 本身也是 Token&#xff0c;一种规范化之后的 JSON 结构的 Token&#xff0c;它可以在网络之间传递信…

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

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