【MySQL】基础语法总结

MySQL 基础语句

一、DDL 数据库定义语言

1.1CREATE 创建

1.1.1 创建数据库

语法结构

CREATE DATABASE database_name;

示例

CREATE DATABASE demo;

1.1.2 创建表

语法结构

CREATE TABLE 表名 (1 数据类型,2 数据类型,
  ...
);

示例

CREATE TABLE new_user (
   id INT PRIMARY KEY,
		name VARCHAR(50),
		age INT
);

1.1.3 创建视图

语法格式

create view <视图名> as select查询语句

示例

create view user_view as select id,user_id,user_name from `user`

select * from user_view

1.1.4 创建索引

索引名建议以 idx开头。

语法格式

CREATE INDEX 索引名 ON 表名 (列名);

示例

CREATE INDEX idx_user_id ON user (user_id);

可通过explain进行验证

explain select * from user where user_id = 'wu'

在这里插入图片描述

1.2 ALTER 修改

1.2.1 添加列

语法结构

ALTER TABLE 表名 ADD 列名 数据类型;

示例

ALTER TABLE user ADD age int(11) DEFAULT null COMMENT '年龄';

1.2.2 删除列

语法结构

ALTER TABLE 表名 DROP 列名;

示例

ALTER TABLE user DROP user_age;

1.2.3 修改列名

语法结构

ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型;

示例

ALTER TABLE user CHANGE age user_age int(11) DEFAULT null COMMENT '新年龄';

1.2.4 修改列数据类型

语法结构

ALTER TABLE 表名 MODIFY 列名 新数据类型;

示例

ALTER TABLE user MODIFY user_age varchar(16);

1.2.5 修改表名

语法结构

ALTER TABLE 表名 RENAME TO 新表名;

示例

ALTER TABLE user RENAME TO new_user;

1.2.6 创建索引

语法结构

ALTER TABLE 表名 ADD INDEX 索引名 (列名);

示例

ALTER TABLE user ADD INDEX idx_user_id (user_id);

1.2.7 删除索引

语法结构

ALTER TABLE 表名 DROP INDEX 索引名;

示例

ALTER TABLE user DROP INDEX idx_user_id;

1.3 DROP 删除

1.3.1 删除库

语法结构

DROP DATABASE 数据库名称

示例

DROP DATABASE demo

1.3.2 删除表

语法结构

DROP TABLE 表名;

示例

DROP TABLE new_user;

1.3.3 删除视图

语法结构

DROP VIEW view_name;

示例

DROP VIEW user_view;

二、DML 数据库操作语言

2.1 INSERT

2.1.1 插入单条

    INSERT INTO USER (user_id,user_name,create_time,dept_id) VALUES('sa','saname',now(),1)

2.1.2 插入多条

INSERT INTO USER (
	user_id,
	user_name,
	create_time,
	dept_id
)
VALUES
	('sa1', 'saname1', now(), 1),
	('sa2', 'saname2', now(), 1),
	('sa3', 'saname3', now(), 1)

2.2 UPDATE

UPDATE USER
SET dept_id = 2
WHERE
	user_id = 'sa2'

2.3 DELETE

delete from user where user_id = 'sa1'

三、DQL 数据库查询语言

3.1 基础语法结构

select <列名>
from <表名>
where <筛选条件>
group by <列名>
having <聚合筛选条件>
order by <排序字段>
limit <条数限制>

3.2 常见的查询语句

3.2.1 条件查询

大于、小于、不等于

大于

select * from user  where id > 5

小于

select * from user  where id < 5

不等于

select * from user  where id != 5

select * from user  where id <> 5
BETWEEN 介于两者范围之内

注意:是包括在内,如下所示 大于等于,而不是大于

select * from user  where id BETWEEN 1 and 3
select * from user  where id >=1 and id <=3
In 在某个范围之内
select * from user  where id in (1,2,4)

3.2.2 逻辑查询

AND
select * from user  where id = 2 and user_id = 'wu'
OR
select * from user  where id =1 or user_id = 'wu'

3.2.3 DISTINCT 查询不重复

select DISTINCT(user_name) from user 

3.2.4 Like 模糊查询

select * from user  where user_id like 'sa%'

3.2.5 Order 排序

倒序

select * from user  order by id DESC

顺序

select * from user  order by id ASC

3.2.6 GROUP BY 分组

select * from user GROUP BY dept_id

3.2.7 HAVING 分组限制

select * from user GROUP BY dept_id HAVING id > 1

3.2.8 LIMIT 限制条数

select * from user limit 0,10;
         
select * from user limit 1;

3.3 连接查询

3.3.1 内连接

在这里插入图片描述

SELECT
	*
FROM
	USER t1
INNER JOIN dept t2 ON t1.dept_id = t2.id

3.3.2 全连接

查询出左表和右表所有数据,但是去除两表的重复数据;

在这里插入图片描述

SELECT
	*
FROM
	USER t1
FULL JOIN dept t2 ON t1.dept_id = t2.id

以上代码执行会出现错误,因为MYSQL 不支持全连接!!!

3.3.3 左连接

左连接是左边表的所有数据都有显示出来,右边的表数据只显示共同有的那部分,没有对应的部分只能补空显示,所谓的左边表其实就是指放在left join的左边的表;

在这里插入图片描述

    select * from user t1 left join dept t2 on t1.dept_id  = t2.id

3.3.4 右连接

右连接正好是和左连接相反的,这里的右边也是相对right join来说的,在这个右边的表就是右表;

在这里插入图片描述

    select * from user t1 right join dept t2 on t1.dept_id  = t2.id   

3.4 常用函数

3.4.1 聚合函数

count

示例

select count(1) from user

select count(*) from user

select count(id) from user
sum

示例

select sum(id) from user
max、min

示例

select max(id) from user

select min(id) from user

3.4.2 LENGTH 字符长度

示例

select user_id , LENGTH(user_id) from user

3.4.3 CASE WHEN 分支函数

语法结构

CASE 
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE result
END

示例

SELECT
	CASE 
		WHEN dept_id is NULL THEN '无部门'
		ELSE '有部门'
	END as DeptId,
	user_id,user_name

FROM
	USER;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软考A计划-网络工程师-复习背熟-数据通信基础和局域网技术

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

2.3 数据模型

思维导图&#xff1a; 前言&#xff1a; 我的理解&#xff1a; 这段话介绍了概念模型和数据模型之间的关系&#xff0c;以及数据模型的定义和重要性。具体解读如下&#xff1a; 1. **概念模型**&#xff1a;它是一种描述现实世界数据关系的抽象模型&#xff0c;不依赖于任何…

深度学习经典检测方法的概述

深度学习经典的检测方法 two-stage&#xff08;两阶段&#xff09;&#xff1a;Faster-rcnn Mask-Rcnn系列 两阶段&#xff08;two-stage&#xff09;是指先通过一个区域提取网络&#xff08;region proposal network&#xff0c;RPN&#xff09;生成候选框&#xff0c;再通过…

信息技术01--初/高中--选择真题汇总(197道题)

文章目录 1 真题 01-102 真题 11-203 真题 21-304 真题 31-405 真题 41-506 真题 51-607 真题 61-708 真题 71-809 真题 81-9010 真题 91-10011 真题 101-11012 真题 111-12013 真题 121-13014 真题 131-14015 真题 141-15016 真题 151-16017 真题 161-17018 真题 171-18019 真…

计算机网络 概述部分

目录 计算机网络在信息时代的作用 计算机网络的重要特征 网络&#xff0c;internet,Internet的区别 局域网 广域网的区别 网络协议的分层 计算机网络在信息时代的作用 计算机网络的重要特征 连通性&#xff1a;彼此联通&#xff0c;交换信息 共享性&#xff1a;信息共享…

FPGA时序分析与约束(3)——时钟不确定性

一、前言 在之前的文章中&#xff0c;我们介绍了组合电路的时序和时序电路的时序问题&#xff0c;在阅读本文章之前&#xff0c;强烈推荐先阅读完本系列之前的文章&#xff0c;因为这是我们继续学习的理论的理论基础&#xff0c;前文链接&#xff1a; FPGA时序分析与约束&…

【K8S系列】深入解析k8s网络插件—Cilium

序言 做一件事并不难&#xff0c;难的是在于坚持。坚持一下也不难&#xff0c;难的是坚持到底。 文章标记颜色说明&#xff1a; 黄色&#xff1a;重要标题红色&#xff1a;用来标记结论绿色&#xff1a;用来标记论点蓝色&#xff1a;用来标记论点 在现代容器化应用程序的世界中…

朝夕光年游戏自动化测试实践

朝夕光年是面向全球用户与开发者的游戏研发与发行业务品牌&#xff0c;致力于服务全球玩家&#xff0c;帮助玩家在令人惊叹的虚拟世界中一起玩耍与创造。 在游戏的研发过程中&#xff0c;游戏自动化一直是开展难度较大的工程&#xff0c;具体包括机房机架、设备调度、软件框架、…

【Pandas 入门-5】Pandas 画图

Pandas 画图 除了结合 matplotlib 与 seaborn 画图外&#xff0c;Pandas 也有自己的画图函数plot&#xff0c;它的语法一般为&#xff1a; DataFrame.plot(xNone,yNone, kindline,subplotsFalse, titleNone)x横坐标数据y纵坐标数据kind默认是线图&#xff0c;还可以是‘bar’…

c++ opencv将彩色图像按连通域区分

要将彩色图像按连通域区分&#xff0c;您可以使用 OpenCV 中的 cv::connectedComponents 函数。 下面是一个简单的示例代码&#xff0c;说明如何使用 cv::connectedComponents 函数来检测并标记图像中的连通域&#xff1a; #include <opencv2/opencv.hpp> #include <…

Docker技术--Docker中的网络问题

1.docker中的网络通信 如果想要弄清楚docker中的网络通信问题,其实需要弄清楚这几个问题就可以:容器与容器之间的通信、容器与外部网络之间的通信、外部网络与容器之间的通信。 -a:容器与容器之间的通信,如下所示: 在默认情况下,docker使用网桥(Bridge模式)与NAT通信。这…

CSS中你不得不知道的css优先级

在我们定义css样式时&#xff0c;经常出现两个或更多规则应用在同一元素上&#xff0c;这时就会出现优先级的问题。其实css为每一种基础选择器都分配了一个权重。 我们简化理解&#xff1a; CSS权重计算&#xff1a; 最顶层&#xff1a;!important 权重值&#xff1a;…

算法通关村14关 | 堆结构

1. 堆的概念与特征 堆是将一组数据按照完全二叉树的存储顺序&#xff0c;将数据存储在一维数组中的结构&#xff0c;对的结构有两种&#xff0c;一种称为大顶堆&#xff0c;一种称为小顶堆。 小顶堆&#xff1a;任意节点的值均小于等于它的左右孩子&#xff0c;并且最小的值位于…

数据通信——传输层TCP(可靠传输原理的ARQ)

引言 上一篇讲述了停止等待协议的工作流程&#xff0c;在最后提到了ARQ自动请求重传机制。接下来&#xff0c;我们就接着上一篇的篇幅&#xff0c;讲一下ARQ这个机制 还是这个图来镇楼 ARQ是什么&#xff1f; 发送端对出错的数据帧进行重传是自动进行的&#xff0c;因而这种…

【iOS】折叠cell

文章目录 前言一、实现效果二、折叠cell的实现原理三、实现折叠cell的高度变化四、实现选中点击的单元格总结 前言 在暑假的3GShare中用到了折叠cell控件&#xff0c;特此总结博客记录 一、实现效果 二、折叠cell的实现原理 首先我们需要知道ScrollView的是TableView的父类&a…

Java从入门到精通-流程控制(一)

流程控制 1.复合语句 复合语句&#xff0c;也称为代码块&#xff0c;是一组Java语句&#xff0c;用大括号 {} 括起来&#xff0c;它们可以被视为单个语句。复合语句通常用于以下情况&#xff1a; - 在控制结构&#xff08;如条件语句和循环&#xff09;中包含多个语句。 - …

肖sir__linux详解__002(系统命令)

linux系统命令 1、df 查看磁盘使用情况 &#xff08;1&#xff09;df 查看磁盘使用情况&#xff08;按kb单位显示&#xff09; &#xff08;2&#xff09;df -h 按单位显示磁盘使用情况 2、top 实时查看动态进程 &#xff08;1&#xff09;top 详解&#xff1a; 第一行&…

Python网络编程详解

概要 Python作为一种强大的编程语言&#xff0c;拥有丰富的网络编程库和框架&#xff0c;能够方便地进行各种网络编程任务。本文将介绍Python网络编程的基础知识&#xff0c;包括socket编程和HTTP协议&#xff0c;然后深入探讨一些流行的Python Web框架&#xff0c;包括Flask和…

Android JNI系列详解之ndk编译工具环境变量配置

一、前提 之前是只介绍了CMake编译工具的使用&#xff0c;现在介绍另一种原生&#xff08;NDK自带的脚本工具&#xff09;自带的编译方式&#xff1a;ndk-build&#xff0c;想要使用ndk-build编译工程&#xff0c;我们需要配置全局的环境变量。 二、配置环境变量 找到ndk在电脑…

2023腾讯全球数字生态大会预约报名入口

报名入口 2023腾讯全球数字生态大会即将开启&#xff0c;点击打开预约报名入口。 主题与介绍 主题 2023腾讯全球数字生态大会将聚焦产业未来发展新趋势&#xff0c;针对云计算、大数据、人工智能、安全、SaaS等核心数字化工具做关键进展发布&#xff0c;并联合生态伙伴推出最…