MySQL基础篇总结

 参考:黑马程序员MySQL基础视频链接

 数据库基本操作

启动与停止

1.第一种方式:

1>以管理员身份运行cmd

2>在命令行窗口中输入:

 启动:net start mysql80停止:net stop mysql80

 

2.第二种方式: 

1>Win+R快捷方式打开如下:

        输入:services.msc

2>找到MySQL80

 

3>双击:

 

4>这里我选择的是开机自启动

 

客户端连接

1.第一种方式:通过MySQL提供的客户端命令行工具

 

2.第二种方式:通过命令行工具执行命令

mysql [-h 127.0.0.1] [-P 3306] -u 用户 -p

注意:

1.[]中可省略

2.使用这种方式时,需要配置PATH环境变量

 SQL

1.DDL(数据定义语言)

数据库操作

查询所有数据库:
show databases;
查询当前数据库:
select datebase();
创建数据库:
create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];
删除数据库:
drop database [if exists] 数据库名;
使用数据库:
use 数据库名;

表操作

查询:
查询当前数据库所有表:
show tables;
查询表结构:
desc 表名;
查询指定表的建表语句:
show create table 表名;
创建:
create table 表名(字段1 字段1类型[comment '注释'],字段2 字段2类型[comment '注释'],字段3 字段3类型[comment '注释'],.......字段n 字段n类型[comment '注释']) [comment '注释'];       
修改:
添加字段:
alter table 表名 add 字段名 类型(长度) [comment '注释'] [约束];
修改数据类型:
alter table 表名 modify 字段名 新数据类型(长度);
修改表名:
alter table 表名 rename to 新表名;
删除:
删除表:
drop table [if exists] 表名;
删除指定表并重新创建该表:
truncate table 表名;

2.DML(数据操作语言)

添加数据(insert)

给指定字段添加数据:
insert into 表名 (字段1,字段2......) values(值1, 值2......);
给全部字段添加数据:
insert into 表名 values(值1, 值2......);
批量添加数据:
insert into 表名 (字段1,字段2......) values(值1, 值2......),(值1, 值2......),(值1, 值2......);insert into 表名 values(值1, 值2......),(值1, 值2......),(值1, 值2......);

注意:

        1.插入数据时要按注意顺序

        2.字符串和日期型数据应该包含在引号中

        3.插入的数据大小要合法

修改数据(update)

update 表名 set 字段1=值1,字段2=值2......[where 条件];

注意:

       如果没有条件,则会修改整张表

删除数据(delete)

delete from 表名 [where 条件]

注意:

        1.如果没有条件,则会删除整张表的数据

        2.delete不能删除某一字段的值


 

3.DQL(数据查询语言)

编写顺序:

select 字段列表from 表名列表where 条件列表group by 分组字段列表having 分组后条件列表order by 排序字段列表limit 分页参数;

基本查询

查询多个字段:
select 字段1,字段2,字段3...from 表名;select * from 表名;
设置别名:
select 字段1[as 别名1],字段2 [as 别名2]......from 表名;
去除重复记录:
select distinct 字段列表 from 表名;

条件查询

语法:

select 字段列表 from 表名 where 条件列表;

条件:

比较运算符功能
>
>=
<
<=
=
<> 或 !=不等于
between...and...在某个范围之内
in(...)在in之后的括号中,多选一
like 占位符模糊匹配(_匹配单个字符,%匹配任意个字符)
is null
and 或 &&并且
or 或 ||
not 或 !

eg:

#二、条件查询
#select 字段列表 from 表名 where 条件列表;
#1.查询年龄等于25的员工
select * from emp where age = 25;#2.查询年龄小于20的员工
select  * from emp where age < 20;#3.查询没有身份证信息的员工
select * from emp where idcard is null;#4.查询有身份证信息的员工
select * from emp where idcard is not null;#5.查询年龄不等于18的员工
select * from emp where age != 18;
select * from emp where age <> 18;#6.查询年龄在20岁到25岁(包含25)之间的员工信息
select * from emp where age > 20 && age <= 25;
select * from emp where age > 20 AND age <= 25;#两端都包含
select * from emp where age between 15 and 25;#7.查询性别为女且年龄小于25的员工信息
select * from emp where gender = '男' && age < 25;#8.查询年龄等于15或者20或者25的员工
select * from emp where age = 15 || age = 20 || age = 25;
select * from emp where age = 15 or age = 20 or age = 25;
select * from emp where age in(15, 20, 25);#9.查询姓名为两个字的员工 模糊匹配
select * from emp where name like '___';#10.查询身份证号最后一位为X的员工
select * from emp where idcard like '%X';

聚合函数

select 聚合函数(字段列表) from 表名;

注意:

        对一列进行计算 所有null值不参与聚合函数的计算

函数功能
count统计数量
max最大值
min最小值
avg平均值
sum求和

eg:

#三、聚合函数
#对一列进行计算 所有null值不参与聚合函数的计算
#select 聚合函数(字段列表) from 表名;#1.统计数量
select count(*) from emp;#2.统计企业员工的平均年龄
select avg(age) from emp;#3.最大年龄
select max(age) from emp;#4.最小年龄
select min(age) from emp;#5.统计北京地区员工年龄之和
select sum(age) from emp where workaddress = '北京';

分组查询

select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
where
分组之前执行,不满足where条件的不参与分组,where不能对聚合函数进行判断
having
分组之后对结果进行过滤,having可以对聚合函数进行判断

eg:

#1.根据性别分组, 统计男性与女性的数量
select gender, count(*) from emp group by gender;#2.根据性别分组,统计男性和女性的平均年龄
select  gender, avg(age) from emp group by gender;#3.查询年龄小于25的员工, 并根据工作地址分组,获取员工数量大于等于3的工作地址
select workaddress, count(*) address_count from emp where age <= 25 group by workaddress having count(*) > 1;

排序查询

select 字段列表 from 表名 order by 字段1 排序方式1, 字段2 排序方式2;
asc升序(默认)
desc降序

eg:

#1.根据年龄对公司员工进行升序排序
select * from emp order by age asc;#2.根据年龄对公司员工进行降序排序
select * from emp order by age desc#3.根据年龄升序 根据id降序
select * from emp order by age asc, id desc;

分页查询

select 字段列表 from 表名 limit 起始索引, 查询记录数;

eg:

#1.查询第1页员工数据,每页展示2条记录
select * from emp limit 0, 2;#2.查询第2页员工数据,每页展示10条数据 ------>(页码 - 1)*页展示记录数
select * from emp limit 2, 2;

 

4.DCL

管理用户

注意:

        主机名可以使用%通配

查询用户:
use mysql;
select * from user;
创建用户:
create user '用户名'@‘主机名’ identified by '密码';
修改用户密码:
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';
删除用户:
drop user '用户名'@'主机名';

权限控制

权限说明
all, all privileges所有权限
select查询数据
insert插入数据
update修改数据
delete删除数据
alter修改表
drop删除数据库/表/视图
create 创建数据库/表
查询权限:
show grants for '用户名'@'主机名';
授予权限:
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';

注意:

        授权时数据库名和表名可以用*进行通配,代表所有

撤销权限:
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';

 




如有错误,欢迎指正!!!

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

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

相关文章

【可视化大屏开发】19. 加餐-百度地图API实现导航加线路热力图

需求 Web端使用场景中会涉及到地图导航路线情况&#xff0c;并利用热力图显示路况信息。 实现效果如下&#xff1a; 输入起始地点&#xff0c;选择并开始导航 最终效果 思路步骤 利用百度地图API显示地图交通拥堵情况的热力图&#xff0c;需要按照以下步骤进行开发 步骤1&a…

9.Godot数组|遍历|静态变量|对象|调试

数组和字典的遍历 数组的概念 数组是一组数据的集合。在程序中负责批量处理数据。数组中的元素可以包括各个类型的数据&#xff0c;也可以对数组内数据类型进行限定。可以通过 数组名【数字】 的形式来访问数组元素&#xff0c;数字 0 代表数组的第一个元素。数组可以通过调用…

【大数据】TiDB: A Raft-based HTAP Database

文章目录 数据库知识介绍数据库系统的ACID特性分布式系统和CAP理论关系型数据库与非关系型数据库关系型数据库非关系型数据库 OldSQL、NoSQL、NewSQLOldSQLNoSQLNewSQL OLTP、OLAP、HTAP 前言&#xff1a;为什么选择TiDB学习&#xff1f;pingCAP介绍TiDB介绍TiDB的影响力TiDB概…

Java发送邮件 启用SSL

使用的maven依赖: <dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.4.7</version> </dependency> 配置文件mail.properties如下: # 邮箱配置 email.username=your-email@exa…

[Java EE] 多线程(三):线程安全问题(上)

1. 线程安全 1.1 线程安全的概念 如果多线程环境下代码运行的结果不符合我们的预期,则我们说存在线程安全问题,即程序存在bug,反之,不存在线程安全问题. 1.2 线程不安全的原因 我们下面举出一个线程不安全的例子:我们想要在两个线程中对count进行操作 public class Demo9 …

ubuntu sysctl.conf net.core nofile

Ubuntu 20.04.4 修改系统的文件描述符限制 设置网络接收缓冲区 Configuring open file limits UDP buffe echo "* soft nofile 32000000" >> /etc/security/limits.conf echo "* hard nofile 128000000" >> /etc/security/limits.conf echo …

山东大学操作系统实验一(Linux虚拟机实现)

目录 实验题目 实验要求 示例程序 主程序 头文件 重点代码解析 一、main函数的参数 参数介绍 参数输入方式 本块代码 二、信号处理 本块代码 原理介绍 实现效果 三、kill函数 功能介绍 使用方式 本块代码 四、头文件处理 本块代码 代码作用 实验程序 …

ELK 与 EFK的介绍和对比

ELK 与 EFK的介绍和对比 ELK 和 EFK 分别是两种开源日志管理和分析平台的缩写&#xff0c;它们均基于 Elasticsearch、Kibana 这两个核心组件&#xff0c;但在日志收集阶段采用了不同的工具。下面详细解释这两个术语&#xff1a; ELK Stack ELK 是指 Elasticsearch, Logstas…

微调Llama3实践并基于Llama3构建心理咨询EmoLLM

Llama3 Xtuner微调Llama3 EmoLLM 心理咨询师

【嵌入式DIY实例】-称重计

DIY称重计 文章目录 DIY称重计1、硬件准备1.1 HX711 称重传感器模块2、硬件接线原理图3、代码实现在本文中,我们将使用数字体重秤 HX711 称重传感器模块来实现一个简易的称重计。 HX711 模块非常适合测量重量、力或任何其他可以以克为单位的东西。 该模块易于使用,可以连接到…

SpringBoot-餐饮业供应商管理系统-94116

SpringBoot餐饮业供应商管理系统 摘 要 随着餐饮业竞争的加剧&#xff0c;不仅需要有吸引力的菜肴&#xff0c;还需要先进的管理手段&#xff0c;才能在餐饮业站稳脚跟。通过完善的餐饮业供应商管理系统&#xff0c;不仅可以帮助餐饮企业在物流配送、商品管理等方面有所改进&a…

【C++风云录】解锁智慧之门:物联网安全工具和库助力打造安全可靠的智能家居

物联网安全&#xff1a;保护智能家居和设备数据的关键 前言 随着物联网的快速发展&#xff0c;智能家居和物联网设备正成为我们日常生活中不可或缺的一部分。然而&#xff0c;随之而来的是对设备安全性的关注&#xff0c;因为这些设备存储了大量的个人和敏感数据。为了确保智…

代码随想录总结|60天代码随想录训练结束(图论没开)

今年2月19日晚上我辗转反侧&#xff0c;看着目标院校复试群发呆。大学3年&#xff0c;前两年生病养病&#xff0c;后半年家里出了状况&#xff0c;玉玉了半学期。算是一事无成了&#xff0c;寒假尝试着刷LeetCode&#xff0c;就从B站上找教程&#xff0c;就找到了卡哥。看了一下…

Python根据公募基金在一定时期内持有的股票数据进行社会网络分析

【背景】根据提供的公募基金在一定时期内持有的股票数据&#xff0c;构建一个社会网络分析框架&#xff0c;度量每个基金在每年的度中心度、介数中心度和特征向量中心度&#xff0c;并对相关数据做出简要说明。 【代码】 import networkx as nx import pandas as pd import n…

Scala 第二篇 算子篇

Scala 第二篇 算子篇 上接&#xff1a;Scala 第一篇 基础篇 一、数组方法 1、数组的遍历2、数组获取元素3、数组排序4、交集&#xff0c;并集&#xff0c;补集5、集合转换操作6、合并&#xff0c;拆解&#xff0c;填充7、分组&#xff0c;排列 二、算子 1、简单计算2、高阶计…

IDEA2024配置RunDashBoard(Services)面板

IDEA2024配置RunDashBoard(Services)面板 新版本的IDEA没有RunDashBoard&#xff0c;取而代之的是Services面板&#xff0c;不需要配置workspace.xml文件; 本文教你简单的方法就能一个SpringBoot的Main运行多次&#xff0c;方便调试。 1、配置启动类 导航栏&#xff0c;Edit…

SiteMesh介绍

SiteMesh介绍 SiteMesh是一个网页布局和修饰的框架&#xff0c;利用它可以将网页的内容和页面结构分离&#xff0c;以达到页面结构共享的目的。 下载和安装SiteMesh 官方下载地址&#xff1a;http://www.opensymphony.com/sitemesh/download.action 配置过滤器 在web.xml中…

使用立创EDA打开JSON格式的PCB及原理图

一、将PCB和原理图放同一文件夹 并打包成.zip文件 二、打开嘉立创EDA并导入.zip文件 文件 -> 导入 -> 嘉立创EDA标准版/专业版 三、选择.zip文件并选择 “导入文件并提取库” 四、自定义工程路径 完成导入并转换为.eprj文件 五、视频教学 bilibili_使用立创EDA打开JSO…

Pytorch入门实战: 06-VGG-16算法-Pytorch实现人脸识别

第P6周&#xff1a;VGG-16算法-Pytorch实现人脸识别 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客 &#x1f356; 原作者&#xff1a;K同学啊 &#x1f3e1; 我的环境&#xff1a; 语言环境&#xff1a;Python3.8 编译器&#xff1a;Jupyter La…

linux部署dagu和benthos作为调度平台+数据处理框架

准备文件 dagu和benthos下载地址(根据版本自行修改) dagu: https://github.com/dagu-dev/dagu/releases/download/v1.12.11/dagu_1.12.11_linux_amd64.tar.gz benthos: https://github.com/benthosdev/benthos/releases/download/v4.26.0/benthos_4.26.0_linux_amd64.tar.gz …