【MySQL】基础操作

news2024/11/25 7:14:28

数据库的操作

查看所有数据库:

SHOW DATABASES;(注意这里是 databases,多了个 s)

mysql 不区分大小写,所以 show databases; 是一样的。
另外,在命令行窗口操作时,可以使用上下方向键调用前面已经使用过的命令。

查看所有数据库


创建数据库:

CREATE DATABASE [IF NOT EXISTS] 数据库名 [CHARACTER SET 字符集名] [COLLATE 排序规则名];

其中 [ ] 是可选项
CHARACTER SET:指定数据库采用的字符集
COLLATE:指定数据库字符集的校验规则
例如创建学生库 student:

创建数据库

再次使用上面这条语句时,就会发生报错:

所以我们可以在创建数据库时加上 if not exists 避免这种情况:

if not exists

加上后就变成,如果数据库 student 不存在就创建,存在则不会创建。

设置字符集:
当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ c。

如果系统没有 db_test 的数据库,则创建一个使用 utf8mb4 字符集的 db_test 数据库,如果有则不创建:

指定字符集

注意:MySQL 的 utf8 编码不是真正的 utf8,没有包含某些复杂的中文字符。MySQL 真正的 utf8 是使用 utf8mb4,建议使用 utf8mb4。


使用数据库:

USE 数据库名;
要对数据库进行后续操作,需要先选择这个数据库。

使用数据库

如果对数据库操作了很多语句,不知道当前使用的是哪个数据库,我们可以使用下面这条语句查看:

database函数


删除数据库:

DROP DATABASE [IF EXISTS] 数据库名;
同理,IF EXISTS 代表数据库存在就删除。

删库

注意:这就是常说的删库跑路,危险很大,谨慎使用。


常用数据类型

在 MySQL 中,有三种主要的类型:Number(数字)、Text(文本)和 Date/Time(日期/时间)类型。

数值类型:

数据类型大小说明对应java类型
BIT[ (M) ]M指定位数,默认为1二进制数,M范围从1到64,存储数值范围从0到2^M-1常用Boolean对应BIT,此时默认是1位,即只能存0和1
TINYINT1字节Byte
SMALLINT2字节Short
INT4字节Integer
BIGINT8字节Long
FLOAT(M,D)4字节单精度,M指定长度,D指定小数位数。会发生精度丢失Float
DOUBLE(M,D)8字节Double
DECIMAL(M,D)M/D最大值+2双精度,M指定长度,D表示小数点位数。精确数值BigDecimal
NUMERIC(M,D)M/D最大值+2和DECIMAL一样BigDecimal

文本类型:

数据类型大小说明
VARCHAR (SIZE)0-65,535字节可变长度字符串
TEXT0-65,535字节长文本数据
MEDIUMTEXT0-16 777 215字节中等长度文本数据
BLOB0-65,535字节二进制形式的长文本数据

日期类型:

数据类型描述
DATE()日期。格式:YYYY-MM-DD
支持的范围是从 ‘1000-01-01’ 到 ‘9999-12-31’
DATETIME()日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS
支持的范围是从 ‘1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’
TIMESTAMP()时间戳。格式:YYYY-MM-DD HH:MM:SS
支持的范围是从 ‘1970-01-01 00:00:01’ 到 ‘2038-01-09 03:14:07’
TIME()时间。格式:HH:MM:SS
支持的范围是从 ‘-838:59:59’ 到 ‘838:59:59’
YEAR()2 位或 4 位格式的年。
4 位格式所允许的值:1901 到 2155。
2 位格式所允许的值:70 到 69,表示从 1970 到 2069。

表的操作

查询当前数据库的所有表: SHOW TABLES;
注意:查询表以及后面对库里的表进行操作时,需要先使用该数据库(use 数据库名;)

查看表


创建表:

格式:

CREATE TABLE 表名(
	   字段1     字段1类型 [COMMENT 字段1注释],
       字段2     字段2类型 [COMMENT 字段2注释],
       字段3     字段3类型 [COMMENT 字段3注释],
       ………………
       字段n     字段n类型 [COMMENT 字段n注释]
)[COMMENT 表注释]

注意: […] 为可选参数,最后一个字段后面没有逗号。

例如创建下面这张 user 表:

创建表


查看表结构: desc 表名;

desc


查询指定表的建表语句: show create table 表名;

查询建表语句


表操作—添加字段:

ALTER TABLE 表名 ADD 字段名 类型(长度)[COMMENT 注释] [约束];

例如,为上面的 user 表添加一个地址 address 字段:

修改表结构


表操作—修改字段:

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度)[COMMENT 注释] [约束];

例如将 user 表中的字段 name 替换成 username:

alter -change


表操作—删除字段:

ALTER TABLE 表名 DROP 字段名;

例如,将 user 表中的 address 字段删除:

alter --drop


表操作—修改表名:

ALTER TABLE 表名 RENAME TO 新表名;

例如将 user 表名修改为 users:

修改表名


表操作—删除表:

DROP TABLE [IE EXISTS] 表名;
和删库一个道理,表和表里的数据都会被删除。
还有另外一种,删除指定表,并重新创建该表:
TRUNCATE TABLE 表名;
相当于清空表里的数据,留下表结构。

数据操纵语言

添加数据:

  1. 给指定字段添加数据:

INSERT INTO 表名 (字段1, 字段2, ……) VALUES (值1, 值2, ……);
在这里插入图片描述

  1. 给全部字段添加数据:

INSERT INTO 表名 VALUES (值1, 值2, ……);
在这里插入图片描述

  1. 批量添加数据:

INSERT INTO 表名 (字段1, 字段2, ……) VALUES (值1, 值2, ……), (值1, 值2, ……), (值1, 值2, ……);

INSERT INTO 表名 VALUES (值1, 值2, ……), (值1, 值2, ……), (值1, 值2, ……);
在这里插入图片描述

注意:

  • 插入数据时,指定的字段顺序需要与值的顺序是一一对应的。
  • 字符串和日期型数据应该包含在引号中。
  • 插入的数据大小,应该在字段的规定范围内。

修改数据:

UPDATE 表名 SET 字段1 = 值1, 字段2 = 值2, ……[WHERE 条件];
注意: 修改语句的条件可以有,可以没有,如果没有条件,则会修改整张表的所有数据。

例如,把张三的年龄修改成28:

在这里插入图片描述

例如,把李四的年龄改成 31,性别改成女:

在这里插入图片描述

例如,把 user 表中的性别全改成男:

在这里插入图片描述


删除数据:

DELETE FROM 表名 [WHERE 条件];
delete 语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。
delete 语句不能删除某一个字段的值(可使用 update)。

例如,删除名叫 赵六 的数据:

在这里插入图片描述

例如,删除所有数据:

在这里插入图片描述


数据查询语言

基础查询:

查询指定字段:select 字段1, 字段2…… from 表名;

例如,查询 name, gender 字段:

在这里插入图片描述

查询所有字段:select * from 表名;
在实际开发中,不建议使用 * 通配符,一是效率不高,二是上面指定字段的直观。

在查询的语句中,我们可以给字段添加别名,使用 AS 关键字,例如:

在这里插入图片描述

在上面的查询结果中,发现有两条重复记录,我们可以使用 distinct 关键字去掉这些重复的数据(只是结果不显示,并不是把表里的数据删除):

在这里插入图片描述


条件查询:

SELECT 字段列表 FROM 表名 WHERE 条件列表;

条件:

比较运算符功能逻辑运算符功能
>大于AND 或 &&并且(多个条件同时成立)
>=大于等于OR 或 ||或者(多个条件任意一个成立)
<小于NOT 或 !非,不是
<=小于等于
=等于
<> 或 !=不等于
BETWEEN…AND…在某个区间内,包含两端
IN(…)在 in 之后列表中的值
LIKE 占位符模糊匹配(_ 匹配单个字符,%匹配任意个字符)
IS NULL是 NULL,同样还有 IS NOT NULL

例如,查询年龄大于等于 22 的信息:

在这里插入图片描述

例如,查询年龄在 18 到 28 之间的用户信息:

在这里插入图片描述

例如,查询年龄为 18 ,22 ,28 其中的用户信息:

在这里插入图片描述

例如,查询张开头的用户信息:

在这里插入图片描述

例如,查询名字中包含张字的用户信息:

在这里插入图片描述

% 代表0个和多个字符,_ 代表一个字符,同理查询第二个字为张的名字就可以使用 like “_张%”。


在讲解分组查询前,先看一下聚合函数:

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

注意: null 值不参与计算。
常见聚合函数:

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

语法:

SELECT 聚合函数(字段列表)FROM 表名;

例如,查询 user 表有多少用户:

在这里插入图片描述

例如,查询年龄最小的用户:

在这里插入图片描述

例如,统计 user 表的平均年龄:

在这里插入图片描述


分组查询:
格式:

SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];

注意:where 与 having 区别
执行时机不同: where 是分组之前进行过滤,不满足 where 条件,不参与分组;而 having 是分组之后对结果进行过滤。
判断条件不同: where 不能对聚合函数进行判断,而 having 可以。

例如,根据性别分组,统计男用户和女用户的数量:

在这里插入图片描述

例如,根据性别分组,计算男用户和女用户的平均年龄:

在这里插入图片描述

例如,查询年龄小于 40 的用户,并根据性别分组,返回男用户或女用户 数量大于 3 :

在这里插入图片描述


排序查询:

SELECT 字段列表 FROM 表名 ORDER BY 字段 1 排序方式 1, 字段2 排序方式 2 …;

排序方式:
ASC:升序(默认)
DESC:降序

注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。

例如,根据年龄排序:

在这里插入图片描述


分页查询:

SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;

例如:

在这里插入图片描述

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

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

相关文章

CentOS编译安装Apache

1、下载Apache、apr和apr-util源码包&#xff1a; 2、解压文件&#xff1a; tar -zxvf httpd-2.4.55.tar.gz tar -zxvf apr-util-1.6.3.tar.gz tar -zxvf apr-util-1.6.3.tar.gz mv apr-1.7.2 httpd-2.4.55/srclib/apr mv apr-util-1.6.3 httpd-2.4.55/srclib/apr-util 说明&…

计讯物联5G数采仪助力打造化工园区企业工况监测系统

项目背景 随着我国化工行业的快速发展&#xff0c;化工园区已成为化工行业发展的重要阵地&#xff0c;化工企业聚集&#xff0c;危险化学品安全风险集中&#xff0c;安全规范问题逐渐成为行业关注的焦点。然而&#xff0c;我国化工园区发展水平发展参差不齐&#xff0c;尤其是…

Redis过期删除策略和内存淘汰策略

目录一、面试题二、Redis内存满了怎么办2.1 结论三、redis里写的数据如何删除的&#xff1f;3.1 三种不同的删除策略3.1.1 立即删除3.1.2 惰性删除3.1.3 定期删除3.3.4 总结四、redis缓存淘汰策略4.1 有哪些4.2 你平时用哪一种五、总结一、面试题 生产上你们你们的redis内存设…

第三章-OpenCV基础-8-绘图函数

前置内容 这篇内容不是本书内容,但后续用的到&#xff0c;特做记录。 使用OpenCV中不可避免需要用到各种绘图功能,比如绘制人脸库、显示人脸识别信息,那就需要用到OpenCV的绘图函数&#xff0c;这些函数包括cv2.line()&#xff0c; cv2.circle()&#xff0c;cv2.rectangle()…

Lazada如何做好店铺运营?产品定价是关键

1.东南亚各国状况一览&#xff08;对比中国&#xff09; 2.东南亚消费水平真的很低&#xff1f; 精准定价的意义&#xff1a;定价过高&#xff0c;失去核心竞争力&#xff1b;定价过低&#xff0c;亏本对市场失去信心&#xff1b;价格改动&#xff0c;流量下降 定价公式&#…

MySQL实战解析底层---日志系统:一条SQL更新语句是如何执行的

目录 前言 重要的日志模块&#xff1a;redo log 重要的日志模块&#xff1a;binlog 两阶段提交 前言 MySQL 可以恢复到半个月内任意一秒的状态&#xff0c;这是怎样做到的呢&#xff1f;从一个表的一条更新语句说起&#xff0c;下面是这个表的创建语句&#xff0c;这个表有…

【个人总结】Mongodb安装下载

【个人总结】MongDB安装下载1、下载2、安装3、创建数据库文件的存放位置4、配置5、创建文件6、安装mongodb服务7、测试1、下载 官网下载地址&#xff1a;https://www.mongodb.com/try/download/community-kubernetes-operator&#xff0c;选择对应版本&#xff0c;我这里是3.6…

大数据之Hudi数据湖_大数据治理_简介_发展历史_特性_应用场景---大数据之Hudi数据湖工作笔记0001

支持hive spark flink 美国公司开发的~ 都在使用,这些企业都在用 支持hadoop的,更新,插入,删除 和数据增量处理 支持流式数据处理. hive是离线数仓 hive不支持事物 insert overwrite 底层后来通过这种方式支持了事物 insert overwrite处理数据很低效,因为更新是基于覆盖实现…

2023年,软件测试怎么样?

2022年因为各种不可抗力原因&#xff0c;大厂裁员&#xff0c;失业等等频频受到关注。 不解释&#xff0c;确实存在&#xff0c;各行各业都很难&#xff0c;但是&#xff0c;说软件测试行业不吃香&#xff0c;我还真不认同&#xff08;不是为培训机构说好话&#xff0c;大环境…

计算神经网络参数量Params、计算量FLOPs(亲测有效的3种方法)

1.stat&#xff08;cpu统计&#xff09; pip install torchstat from torchstat import statstat(model, (3, 32, 32)) #统计模型的参数量和FLOPs&#xff0c;&#xff08;3,32,32&#xff09;是输入图像的size 结果&#xff1a; 问题&#xff1a;当网络中有自定义参数时&am…

龙蜥LoongArch架构研发全揭秘,龙芯开辟龙腾计划技术合作新范式

编者按&#xff1a;在开源新基建加快建设的背景下&#xff0c;越来越多的企业选择加入龙蜥社区&#xff0c;当前社区生态合作伙伴已突破 300 家。于是&#xff0c;龙蜥社区能为加入的企业提供哪些支持成为越多伙伴们更加关注的话题。本文将以龙蜥社区和龙芯中科联合研发龙蜥 Lo…

Webpack-好文

webpack是一个前端资源加载/打包工具&#xff0c;会根据模块的依赖关系进行静态分析&#xff0c;然后将这些模块按照指定的规则生成对应的静态资源Webpack打包js文件创建一个文件夹&#xff0c;cmd进入到终端&#xff0c;运行npm install -g webpack webpack-cli安装webpack we…

三、work queues(多进程消费一个队列)

1、轮训分发消息 在这个案例中我们会启动两个工作线程&#xff0c;一个消息发送线程&#xff0c;我们来看看他们两个工作线程是如何工作的。 1.1 抽取工具类 public class RabbitMqUtils {//得到一个连接的channelpublic static Channel getChannel() throws Exception {//创…

探寻世界:用Python获取照片的地理定位信息

目录 步骤&#xff1a; 源代码&#xff1a; 代码说明&#xff1a; 报错1&#xff1a; 解决方法1&#xff1a; 报错2&#xff1a; 解决方法2&#xff1a; 效果如下所示&#xff1a; 验证效果如下&#xff1a; 一、步骤&#xff1a; 要从 JPEG 图像中获取经纬度信息&…

投票页面制作线上投票活动制作网络投票制作关注投票制作

现在来说&#xff0c;公司、企业、学校更多的想借助短视频推广自己。通过微信投票小程序&#xff0c;网友们就可以通过手机拍视频上传视频参加活动&#xff0c;而短视频微信投票评选活动既可以给用户发挥的空间激发参与的热情&#xff0c;又可以让商家和企业实现推广的目的&…

2023上海国际电商物流包装产业展览会相约上海

2023年7月5-7日 | 上海新国际博览中心 同期举办&#xff1a;2023上海国际快递物流产业博览会 指导单位&#xff1a;上海市邮政管理局 中国快递协会 主办单位&#xff1a;上海市快递行业协会 上海市仓储与配送行业协会 上海市物流协会 承办单位&#xff1a;上海信世展览服务有…

【NLP相关】GPT-X合集:GPT类模型介绍(附相关论文和Github项目地址)

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️&#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

哈希一致性算法(分布式服务器落点算法)

场景预设和一般hash算法&#xff1a; 先预设一个场景&#xff0c;有10000份文件&#xff0c;需要缓存到五台缓存服务器之上 那么按照最常规&#xff0c;每个服务器平均分配2000份文件 那么用一个取余操作就可以完成 比如说是第2513的图片&#xff0c;那么用一个公式 需要缓…

HTML概述与基本标签

&#x1f31f;所属专栏&#xff1a;HTML只因变凤凰之路&#x1f414;作者简介&#xff1a;rchjr——五带信管菜只因一枚&#x1f62e;前言&#xff1a;该系列将持续更新HTML的相关学习笔记&#xff0c;欢迎和我一样的小白订阅&#xff0c;一起学习共同进步~&#x1f449;文章简…

simplifyEnrichment | 让我来做你的富集结果的瘦身教练吧!~

1写在前面 最近真是烦心啊&#xff0c;事事不顺&#xff0c;找个日子我要找大师算一卦。&#x1f602; 大家基本都会做富集分析&#xff0c;但有时候terms实在太多&#xff0c;读起来真是累&#xff0c;也搞不清到底谁是其中相对重要的。&#x1f972; 之前有一些R包通过计算基…