MySQL下载安装

下载

1.进入mysql官网,点击下列链接

2.选择server

 3.点击Archives,Archives,选择需要的版本

安装

基本是点下一步,值得注意的几点如下:

1、显示所有准备安装的MySQL相关应用,点击“[Execute]”开始执行安装

具体安装参考icon-default.png?t=N7T8https://blog.csdn.net/timelessheart/article/details/106267738

2、在cmd输入,mysql -u root -p进行验证

使用

1、登录退出

#登录
mysql -u root -proot#退出
exit# 查看当前用户名
mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

 2、库操作

# 1.查看所有数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
6 rows in set (0.00 sec)# 2.打开world数据库
mysql> use world;
Database changed# 3.查看当前所在的数据库
mysql> select database();
+------------+
| database() |
+------------+
| world      |
+------------+# 4.出示当前库里面的表
mysql> show tables;
+-----------------+
| Tables_in_world |
+-----------------+
| city            |
| country         |
| countrylanguage |
+-----------------+
3 rows in set (0.01 sec)# 5.查看world库里的表
mysql> show tables from world;
+-----------------+
| Tables_in_world |
+-----------------+
| city            |
| country         |
| countrylanguage |
+-----------------+
3 rows in set (0.01 sec)# 6.创建数据库
mysql> create database test;
Query OK, 1 row affected (0.01 sec)# 7.删除数据库
mysql> drop database test;
Query OK, 0 rows affected (0.02 sec)

3、表操作

# 1.新建表结构
mysql> create table stu(-> id int,-> name varchar(20));
Query OK, 0 rows affected (0.09 sec)
mysql> show tables;
+-----------------+
| Tables_in_world |
+-----------------+
| city            |
| country         |
| countrylanguage |
| stu             |
+-----------------+
4 rows in set (0.00 sec)# 2.出示表结构
mysql> desc stu;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)# 输出更全面的表定义信息
mysql> show create table stu \G;
*************************** 1. row ***************************Table: stu
Create Table: CREATE TABLE `stu` (`id` int(11) DEFAULT NULL,`name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)ERROR:
No query specified# 3.查看表数据
mysql> select * from stu;
Empty set (0.00 sec)# 4.删除表
mysql> drop table a;
Query OK, 0 rows affected (0.01 sec)#4.插入数据
mysql> insert into stu (id,name) values(1,'john');
Query OK, 1 row affected (0.01 sec)mysql> insert into stu (id,name) values(2,'rose');
Query OK, 1 row affected (0.01 sec)mysql> select * from stu;
+------+------+
| id   | name |
+------+------+
|    1 | john |
|    2 | rose |
+------+------+
2 rows in set (0.00 sec)# 5.删除表数据
mysql> delete from stu where id=1;
Query OK, 1 row affected (0.01 sec)mysql> select * from stu;
+------+------+
| id   | name |
+------+------+
|    2 | rose |
+------+------+
1 row in set (0.00 sec)

4、系统信息

#查看版本号
mysql> select version();
+------------+
| version()  |
+------------+
| 5.7.30-log |
+------------+
1 row in set (0.00 sec)# 查看当前日期
mysql> select current_date();
+----------------+
| current_date() |
+----------------+
| 2022-04-22     |
+----------------+
1 row in set (0.00 sec)# 查看当前时间
mysql> select current_time();
+----------------+
| current_time() |
+----------------+
| 15:56:07       |
+----------------+
1 row in set (0.01 sec)#查看当前时间戳
mysql> select current_timestamp();
+---------------------+
| current_timestamp() |
+---------------------+
| 2022-04-22 15:56:29 |
+---------------------+
1 row in set (0.00 sec)

修改表

创建一个名称为emp的表。表中包括 ename(姓名)、hiredate(雇用日期)和 sal (薪水)3个字段,字段类型分别为varchar(10)、date、int(2)。

create table emp(ename varchar(10),hiredate date,sal decimal(10,2),deptno int(2));

对于已经创建好的表,尤其是已经有大量数据的表,如果需要做一些结构上的改变,可以先将表删除(drop),然后再按照新的表定义重建表。这样做没有问题,但是必然要做一些额外的工作,比如数据的重新加载。而且,如果有服务在访问表,也会对服务产生影响。
因此,在大多数情况下,表结构的更改都使用 alter table语句,以下是一些常用的命令。
(1)修改表类型

修改表emp的ename字段定义,将varchar(10)改为varchar(20)

 mysql> alter table emp modify ename varchar(20);

(2)增加表字段

在表emp中新增加字段age,类型为int(3)

mysql> alter table emp add column age int(3);

(3)删除表字段

将字段age删除掉

mysql> alter table emp drop column age;

(4)字段改名

将age改名为age1,同时修改字段类型为int(4)

mysql> alter table emp change age age1 int(4);

change和modify都可以修改表的定义,不同的是change后面需要写两次列名,不方便。但是change的优点是可以修改列名称,modify则不能。

(5)修改字段排列顺序

前面介绍的字段增加和修改语法(ADD/CHANGE/MODIFY)中,都有一个可选项first|after column_name,这个选项可以用来修改字段在表中的位置,ADD增加的新字段默认是加在表的最后位置,而CHANGE/MODIFY默认都不会改变字段的位置。

将新增的字段 birth date加在 ename之后

mysql> alter table emp add birth date after ename;

修改字段age,将它放在最前面

mysql> alter table emp modify age1 int(3) first;

(6)更改表名

mysql> alter table emp rename emp1;

DML语句

DML 操作是指对数据库中表记录的操作,主要包括表记录的插入( insert )、更新(update)、删除(delete)和查询(select)

1.插入记录
 

向表emp中插入以下记录:ename为zzx1,hiredate为2000-01-01,sal为2000,deptno为1

mysql> insert into emp values('zzx1','2000-01-01','2000',1);

含可空字段、非空但是含有默认值的字段、自增字段,可以不用在insert后的字段列表里面出现,values后面只写对应字段名称的value。这些没写的字段可以自动设置为NULL、默认值、自增的下一个数字,这样在某些情况下可以大大缩短SQL语句的复杂性。
只对表中的ename和sal字段显式插入值

mysql> insert into emp (ename,sal) values('dony',1000);

mysql> select * from emp;
+-------+------------+---------+--------+
| ename | hiredate   | sal     | deptno |
+-------+------------+---------+--------+
| zzx1  | 2000-01-01 | 2000.00 |      1 |
| dony  | NULL       | 1000.00 |   NULL |
+-------+------------+---------+--------+
2 rows in set (0.00 sec)

insert语句还有一个很好的特性,可以一次性插入多条记录

mysql> insert into emp values('a','2001-1-2','3000',1),('b','2002-3-4','4000',2);

2.更新记录
 

表里的记录值可以通过update命令进行更改

将表emp中ename为“zzxl”的薪水(sal)从2000更改为3000

mysql> update emp set sal=3000 where ename='zzxl';

update命令可以同时更新多个表中数据

mysql> update emp a,dept b set a.sal=a.sal*b.deptno,b.deptname=a.ename where a.deptno=b.deptno;

注意:多表更新的语法更多地用在了根据一个表的字段来动态地更新另外一个表的字段。

3.删除记录
 

在emp中将ename为“b”的记录全部删除

mysql> delete from emp where ename='b';

可以一次删除多个表的数据

mysql> delete a,b from emp a,dept b where a.deptno=b.deptno and a.deptno=3;

4.查询记录

将表emp中的记录全部查询出来

mysql> select * from emp;

mysql> select ename,hiredate,sal,deptno from emp;

在实际应用中,用户还会遇到各种各样的查询要求,下面将分别介绍

(1)查询不重复的记录

mysql> select distinct deptno from emp;

(2)条件查询

查询所有deptno为1的记录

mysql> select * from emp where deptno=1;

多个条件之间还可以使用 or、and 等逻辑运算符进行多条件联合查询

mysql> select * from emp where deptno=1 and sal<3000;

(3)排序和限制

用关键字ORDER BY来实现   DESC|ASC

把emp表中的记录按照工资高低进行显示

 mysql> select * from emp order by sal;               

对于deptno相同的前两条记录,如果要按照工资由高到低排序,可以使用以下命令

mysql> select * from emp order by deptno,sal desc;

对于排序后的记录,如果希望只显示一部分,而不是全部,这时,就可以使用LIMIT关键字来实现

语法:SELECT …[LIMIT offset_start,row_count],其中offset_start表示记录的起始偏移量,row_count表示显示的行数。
在默认情况下,起始偏移量为 0,只需要写记录行数就可以,这时,实际显示的就是前 n条记录。

显示emp表中按照sal排序后的前3条记录

mysql> select * from emp order by sal limit 3;

显示emp表中按照sal排序后从第二条记录开始的3条记录

mysql> select * from emp order by sal limit 1,3;

limit经常和 order by一起配合使用来进行记录的分页显示。
(4)聚合

进行一些汇总操作,比如统计整个公司的人数或者统计每个部门的人数。

聚合操作的语法如下:
SELECT [field1,field2,…,fieldn] fun_name
FROM tablename
[WHERE where_contition]
[GROUP BY field1,field2,…,fieldn
[WITH ROLLUP]]
[HAVING where_contition]
对其参数进行以下说明。
fun_name 表示要做的聚合操作,也就是聚合函数,常用的有 sum(求和)、count(*)&nbsp;(记录数)、max(最大值)、min(最小值)。
GROUP BY关键字表示要进行分类聚合的字段,比如要按照部门分类统计员工数量,部门就应该写在 group by后面。
WITH ROLLUP是可选语法,表明是否对分类聚合后的结果进行再汇总。
HAVING关键字表示对分类后的结果再进行条件的过滤。
 

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

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

相关文章

从数字化营销与运营视角:看流量效果的数据分析

基于数据打通的“全链路”营销是当下的“时髦”&#xff0c;应用它的前提是什么&#xff1f;深度营销和运营的关键数据如何获得&#xff1f;如何利用数据进行更精准的营销投放&#xff1f;如何利用数据优化投放的效果&#xff1f;如何促进消费者的转化&#xff0c;以及激活留存…

【万亿赛道!向量数据库--AI 大模型技术底座解决方案深度分析 2024】

文末有福利&#xff01; ‍ 向量数据库作为新型技术&#xff0c;发展时间较短&#xff0c;开源和上云是目前的主流趋势。在向量数据库领域早期的探索&#xff0c;主要是以Zilliz、Weaviate和Pinecone等初创型公司引领。 在AI大模型未被普遍应用之前&#xff0c;该产品的需求较…

某某会员小程序后端性能优化

背景 某某会员小程序后台提供开放平台能力&#xff0c;为三方油站提供会员积分、优惠劵等api。当用户在油站加油&#xff0c;油站收银会调用我们系统为用户发放积分、优惠劵等。用户反馈慢&#xff0c;三方调用发放积分接口性能极低&#xff0c;耗时30s&#xff1b; 接口情况…

VSCode神仙插件——Codeium (AI编程助手)

1、安装&登录插件 安装过程中会让你登录Codeium账户&#xff0c;可以通过Google账户登录&#xff0c;或者可以注册一个Codeium账户&#xff08;如果没有弹出让你登录账户的界面&#xff0c;可以等安装结束后在右下角找到登录的地方&#xff09; 右下角显示如下图所示&#…

Vue3打包发布,刷新出现的空白页面和错误

Vue3打包发布出现的错误&#xff1a;Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of text/html. Strict MIME type checking is enforced for module scripts per HTML spec. 第一次点击访问到这个路径&…

45 mysql truncate 的实现

前言 truncate 是一个我们也经常会使用到的命令 其作用类似于 delete from $table; 但是 他会比 delete 块很多&#xff0c;这里我们来看一下 它的实现 delete 的时候会逐行进行处理, 打上 删除标记, 然后 由后台任务 进行数据处理 truncate table 的实现 执行 sql 如下 …

C++:从C语言过渡到C++

在这篇博客中&#xff0c;我将会介绍从C语言过渡到C的一些基础知识。 目录 C起源 C的关键字 输出hello&#xff0c;world ​编辑 命名空间 1.什么是命名空间 2.namespace的作用 3.域作用限定符 4.命名空间的使用 IO流 缺省参数 函数重载 引用 1.引用的定义 2.引…

汽车零配件行业看板管理系统应用

生产制造已经走向了精益生产&#xff0c;计算时效产出、物料周转时间等问题&#xff0c;成为每一个制造企业要面临的问题&#xff0c;工厂更需要加快自动化&#xff0c;信息化&#xff0c;数字化的布局和应用。 之前的文章多次讲解了企业MES管理系统&#xff0c;本篇文章就为大…

solidity实战练习1

//SPDX-License-Identifier:MIT pragma solidity ^0.8.24; contract PiggyBank{constructor()payable{emit Deposit(msg.value);//触发事件1//意味着在部署合约的时候&#xff0c;可以向合约发送以太币&#xff08;不是通过调用函数&#xff0c;而是直接在部署合约时发送&#…

中职网络安全wire0077数据包分析

从靶机服务器的FTP上下载wire0077.pcap&#xff0c;分析该文件&#xff0c;找出黑客入侵使用的协议&#xff0c;提交协议名称 SMTP 分析该文件&#xff0c;找出黑客入侵获取的zip压缩包&#xff0c;提交压缩包文件名 DESKTOP-M1JC4XX_2020_09_24_22_43_12.zip 分析该文件&…

26.Labview波形图、XY图、强度图使用精讲

我们如何使用Labview显示曲线或者制作出下面这种我们想要的曲线并随着我们输入值的变化而变化呢&#xff1f; 本文详细讲解一下每种波形图的使用方式&#xff0c;帮助大家深入了解波形图的使用技巧。 文章中所有程序均可在百度网盘下载&#xff0c;下载方式&#xff1a;复制下…

elasticsearch源码分析-04集群状态发布

集群状态发布 cluster模块封装了在集群层面执行的任务&#xff0c;如集群健康、集群级元信息管理、分片分配给节点、节点管理等。集群任务执行之后可能会产生新的集群状态&#xff0c;如果产生新的集群状态主节点会将集群状态广播给其他节点。 集群状态封装在clusterState中&…

python作业二

# 二进制转化为十进制 num input("num:")def binaryToDecimal(binaryString):he 0length len(binaryString)for i in range(length):he int(binaryString[i]) * 2 ** (length - i - 1)return heprint(binaryToDecimal(num))代码运行如下&#xff1a; import math…

ADC 性能规格-静态性能- (2) - 偏移误差( offset error)和满标度增益误差(full scale gain error)

偏移误差(Offset error) 失调(Offset) 定义:失调是指ADC输出数字代码中零位与实际模拟输入零位之间的差异。简单来说,就是当输入信号为零时,ADC输出的数字代码并不一定是零,这个偏差就是失调。影响:失调会影响ADC的整体精度,因为它在整个输入范围内引入了一个固定的偏…

攻防世界 Web_python_template_injection(flask模版注入)

学习文章&#xff1a;https://www.freebuf.com/column/187845.html https://blog.csdn.net/weixin_54515836/article/details/113778233 flask的渲染方法有render_template和render_template_string两种。 render_template()是用来渲染一个指定的文件的。使用如下 return re…

一文读懂DNS和CDN

一.什么是DNS DNS&#xff08;Domain Name System&#xff09;全称为域名系统&#xff0c;是一个将域名和IP地址相互映射的分布式服务&#xff0c;他的作用就是把一个域名解析成为IP地址。我们平时输入的网址&#xff08;或者域名&#xff09;不能被计算机直接识别&#xff0c;…

操作系统——内存管理(面试准备)

虚拟内存 单片机没有操作系统&#xff0c;每次写完代码&#xff0c;都需要借助工具把程序烧录进去&#xff0c;这样程序才能跑起来。 另外&#xff0c;单片机的CPU是直接操作内存的物理地址。 在这种情况下&#xff0c;想在内存中同时运行两个程序是不可能的&#xff0c;如果第…

Python数据分析案例49——基于机器学习的垃圾邮件分类系统构建(朴素贝叶斯,支持向量机)

案例背景 trec06c是非常经典的邮件分类的数据&#xff0c;还是难能可贵的中文数据集。 这个数据集从一堆txt压缩包里面提取出来整理为excel文件还真不容不易&#xff0c;肯定要做一下文本分类。 虽然现在文本分类基本都是深度学习了&#xff0c;但是传统的机器学习也能做。本案…

【论文速读】《面向深度学习的联合消息传递与自编码器》,无线AI的挑战和解决思路

这篇文章来自华为的渥太华无线先进系统能力中心和无线技术实验室&#xff0c;作者中有大名鼎鼎的童文。 一、自编码架构的全局收发机面临的主要问题 文章对我比较有启发的地方&#xff0c;是提到自编码架构的全局收发机面临的主要问题&#xff1a; 问题一&#xff1a;基于随…

【算法笔记自学】第 9 章 提高篇(3)——数据结构专题(2)

9.1树与二叉树 #include <cstdio>int main() {int n, m;scanf("%d%d", &n, &m);printf(n m 1 ? "Yes" : "No");return 0; } 9.2二叉树的遍历 #include <cstdio> #include <vector> using namespace std;const int…