初识MySQL(一)

本文详细介绍了MySQL数据库的基础知识,包括数据类型、SQL语句操作如DDL(创建、删除、修改数据库和表)、DML(增删改数据)和DQL(查询数据)。同时,讲解了如何在CMD中配置MySQL环境变量,以及提供了使用数据库管理工具Navicat的链接,便于更便捷地操作MySQL。
摘要由CSDN通过智能技术生成

MySQL

MySQL简介

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一

MySQL与其他大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,但是丝毫不影响它受欢迎的程度,对于个人使用者和中小型企业,MySQL提供的功能已经绰绰有余,主要MySQL还是开源的,因此大大降低了总体拥有的成本

MySQL列的参数类型

我就不全部举例出来了,我就列出经常使用的几种数据类型

int 整型
double 小数类型
data:日期   yyyy -MM -dd
datatime:日期  yyyy -MM -dd HH:mm:ss
timestamp:时间戳类型  yyyy -MM -dd HH:mm:ss 不赋值会自动添加当前时间
varchar():字符串 ,括号可设置字符数

也不过多的介绍了,接下来上正餐
在这里插入图片描述

SQL语句操作

从以下的三个方面介绍

  • DDL:操作数据库、表
  • DML:增删改表中的数据
  • DQL:查询表中的元素

DDL(Data Definition Languages)

数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop、alter等。

插曲一:如果在CMD(管理员模式)下输入 mysql -uroot -p 不能识别指令就是MySQL环境变量没有配置(别问为什么有这个小插曲,问就是博主也没有配置)

执行命令没配置环境变量的打印
在这里插入图片描述

如果打印**‘mysql’ 不是内部或外部命令,也不是可运行的程序**需要我们去配置环境变量
右击 此电脑–>属性–>高级系统设置–>环境变量–>系统变量下的path中设置mysql的安装地址
博主的mysql下bin文件的地址是:
C:\Program Files\MySQL\MySQL Server 8.0\bin
根据自己的安装地址设置

插曲二:如果找不到安装目录文件,这里也有具体步骤(泪目)
cmd输入services.msc 打开服务
找到MySQL80
在这里插入图片描述
右键属性,这就是MySQL安装地址,只需要配置bin目录到环境就行
在这里插入图片描述

好了没有错误了,开始愉快的学习

MySQL命令行登录
本地登录
mysql -uroot -p

在这里插入图片描述
输入安装Mysql时设置密码即可登录

这就是登陆成功的页面
在这里插入图片描述

远程访问数据库
mysql -h (ip) uroot -p
连接目标的密码
退出登录
exit

在这里插入图片描述

查询所有数据库
show datavases;  别忘记后面要跟上;

在这里插入图片描述

1.操作数据库的CRUD
C(Create)创建
//创建数据库
create database 数据库名称;

//创建数据库时添加一个判断语句如果这个数据库不存在才创建
create database  if not exists 数据库名称;

//指定创建数据库的字符集
create database 数据库名称 character set 字符集;

//创建数据库指定字符集并判空
create database if not 数据库名称 character set 字符集;

在这里插入图片描述
创建一个名称为def的数据库,设置字符集为gbk
在这里插入图片描述

R(Retrieve):查询
//查询所有数据库的名称
 show databases; 

//查询某个数据库的字符集:查询某个数据库的创建语句
show create database 数据库名称;

在这里插入图片描述

U(Update):修改
//修改某个数据库的字符集
alter database 数据库的名称 character set 字符集名称;

修改数据库的原字符集
在这里插入图片描述

D(Delete) :删除
//删除数据库
drop database 数据库名称;

//添加判断,判断数据库是否存在,存在再删除
drop database if exists 数据库名称;

在这里插入图片描述

使用数据库
//查询当前正在使用的数据库名称
select database();
//使用数据库
use 数据库名称;

在这里插入图片描述

兄弟萌,有没有感觉使用CMD的黑窗口很麻烦,我一想你们就肯定感觉很难受(好吧,其实是博主用着很难受)
我下面放上连接数据的工具Navicat的百度云盘地址

Navicat是一套可创建多个连接的数据库管理工具,用以方便管理 MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB 和/或 MongoDB 等不同类型的数据库,主要是提供设计良好的用户界面 (GUI)

链接地址:
Navicat15 安装+破解教程
提取码: dlmy

2.操作表的CRUD
C(Create):创建
语法:
create table 表名{
列名1  数据类型1,
列名2  数据类型2....
列名n  数据类型n
};
注意:最后一列不需要加逗号

没有报错,返回OK就是表示数据库的表创建成功
在这里插入图片描述
注意:如果创建数据库表出现错误,看是否同名,数据库是无视大小写的,看是否是数据类型写错了,还是逗号掉了,这都可以通过细心检查发现

R(Retrieve):查询
//查询数据库中所有的表名称
show tables;
//查询表结构
desc 表名;
//查看表的字符集
show create table 表名;

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

U(Update):修改
//修改表名
 alter table 原表名 rename to 新表名;
//修改表的字符集
alter table 表名 character set 字符集;
//添加一列
 alter table 表名 add 列名 数据类型;
 //修改名称和类型
 alter table 表名 change 列名 新列名  新数据类型;
 alter table 表名 modify 列名 新数据类型;
 //删除列
 alter table 表名 drop 列名;

在这里插入图片描述

D(Delete) :删除
//删除表
drop table 表名;
//判断是否存在该表存在则删除
drop table if exists 表名; 

在这里插入图片描述

DML(Data Manipulation Language)

数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括 insert、delete、udpate 等。(增添改)

添加数据

语法:
   insert into表名(列名1,列名2,...列名n) values(1,2,. ..值n);

注意:

  • 列名和值要—一对应。

  • 如果表名后,不定义列名,则默认给所有列添加值

insert into stu(id,name,age) values(1,'张无忌',18);
  • 如果给所有的列都加上值,前面列名不用一个个都写
insert into stu values(2,'赵敏',17,99.9,null);
#在SQL中单双引号都可以
insert into  stu values(3,'张三丰',17,99.9,"1893-11-11",null);

删除数据

语法:
delete from表名[where条件]

各种删除方式

#删除id=1的用户
delete from stu where id=1;

#注意不添加条件会删除表中所有的数据
delete from stu;

#删除表,然后再创建一个一模一样的空表
truncate table stu;

删除所有的记录有两种方式:

delete from 表名;(不推荐)  这个方法会执行很多遍删除数据的操作,效率低

truncate table 表名;(推荐)这个方法直接删除整张表,再创建一张同名的表

修改数据

语法:
updata 表名 set 列名1=1,列名2=2,1.. [where条件];
#修改id=3的成员age属性为55
updata stu set age =55 where id=3;

#可以修改多个列
update stu set age=18,score=100 where id=2;

#如果不添加条件,就代表修改所有成员的age属性
update stu set age=1;

DQL(Data QueryLanguage )

数据查询语言,select

语法:

select  字段列表 

from 表名列表  

where 条件列表 

group by 分组字段

having 分组之后的条件

order dy  排序

limit 分页限定

基础查询

查询全部数据
#查询表中所有数据
select *from 表名;
查询多个字段
#查询多个字段
select name,num,market_price from item;

注意:select * 写着舒服但是并不规范,在后面的工作中是不允许使用select * 的,因为会降低查询的效率,最好是需要什么字段,查询什么字段

去重
#查询数据时,去除一列中重复的数据  distinct
select distinct num from item;
有重复的可能是因为空格
计算列
 #计算num列与market_price列的总和
select name,num,market_price,num+market_price from item;

#如果有null参与计算的结果,都为null

#所以需要使用到IFNULL这个函数
select name,num,market_price ifnull(num,0)+market_price from item;
#如果字段num为null是则替换为0
起别名

关键字:AS

#更改了num+market_price这一列的名字为 总分
select name,ifnull(num,0),market_price,num+market_price as 总分 from item;

还有一种方式使用起来比较方便但是不利于代码的可读性

在列名后面加上空格再跟上别名

 #将num+market_price更改为 sum
 select name,ifnull(num,0),market_price,num+market_price sum from item;

条件查询

where子句后跟上条件

语法:
select 返回的字段 from 表明 where 列名 = 条件

排序查询

关键字: order by 子句

排序方式:

  • ASC:升序,默认的
  • DESC:降序
语法:
order by 排序字段1 排序方式1,排序字段2,排序方式2...

注意:如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件

 #ASC升序的方式排列  默认的
select * from item order by market_price asc;  

#DESC:降序
select * from item order by market_price desc;

#按照merket_price排序,如果merket_price一样,按照 shop_price排序
#先按照第一排序条件,再按照第二排序条件排序
select * from item order by market_price asc,shop_price desc;

聚合函数

将一列数据作为一个整体,进行纵向的计算

count:计算个数
#这句话没有加判断,为空值的列不会列入查询的数值
select count(列名) from 表名;
#这句话的意思是当查询的列有null值时,列中的值使用0来替换,就可以查询到这一列了
select count(ifnull(列名,0)) from 表名;
  • 一般选择非空的列:主键
  • count(*):计算所有列的个数,当一个列的有一行不为空时,就可以增加查询列
max :计算最大值
min :计算最小值
sum :计算和
avg :计算平均值
#最大值
select max(market_price) from item;
#最小值
select min(market_price) from item;
#求和
select sum(market_price) from item;
#平均值
select avg(market_price) from item;

注意:聚合函数的计算,排除了空值

分组查询

语法:
group by 分组字段
#分组查询
select 列名 from 表名 group by 列名(与前一个列名相同);

#分组查询 + 聚合函数
select 列名,AVG(列名) from 表名 group by 列名(与前一个列名相同);

注意:分组之后查询的字段:分组字段、聚合函数

where 和 having的区别?
  • where在分组之前限定,如果不满足条件,则不参与分组。having在分组之后限定,如果不满足结果,则不会被查询出来
  • where后不可以跟聚合函数,having可以进行聚合函数的判断

分页查询

关键字:limit

语法:
limit 开始的索引,每页查询的条数
公式:开始的索引=(当前的页码-1*每页显示的条数
#每页显示三条
select * from item LIMIT 0,3;

select * from item LIMIT 6,3;

select *from item LIMIT 索引,要显示的行数;

分页操作是一个"方言",每个数据库都不同

文章有点长语句有点多,不过不要慌,慢慢写熟练了就都简单了,不能只看文章不敲代码,俗话说得好:好记性不如烂笔头,只有多敲代码,才能记得牢固

在这里插入图片描述

在这里插入图片描述

今天的MySQL知识就止于此吧,希望这些知识能帮助到兄弟们,我还会慢慢更新MySQL部分的博客,因为刚开始写博客,如果有什么不足的希望兄弟萌谅解,也可以指出来让我在后面的过程中多加改正,同时也谢谢兄弟萌的观看了
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值