从零开始的MySQL(1)

本文详细介绍了MySQL的安装、基本操作,包括创建与删除数据库、数据类型的使用、表的创建与删除,以及核心的增删改查操作。重点讲解了SELECT查询的多种方式,如字段选择、条件筛选、排序与分页,同时对比了DELETE与DROP的区别。内容适合MySQL初学者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.MySQL的安装

    可以参考这篇博客:https://blog.51cto.com/aiilive/2116476
安装包放在下方链接:

链接: https://pan.baidu.com/s/1JYlUx0Hv6kpm384qw1VwYA 提取码: ybbb

2.MySQL的基本操作

    MySQL是一个“客户端-服务器”结构的程序.
    网络通信的时候,通信双方,主动发起请求的一方,称为客户端.
 被动接受请求的一方,称为服务器.
 客户端给服务器发送的数据称为请求,服务器给客户端返回的数据,称为响应.
 安装好了MySQL,相当于既是安装了客户端,也是安装了服务器,客户端和服务器之间是通过网络来通信的

2.1 展示数据库

    SQL语句单词之间要有空格,最后别忘记加一个分号;

show databases;

在这里插入图片描述

    databases少写了一个s就会报错
在这里插入图片描述

2.2 创建数据库

create database 数据库名字;

在这里插入图片描述

    注意:这里的database不用加s

2.3 选中数据库

选中数据库后就可以对其进行操作

use 数据库名字;

在这里插入图片描述

2.4 删除数据库

drop  database 数据库名字;

在这里插入图片描述

2.5 常用数据类型

2.5.1 整形

在这里插入图片描述
在这里插入图片描述
    TINYINT,SMALLINT,INT,BIGINT对应java的byte,short,int,long

2.5.2 浮点数

在这里插入图片描述

    Float为单精度,M指定长度,表示有效数字,D指定小数位数。会发生精度丢失.
    DECIMAL为双精度,M指定长度,D表示小数点位数,平时提到的float和double类型是根据IEEE754标准来使用的,基于这个标准表示的浮点数,有些数字可能无法精确表示一个小数,比如在算钱的时候,两个浮点数比较的时候,不能使用大于小于,而是要作差比较.

2.6 创建表

create table 表名 (
	字段名字 字段类型,
	字段名字 字段类型,
	字段名字 字段类型.....
);
create table teacher(
	id int,
	name varchar(50),
	age int
);

在这里插入图片描述

2.7 查看表

    需要先选中数据库,之后才能查看表.

show tables;

在这里插入图片描述

2.7 查看表结构

    查看某个表里面有几列,每一列都是啥类型,每一列是啥名字.

desc 表名;

在这里插入图片描述

2.8 删除表

drop table 表名

在这里插入图片描述

3.数据库增删改查

3.1 单行插入

INSERT INTO 表名 VALUES(属性 类型)

在这里插入图片描述
    insert 进行插入的时候 可以只插入其中的某一列或者某几个列的.此时其他的列将采用默认值
在这里插入图片描述
在这里插入图片描述

3.2 多行插入

在这里插入图片描述
    多行插入的效率是比单个分别插入效率高的,如果分开来一个个插入数据,客户端把sql语句包装成请求发送给服务器,服务器收到后作出响应再把数据传回来,这样要返回多次,而一次性把sql语句都传过去,就可以减少响应次数.
在这里插入图片描述

3.3 插入日期

    如果某一列是 datetime,此时如何进行插入呢?
1)通过指定格式的字符串来插入一个指定时间
2)通过 now0函数来插入一个当前系统时间

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

3.4 select查询

    首先创建表,将表中插入数据

 create table exam(id INT,
    -> name VARCHAR(20),
    -> chinese DECIMAL(3,1),
    -> math DECIMAL(3,1),
    -> english DECIMAL(3,1));

 insert into exam values (1,'唐三藏', 67, 98, 56),
    -> (2,'孙悟空', 87.5, 78, 77),
    -> (3,'猪悟能', 88, 98.5, 90),
    -> (4,'曹孟德', 82, 84, 67),
    -> (5,'刘玄德', 55.5, 85, 45),
    -> (6,'孙权', 70, 73, 78.5),
    -> (7,'宋公明', 75, 65, 30);

3.4.1 select

    最基础的查找全列查找直接把一个表的所有的列,和所有的行都查询出来

select * from 表名;

    其中* 为通配符,表示一个表的所有列,把一个表里面的所有的行和所有的列都查找到,查找的结果是一个“临时表”之前咱们说的数据库的表都是在硬盘上的,而此处的这个查询结果临时表不是在硬盘上而是在内存中,随着进行了输出之后,数据也就被释放了

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

在这里插入图片描述

3.4.2 查询一列或多列

    指定列查询,查询出自己想要的列

select 列名 from 表名;

在这里插入图片描述
    查询结果,只是一个临时表.(在客户端内存临时保存的一个数据表,随着打印的进行,内存就释放了),临时表的结果对于数据库服务器的原始数据没有任何影响.

3.4.3 查询字段为表达式

在这里插入图片描述
临时表中的结果的数据类型不一定和原始的表的数据类型完全一致。
临时表的类型会自动的适应,保证计算结果是正确的.

3.4.4 查询字段指定别名

    查询字段指定别名,相当于是给查询结果的临时表,指定新的列名,as最好不要省略,查询语句一多可能会混淆
在这里插入图片描述

3.4.5 查询结果去重

在这里插入图片描述
    如果是针对多个列来进行去重,就得这多个列的值都相同的时候才视为相同.

3.4.6 排序

    排序会针对查询结果(临时表) 进行排序(不会影响到数据库服务器上的原始据的),order by 有升序(asc)和降序(desc),asc如果省略不写,默认也是升序.如果有的表中是带NULL的,在排序的时候,NULL是最小的(升序就排在最前面,降序就排在最后面)

select 列名 from 表名 order by 列名 asc/desc;

在这里插入图片描述

根据别名来排序
在这里插入图片描述
    排序的时候还可以通过 order by 来指定多个列进行排序,先根据第一个列进行排序.如果第一个列结果相同,相同结果之间再通过第二个列排序…,先按照数学排序.如果数学成绩相同,再按照英语排序,多个列排序的时候是有明确优先级的~~,先进行筛选,如果where子句条件不成立,前面的select就不会执行

在这里插入图片描述

3.4.7 where筛选

    where条件就会针对查询结果进行筛选,服务器就会遍历表中的每一条记录,如果记录符合条件,就返回给客户端.如果不符合条件,就跳过

在这里插入图片描述
    where子句不能使用别名
在这里插入图片描述
    表达式里如果有 and 和 or, 先计算 and 后计算 or ,如果要想打破优先级,就需要加( )
在这里插入图片描述

select 列名 from 表名 where 列名 between 值 and 值 

    between and 两边的值是闭区间的.
在这里插入图片描述

    只要数学成绩是()中的任意的值,都可以被查询出来
在这里插入图片描述

3.4.8 模糊查询:like

     % 匹配任意多个(包括0个)字符, _ 匹配严格的一个任意字符
在这里插入图片描述
在这里插入图片描述

3.4.9 NULL 的查询:IS [NOT] NULL

在这里插入图片描述
    上述的sql语句是有问题的,NULL表示不可知不确定,NULL不与任何值相等(包括其本身),返回为false,所以就没有执行,在使用NULL要使用<=>NULL 或者 is NULL.
在这里插入图片描述

4.分页查询

    在使用百度搜索的时候,搜索结果会分页显示出一页中最多显示多少个结果,假设一页显示 20 条记录.第一页就显示1-20,第二页就显示21-40,第三页就显示41-60.SQL中可以通过 limit 来实现分页查询,假设一页里面就显示3条记录.

select 列名 from 表名 limit 数字

    下图就是显示3条记录

在这里插入图片描述
    offset 3的意思是从下标为 3 的记录开始(下标从0开始)再往后找 3 条.
在这里插入图片描述

5.update

    update是会修改数据库服务器上的原始数据的

update 表名 set  column = expr [, column = expr ...] [WHERE ...] [ORDER BY ...] [LIMIT ...]

在这里插入图片描述

-- 将孙悟空同学的数学成绩变更为 80 分

在这里插入图片描述

-- 将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分

在这里插入图片描述

-- 将总成绩倒数前三的 3 位同学的数学成绩加上 30 分

在这里插入图片描述

-- 将所有同学的语文成绩更新为原来的 1/2 倍

在这里插入图片描述

6.delete删除

DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]
-- 删除孙悟空同学的考试成绩

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

6.1 delete和drop的区别

    delete主要是删除数据,数据没有了,但是表还在.
    drop主要用于删除结构,例如删除数据库:drop database XX,删除表 drop table XX,删除之后表和数据都没有了.
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值