MySQL入门到精通

news2024/9/17 7:17:15

一、创建数据库

CREATE DATABASE 数据库名称;

如果数据库存在,则会提示报错。

二、选择数据库

USE 数据库名称;

三、创建数据表

CREATE TABLE 数据表名称;

四、MySQL数据类型

MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串类型

4.1 数值类型

数值类型
类型大小用途
INT4Bytes整数值
FLOAT4Bytes单精度
DOUBLE8Bytes

双精度

4.2 字符串类型

字符串类型
类型用途
CHAR定长字符串
VARCHAR变长字符串

4.3 日期和时间类型

五、MySQL插入数据

INSERT INTO table_name (column1,column2,column3)

VALUES (value1,value2,value3)

六、查询数据库

SHOW DATABASES;

七、查询数据表

SELECT * FROM users;

八、MySQL WHERE子句

语法:

SELECT column1,column2

FROM table_name

WHERE condition;

参数说明:

column1,column2是显示列的名称

table_name是你选择查询数据的表的名称

WHERE condition是用于指定过滤条件的子句

WHERE简单实例:

1、等于条件

SELECT * FROM users WHERE username = 'test';

2、不等于条件

SELECT * FROM users WHERE username != 'test';

3、大于条件

SELECT * FROM products WHERE price > 50.00;

4、小于条件

SELECT * FROM orders WHERE order_date < '2023-01-01';

5、大于等于条件

SELECT * FROM employees WHERE salary >= 50000;

6、小于等于条件

SELECT * FROM students WHERE age <= 21;

7、组合条件

SELECT * FROM products WHERE category = 'Electronics' AND price > 100.00;

SELECT * FROM orders WHERE order_date >= '2023-01-01' OR total_amount > 1000.00;

8、模糊匹配条件

SELECT * FROM customers WHERE first_name LIKE 'J%';

9、IN条件

SELECT * FROM countries WHERE country_code IN ('US','CA','MX');

10、NOT条件

SELECT * FROM products WHERE NOT category = 'Clothing';

11、BETWEEN条件

SELECT * FROM orders WHERE order_date BETWEEN '2023-01-01' AND '2023-12-32';

12、IS NULL条件

SELECT * FROM orders WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31';

13、IS NOT NULL条件

SELECT * FROM customers WHERE email IS NOT NULL;

九、MySQL UPDATE更新

UPDATE table_name

SET column1 = value1,column2 = value2

WHERE condition

参数说明:

table_name是更细数据的表的名称

column1,column2是更新的列的名称

value1,value2是新的值,用于替换旧的值

WHERE condition是一个可选的子句

实例

1、更新单个列的值:

UPDATE employees

SET salary = 60000

WHERE employee_id = 101

2、更新多个列的值:

UPDATE orders 

STE status = 'Shipped', ship_date = '2023-03-01'

WHERE order_id = 1001;

3、使用表达式更新值

UPDATE products

SET price = price * 1.1

WHERE category = 'Electronics'

4、更新使用子查询的值

UPDATE customers 

SET total_purchases = (

        SELECT SUM(amount)

        FROM orders

        WHERE orders.customer_id = customers.customer_id

)

WHERE customer_type = 'Premium';

十、MySQL DELETE语句

语法:

DELETE FROM table_name

WHERE condition;

参数说明:

table_name是删除数据的表的名称

WHERE condition是一个可选的子句。

实例

1、删除复合条件的行

DELETE FROM students

WHERE graduation_year = 2021;

2、删除所有行

DELETE FROM orders;

3、使用子查询删除复合条件的行

DELETE FROM customers

WHERE customer_id IN(

              SELECT customer_id

              FROM orders 

              WHERE order_date < '2023-01-01'

);

十一、MySQL LIKE子句

%通配符表示零个或多个字符;_通配符表示一个字符;不区分大小写的匹配

实例:

SELECT * FROM customers WHERE last_name LIKE 'S%';

SELECT * FROM products WHERE product_name LIKE '_a%';

十二、MySQL ORDER BY(排序)语句

语法:

SELECT column1,column2

FROM table_name

ORDER BY column1 [ASC | DESC], column2 [ASC | DESC]

1.单列排序:

SELECT * FROM products

ORDER BY products_name ASC;

2.多列排序:

SELECT * FROM employees

ORDER BY department_id ASC,hire_date DESC;

3.使用数字表列列的位置

ORDER BY 3 DESC, 1 ASC;

十三、MySQL GROUP BY语句

GROUP BY语句根据一个或多个列对结果集进行分组

SELECT customer_id, SUM(order_amount) AS total_amount

FROM orders 

GROUP BY customer_id;

十四、MySQL UNION操作符

描述

MySQL UNION操作符用于连接两个以上的SELECT语句的结果组合到一个结果集合,并去除重复的行。

语法

SELECT column1,column2

FROM table1

WHERE condition1

UNION

SELECT column1,column2

FROM table2

WHERE condition2

ORDER BY column1,column2

实例

1、基本的UNION操作

SELECT city FROM customers

UNION

SELECT city FROM suppliers

ORDER BY city;

2、使用过滤条件的UNION

SELECT product_name FROM products WHERE category = 'Electronics'

UNION

SELECT product_name FROM products WHERE category = 'Clothing'

ORDER BY product_name

3、UNION操作中的列数和数据类型必须相同

SELECT first_name,last_name FROM employees

UNION

SELECT department_name,NULL FROM departments

ORDER BY first_name;

4、使用UNION ALL不去除重复行

SELECT city FROM customers

UNION ALL

SELECT city FROM suppliers

ORDER BY city;

十五、MySQL连接的使用

INNER JOIN(内连接):获取两个表中字段匹配关系的记录

LEFT JOIN(左连接):获取左表所有记录

RIGHT JOIN(有连接):获取右表所有记录

INNER JOIN

1、简单的INNER JOIN:

SELECT orders.order_id,customers.customer_name

FROM orders

INNER JOIN customers ON orders.customer_id = customers.customer_id;

2、多表INNER JOIN:

SELECT orders.order_id,customers.customer_name,products.product_name

FROM orders

INNER JOIN customers ON orders.customer_id = customers.customer_id

INNER JOIN order_items ON orders.order_id = order_items.order_id

INNER JOIN products ON order_items.product_id = products.product_id;

3、使用WHERE子句进行过滤

SELECT orders.order_id,customers.customer_name

FROM orders

INNER JOIN customers ON orders.customer_id = customers.customer_id

WHERE orders.order_date >= '2023-01-01';

LEFT JOIN

1、简单的LEFT JOIN:

SELECT orders.order_id,customers.customer_name

FROM orders

LEFT JOIN customers ON orders.customer_id = customers.customer_id;

2、多表LEFT JOIN:

SELECT orders.order_id,customers.customer_name,products.product_name

FROM orders

LEFT JOIN customers ON orders.customer_id = customers.customer_id

LEFT JOIN order_items ON orders.order_id = order_items.order_id

LEFT JOIN products ON order_items.product_id = products.product_id;

3、使用WHERE子句进行过滤

SELECT orders.order_id,customers.customer_name

FROM orders

LEFT JOIN customers ON orders.customer_id = customers.customer_id

WHERE orders.order_date >= '2023-01-01';

RIGHT JOIN和LEFT JOIN使用方法是一样的。

十六、MySQL ALTER命令

描述:当我们需要修改数据表名或者数据表字段时,就需要使用到MySQL ALTER命令

1、添加列

ALTER TABLE table_name

ADD COLUMN new_column_name datatype;

实例

ALTER TABLE employees

ADD COLUMN birth_date DATE;

2、修改列的数据类型

ALTER TABLE TABLE_NAME

MODIFY COLUMN column_name new_datatype

实例

ALTER TABLE employees

MODIFY COLUM salary DECIMAL(10,2);

3、修改列名

ALTER TABLE table_name

CHANGE COLUMN old_column_name new_column_name datatype;

实例

ALTER TABLE employees

CHANGE COLUMN old_column_name new_column_name VARCHAR(255);

4、删除列

ALTER TABLE table_name

DROP COLUMN column_name;

实例

ALTER TABLE employees

DROP COLUMN birth_date;

5、添加PRIMARY KEY

ALTER TABLE table_name

ADD PRIMARY KEY (column_name);

实例

ALTER TABLE employees

ADD PRIMARY KEY (employee_id)

6、添加FOREIGN KEY

ALTER TABLE child_table

ADD CONSTRAINT fk_name

FOREIGN KEY (column_name)

REFERENCES parent_table (column_name)

实例

ALTER TABLE orders

ADD CONSTRAINT fk_customer

FOREIGN KEY (customer_id)

REFERENCES customers (customer_id)

7、修改表名

ALTER TABLE old_table_name

RENAME TO new_table_name;

实例ALTER TABLE employees

RENAME TO staff;

十七、MySQL处理重复数据

SELECT DISTINCT last_name,first_name

FROM person_tb1;

十八、MySQL删除数据库

drop命令删除数据库

DROP DATABE <datatbase_name>

十九、MySQL删除数据表

DROP TABLE table_name;

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

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

相关文章

Data Filtering Network论文浅析

time2023-09paperhttps://arxiv.org/abs/2309.17425codehttps://huggingface.co/apple/DFN5B-CLIP-ViT-H-14-378org.Apple个人博客地址http://myhz0606.com/article/dfn Motivation 训练一个好的CLIP模型依赖大规模&#xff0c;高质量的训练数据。通过爬虫&#xff0c;可以很…

S7-1200与G120变频器CU240E-2控制单元通过353报文实现PN通信的基本方法

S7-1200与G120变频器CU240E-2控制单元通过353报文实现PN通信的基本方法 西门子报文353 PKW+PZD-2/2, 6个字中前4个字是PKW用,后2个字是PZD用, 结合以上内容, 可以知道第5个字是STW1控制字,第6个字是转速给定值(PLC输出);第5个字是ZSW1是状态字,第6个字是当前转速值(P…

LeetCode:快乐数(202)

目录 题目 代码思路 双指针 代码实现 题目 202. 快乐数 - 力扣&#xff08;LeetCode&#xff09; 编写一个算法来判断一个数 n 是不是快乐数。 [ 快乐数 ] 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程…

ThinkPHP5 5.0.23-rce远程代码执行漏洞复现

漏洞描述 ThinkPHP是一款运用极广的PHP开发框架。其版本5中&#xff0c;由于框架对控制器名没有进行足够的检测&#xff0c;会导致在没有开启强制路由的情况下可执行任意方法&#xff0c;从而导致远程命令执行漏洞。 启动容器 docker-compose up -d 查看端口 docker ps 端口为…

【C++进阶】hash表的封装

文章目录 hash表哈希表的关键组成部分哈希表的优缺点优点&#xff1a;缺点&#xff1a; 常见应用场景 开放定址法实现hash表负载因子 (Load Factor)负载因子的意义负载因子的影响再散列 (Rehashing)示例 整体框架insertFinderasehash桶封装框架insertfinderase~HashTable() 总结…

从路径优化学习FastPlanner之B样条曲线平滑(二):FastPlanner中B样条曲线代码理解与解读

参考别人的博客学习 根据之前一章只是大致了解了B样条数学原理&#xff0c;实际读代码还有疑惑。 控制点是什么&#xff1f;和规划出的路径点什么关系&#xff1f; 控制点可以说我们规划出的路径点&#xff0c;即n等于轨迹点个数。也可以不是轨迹点&#xff0c;通过线性方程反解…

Einsum(Einstein summation convention)

Einsum&#xff08;Einstein summation convention&#xff09; 笔记来源&#xff1a; Permute和Reshape嫌麻烦&#xff1f;einsum来帮忙&#xff01; The Einstein summation convention is a notational shorthand used in tensor calculus, particularly in the fields of …

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议&#xff0c;有时候说的内容比较广需要引用多份的数据&#xff0c;我记录起来有一定难度&#xff0c;所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链…

9.7(QT.Day 1)

一、自由发挥登录窗口的应用场景&#xff0c;实现一个登录窗口界面 要求&#xff1a;每行代码都有注释 【需要用到的图片或者动图&#xff0c;自己去网上找】 1.mywidget.h代码 #ifndef MYWIDGET_H #define MYWIDGET_H#include <QWidget> #include <QIcon> //图…

C++之格式化日期时间为字符串(精确到毫秒)

C11中提供了获取时间的chrono库&#xff0c;但是格式化显示太方便&#xff1b;C11还提供了格式化时间iomanip库&#xff0c;通过其put_time方法可以格式化时间到秒&#xff0c;要显示毫秒&#xff0c;就需要自己处理了。 #include <chrono> #include <string> #in…

css flex与inline-flex的区别

1、flex与inline-flex布局&#xff0c;都是弹性布局&#xff0c;盒状容器布局。 Flex 布局是什么&#xff1f;_w3cschool 2、下面一个实例来说明一下&#xff1a; 有一个要求&#xff0c;要求item增多的时候&#xff0c;不会换行&#xff0c;并且container容器也会随时item的…

【机器学习】我小学二年级妹妹都能理解的线性回归算法

什么是线性回归&#xff1f; 我小学二年级的妹妹想用压岁钱买房子&#xff0c;售楼广告上写着100万可以买100的房子&#xff0c;200万可以买200的房子&#xff0c;但是我的妹妹觉得那些房子都太小了&#xff0c;想买300的房子&#xff0c;那她应该要花多少钱呢&#xff1f; 对…

DBMS-2.2 数据库设计(2)——数据库规范化设计理论

本文章的素材与知识来自李国良老师和冠宇老师。 依赖理论 对于关系数据库中的依赖&#xff0c;分为函数依赖、多值依赖和连接依赖。 一.函数依赖 1.函数依赖 &#xff08;1&#xff09;定义&#xff1a; &#xff08;2&#xff09;理解&#xff1a; 通俗地讲&#xff0c;…

【Linux】借命令行参数的引导,探索环境变量的奥秘

目录 1.命令行参数 1.1.概念&#xff1a; 1.2.利用命令行参数打造计算器&#xff1a; 2.环境变量 2.1.环境变量是什么&#xff1f; 2.2.有什么方法可以不用带路径&#xff0c;直接就可以运行自己的程序呢&#xff1f; 法一&#xff1a; 法二&#xff1a; 2.3.通过代码…

PostgreSQL技术内幕9:PostgreSQL事务原理解析

文章目录 0.简介1.PG事务整体介绍1.1 事务类型介绍 1.2 事务模块介绍2. 代码分析 0.简介 有了上一篇数据库事务并发控制协议的介绍&#xff0c;对于数据库事务和并发控制有了基本的认识&#xff0c;本文将介绍PG事务模块&#xff0c;主要介绍PG支持的事务类型&#xff08;普通…

git为不同的项目设置不同的提交作者

方法1&#xff1a;找到项目的.git文件夹打开 打开config在下面添加自己作者信息 [user]name 作者名email 邮箱方法2&#xff1a;直接在.git文件夹设置作者名&#xff08;不使用–global参数&#xff09; git config user.name "xxxxx"如果想要修改之前提交的…

银行结算业务

1.1 银行本票 银行本票是由银行签发的,承诺自己在见票时无条件支付票款给收款人或持票人的业务。银行本票按票面划分为定额本票和不定额本票,按币种划分为人民币银行本票和外币银行本票。人民币银行本票仅在同一交换区域内使用,资金清算利用当地人民银行组织的资金清算形式…

vllm源码解析(五):LLM模型推理

八 模型推理细节探索 8.1 回顾下step的流程 def step(self) -> List[Union[RequestOutput, EmbeddingRequestOutput]]:# 多GPU并行推理时走AsyncLLMEngine分支。如果进入当前LLMEngine,性能会下降&#xff0c;这里会抛出异常。if self.parallel_config.pipeline_parallel_s…

基于机器学习的电商优惠券核销预测

1. 项目简介 随着移动互联网的快速发展&#xff0c;O2O&#xff08;Online to Offline&#xff09;模式已成为电商领域的一大亮点。优惠券作为一种有效的营销工具&#xff0c;被广泛应用于吸引新客户和激活老用户。然而&#xff0c;传统的随机投放方式往往效率低下&#xff0c;…

JavaWeb【day11】--(SpringBootWeb案例)

SpringBootWeb案例 前面我们已经实现了员工信息的条件分页查询以及删除操作。 关于员工管理的功能&#xff0c;还有两个需要实现&#xff1a; 新增员工 修改员工 首先我们先完成"新增员工"的功能开发&#xff0c;再完成"修改员工"的功能开发。而在&quo…