一篇文章让你学会mysql数据库(详解)

本文详细介绍了SQL的三个主要部分:DDL(数据定义语言)用于创建、修改和删除数据库对象;DML(数据操纵语言)涉及数据增删改查;DQL(数据库查询语言)用于数据检索。包括创建表、修改表结构、添加数据、查询语法、分组、聚合和分页操作示例。
摘要由CSDN通过智能技术生成

目录

DDL--操作数据库

1.查询

2.创建

3.删除

4.使用数据库

 DDL--操作数据表

1.创建表

2.查询表

3.修改表 

(1)修改表名

(2) 添加一列

(3)修改数据类型

(4)修改列名和数据类型

(5)修改列

DML

添加数据

1.给指定列添加数据

2.给全部列添加数据

3.批量添加数据 

 DQL

查询语法

DDL--操作数据库

数据库DDL(Data Definition Language)是一种用于定义和管理数据库的语言,它用于创建、修改和删除数据库中的对象,如表、视图、索引等。

1.查询

show databases;

2.创建

创建数据库

create database 数据库名称; 

创建数据库(判断,如果不存在则创建)

create database if not exists 数据库名称; 

3.删除

删除数据库

 drop database 数据库名称:

删除数据库(判断,如果存在则删除)

drop database if exists 数据库名称; 

这样数据库就又回到一开始的时候了;

4.使用数据库

查看当前使用的数据库

select database();  

使用数据库

use 数据库名称; 

 DDL--操作数据表

1.创建表

create table 表名(

                     字段名1   数据类型1,

                     字段名2   数据类型2,

                      ...

                     字段名n   数据类型n

);        

2.查询表

  • 查询当前数据库下所有表的名称

show tables;

  

  • 查询表结构

 desc 表名称;

 

3.修改表 

(1)修改表名

alter table 表名 rename to 新的表名;

(2) 添加一列

alter table 表名 add 列名 数据类型;

 

(3)修改数据类型

alter table 表名 modify 列名 新数据类型;

 

(4)修改列名和数据类型

alter table 表名 change 列名 新列名 新数据类型;

 

password被修改成了username;

(5)修改列

 alter table 表名 drop 列名;

username列已被删除了

DML

数据库DML(Data Manipulation Language)是一种数据操作语言,用于对数据库中的数据进行增加、修改、删除和查询等操作

添加数据

1.给指定列添加数据

insert into 表名(列名1,列名2,..)  values(值1,值2,..);

 

2.给全部列添加数据

insert into 表名 values(值1,值2,..);

3.批量添加数据 

insert into 表名(列名1,列名2,..)  values(值1,值2,..),(值1,值2,..),(值1,值2,..)...;

给全部列也可以省略前面的列名 

insert into 表名 values(值1,值2,..),(值1,值2,..),(值1,值2,..)...;

 DQL

DQL(Database Query Language)是数据库查询语言,用于从数据库中检索数据。

查询语法

select

        字段列表

from

         表名列表

where

         条件列表

group by

         分组字段

having

         分组后条件

order by

         排序字段

limit

         分页限定

        

1.查询多个字段

select 字段列表 from 表名;

查询所有列的数据,列名的列表可以使用*替代。不建议使用!

select * from 表名;

2.去除重复记录

select distinct 字段列表 from 表名;

3.起别名

as     as也可以省略

select name,score as 成绩,sex  性别 from stu;

 

 条件查询(where)

1.条件查询语句

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

 

2.条件的符号与功能

其中需要注意的是 判断是否为null

模糊查询 like

通配符:

(1)_:代表单个任意字符

(2)%:代表任意个数字符

-----------------分割线-----------------

查询姓'马'的学生

查询第二个字是'花'的学生

查询名字中包含'可'的学生

排序查询

排序查询语句

select 字段列表 from 表名 order by 排序字段1[排序方式],排序字段2[排序方式2]....;

排序方式:

  • ASC:升序排列(默认值)
  • DESC:降序排列 

如果有多个排序条件,当前面的条件值一样时,才会根据第二条件进行排序

--------------------------------------分割线----------------------------------------------

查询学生信息,按年龄升序排列

因为默认是asc,所以不写asc也是升序排序

查询学生信息,按年龄降序排列

查询学生信息,按照数学成绩降序排列,如果数学成绩一样,就按照英语成绩升序排列

聚合函数

聚合函数就是将一列作为一个整体,进行纵向计算

那么聚合函数该如何使用呢?

聚合函数语法:👇

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

null值不参与所有聚合函数的运算 

 例子:

1.统计班里有多少个学生

count 统计的列名不能为null

2.查询英语的最高分

3.查询英语的最低分

4.查询英语成绩的总分

5.查询英语的平均分

6.查询数学的最低分

null值不参与所有聚合函数的运算 

分组查询

分组查询语句

select 字段列表 from 表名 [where 分组前条件限定] group by 分组字段名 [having 分组后条件过滤];

分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义 

where和having的区别:

  • 执行实际不一样:where是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤
  • 可判断的条件不一样:where不能对聚合函数进行判断,having可以

执行顺序where > 聚合函数 > having

例子:

1.查询男同学和女同学各自的数学平均分

但是这样我们并不知道这两个数分别代表的时男同学还是女同学

所以我们把分组字段也查一次就好了

2. 查询男同学和女同学各自的数学平均分,以及各自的人数

3.查询男同学和女同学各自的数学平均分,以及各自的人数,要求:分数低于60分的不参与分组

4.查询男同学和女同学各自的数学平均分,以及各自的人数,要求:分数低于60分的不参与分组,分组之后人数大于3

分页查询

分页查询语句

select 字段列表 from 表名 limit 起始索引,查询条目数

  • 起始索引:从0开始

计算公式:起始索引=(当前页码-1)*每页显示的条数

例子:

1、从0开始查询,查询3条数据

2、每页显示3条数据,查询第2页数据

这也是我个人的学习记录,继续努力!!!

数据库sql下篇:

https://blog.csdn.net/m0_46702681/article/details/136569233?spm=1001.2014.3001.5501icon-default.png?t=N7T8https://blog.csdn.net/m0_46702681/article/details/136569233?spm=1001.2014.3001.5501

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力敲代码的小火龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值