MySQL基础篇总结

ops/2024/10/25 8:15:58/

 参考:黑马程序员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.ppmy.cn/ops/8381.html

相关文章

C++修炼之路之list--C++中的双向循环链表

目录 前言 一&#xff1a;正式之前先回顾数据结构中的双向循环链表 二&#xff1a;list的简介 三&#xff1a;STL中list常用接口函数的介绍及使用 1.构造函数接口 2.list迭代器 范围for 3.数据的修改接口函数 4.list容量操作函数 5.list的迭代器失效 6.演示代码和测…

Stable Diffusion UI 从安装到实现文字图片融合(光影字,错觉图)图片制作详细教程

前言 最近在实践大模型本地部署&#xff0c;前几天在本地部署了一个ChatGLM大模型&#xff0c;刚好环境搭好了&#xff0c;也支持跑Stable Diffusion&#xff0c;所以就安装了再尝试一下。 原因是之前在B站上有大佬做了一个Windows电脑能一键运行的Stable Diffusion的安装包&…

【机器学习】小波变换在特征提取中的实践与应用

小波变换在特征提取中的实践与应用 一、小波变换的基本原理与数学表达二、基于小波变换的特征提取方法与实例三、小波变换在特征提取中的优势与展望 在信号处理与数据分析领域&#xff0c;小波变换作为一种强大的数学工具&#xff0c;其多尺度分析特性使得它在特征提取中扮演着…

排序算法之堆排序

目录 一、简介二、代码实现三、应用场景 一、简介 算法平均时间复杂度最好时间复杂度最坏时间复杂度空间复杂度排序方式稳定性堆排序O( N N N log ⁡ 2 N \log_{2}N log2​N))O( N N N log ⁡ 2 N \log_{2}N log2​N))O( N N N log ⁡ 2 N \log_{2}N log2​N))O(1)In-place不稳…

Qt-控件篇

QPushbutton 1、设置按钮文本 pushButton->setText("按钮"); 2、获取按钮文本 pushButton->text(); 3、设置按钮的大小为特定值&#xff08;宽度和高度&#xff09; pushButton->setFixedSize(width,height); 4、设置按钮悬停时的工具提示文本。 pushButto…

SpringMvc的核心组件和执行流程

一、 springmvc的核心组件及作用 1.DispatcherServlet:前置控制器&#xff0c;是整个流程控制的核心&#xff0c;用来控制其他组件的执行&#xff0c;降低了其他组件的耦合性 2.Handler:控制器&#xff0c;完成具体的业务逻辑&#xff0c;当DispatcherServlet接收到请求后&am…

基于 Spring Boot 博客系统开发(一)

基于 Spring Boot 博客系统开发&#xff08;一&#xff09; 本系统是简易的个人博客系统开发&#xff0c;为了更加熟练地掌握SprIng Boot 框架及相关技术的使用。&#x1f913;&#x1f913;&#x1f913; 本系统开发所需的环境及相关软件 操作系统&#xff1a;Windows Java…

Avalonia 捕获全局异常(UI线程 和 非UI线程),增加客户端的稳定性

在 App.axaml.cs 中&#xff0c;App类添加下列事件&#xff1b; 1.重写 OnFrameworkInitializationCompleted &#xff0c;会在程序初始化完成后触发 2. 绑定AppDomain中当前域的事件 AppDomain.CurrentDomain.UnhandledException HandleGlobalException; //UI线程 …