MySQL数据库、表常用命令

2023-11-09

数据库(MySQL):是一个具体的软件(实现数据库这个软件中,会用到很多的数据结构),这类软件的功能就是管理数据(组织和描述),管理起来的目的,就是为了用SQL这样的语言进行“增删改查”。

一、数据库分类

1.关系型数据库:

要求数据格式得规范统一,组织的数据都是以的方式,类似于excel,可以把同类数据放到同一个表中,每一行就是一条记录,每一个记录中包含了很多列,这些列的类型和含义要求是统一的。对数据的校验更加容易做到,也更严格。eg:Oracle:数据库圈子中的王者(收费)、MySql、SqlServer(学校使用)

2.非关系型数据库:

不要求数据的格式规范统—(数据的格式更加灵活),组织数据是以**“文档”/“键值对”**方式来组织的,每个记录就是一个“文档”,这个文档里有哪些属性字段,都不必完全相同。对数据校验没那么严格,但是更高效,更适合于现在的分布式系统。eg:MongoDBRedis、Hbase。

二、MySQL相关基础

(1)MySQL是通过服务器管理数据的。
MySQL服务器上有若干个数据库(视为一组数据逻辑上的集合)
一个数据库包含若干个表
一个表包含若干行(若干条记录)
一个行包含若干列(若干个字段)
(2)MySQL是把数据存储在“外存”上的(包括但不限于:硬盘、U盘、光盘、软盘)。
原因:1 MySQL要管理的数据量比较大
2 期望有更低的成本
3 期望能够持久化存储(掉电之后数据不丢失)
(3)数据由控制台显示到界面上的流程
控制台输入命令——mysql客户端构造一个请求——请求通过网络发送给服务器——服务器收到请求,并解析出其中的命令——服务器执行命令,完成增删查改操作——将结果打包成响应——通过网络把响应发回给客户端——客户端在解析后最终显示到界面上。

三、MySQL数据库基础操作

1.显示数据库

show databases

2.创建数据库

字符集名:数据库中默认的utf8有些表情(emoji表情)表示不了,改为utf8mb4就是完整的字符集。
校验规则更准确的是说:比较规则

create database [if not exists] 创建的数据名 [create_specification]  
create_specification:
character set 指定数据库采用的字符集名
collate 指定数据库字符集的校验规则名

3.删除数据库

drop database [if exists] 数据库名

4.使用数据库

use 数据库名

四、常用数据类型

1.数值类型

unsignd已被弃用

数据类型 大小 说明 对应的java值
bit[(m)] M指定位数,默认为1 二进制数,M范围从1到64,存储数值范围从0到2^M-1 常用Boolean对应BIT,此时默认是1位,即只能存0和1
tinyint 1字节 Byte
smallint 2字节 Short
int 4字节 Integer
bigint 8字节 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 双精度,M指定长度,D表示小数点位数。精确数值 BigDecimal
(1)float(m,d)(有效数字长度,小数点后的位数) 例:float(3,1)小数点后一位,有效数3位 99.6是合法的 float和double类型不够精确尤其是有涉及到钱方面的数据,因此引入decimal(m,d)这个“变长”内存存储,比float和double更精确,但同时也占内存空间以及花费更多运算时间,更好的办法是在涉及到钱数的时候用int代替以上类型。

2.字符串类型

数据类型 大小 说明 对应java值
varchar(size) 0-65535字节 可变长度字符串 String
text 0-65535字节 长文本数据 String
mediumtext 0-16 777 215字节 中等长度文本数据 String
blob 0-65535字节 二进制形式的长文本数据 byte[]
varchar(size)中的size表示字符串最大长度单位是字符 text 没有参数,不是用户指定一个长度了,会根据用户插入的数据来动态确定占得空间 blob 是保存二进制类型的数据,eg:图片,MP3,视频等格式,一般是把图片以文件的形式放到硬盘中,在数据库中记录路径。前面都是保存文本型的数据。

3.日期类型

数据类型 大小 说明 对应java值
datetime 8字节 范围从1000到9999年,不会进行时区的 检索及转换 java.util.Date、 java.sql.Timestamp
timestamp 4字节 范围从1970到2038年,自动检索当前时 区并进行转换。 java.util.Date、 java.sql.Timestamp
timestamp时间戳

五、MySQL表基础操作

1.创建表

创建表之前要先选中数据库

create table [表名] (列名 列类型,列名 列类型);

2.查看表

(1)查看表

show tables

(2)查看指定表结构

desc [表名]

在这里插入图片描述

NULL:是否允许这个列的值为空值(null),类似于EXCLE里面有个值没填
Default:列的默认值,此处就为null。可以用特殊手段来修改
Extra:额外的约束
3.删除表

drop table [表名]

六、MySQL表的CRUD

1.新增(create)

(1)单行数据+全列插入

 insert into [表名] values (列的值,列的值...);

(2)多行数据 + 指定列插入
列名与create创建中的相对应

insert into [表名] (列名,列名...) values
(列的值,列的值...),
(列的值,列的值...);

注:MySQL默认字符集是拉丁文的,不支持中文utf8,要修改字符集。
通过模糊查询来查看当前字符集

show variables like '%character%';
database 数据库
server 服务器

2.查询(Retrieve)

(1)全列查询(查整列)

select * from 表名;

(2)指定列查询

临时表,不保存在内存和磁盘中。

select [列名],[列名]... from [表名];

(3)查询字段为表达式

比如查总数

select [表达式],[表达式]... from [表名]

(4)查询信息起别名

as可省略

select [列名],[表达式] as [别名] from [表名];

(5)去重查询:distinct

seclect distinct [列名],[表达式]... from [表名];

(6)排序:obey by

适合在硬盘上排序
可以指定按多列排序,若列1相同则按列2排。NULL视为最小值。
默认顺序:升序
desc:降序

select [列名],[表达式]...from [表名] obey by [列名1],[列名2] [desc];

(7)条件查询:where

比较运算符

运算符 说明
>,>=,<,<= 大于,大于等于,小于,小于等于
= 等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL
<=> 等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)
!=,<> 不等于
between a0 and a1 范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1)
in(option,…) 如果是 option 中的任意一个,返回 TRUE(1)
is null 是 NULL
in not null 不是 NULL
like 模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符

逻辑运算符

运算符 说明
and 多个条件必须都为 TRUE(1),结果才是 TRUE(1)
or 任意一个条件为 TRUE(1), 结果为 TRUE(1)
not 条件为 TRUE(1),结果为 FALSE(0)

where条件可以使用表达式,不可以使用别名去设置条件
and的优先级高于or
模糊查询:like

-- %(通配符)匹配任意多个字符(也可以是数字)
-- _匹配的任意一个字符
select [列名] from [表名] where [列名] like '%茗%' --查到的都是中间有茗字的
select [列名] from [表名] where [列名] like '茗_' --查到的是茗啥

NULL的查询:is [not] null

select [列名] from [表名] where [列名] is not null --列名已知
select [列名] from [表名] where [列名] is null --列名未知

(8)分页查询:limit

有些数据太多要考虑到数据库服务器磁盘IO和数据库客户端到服务器的网络IO的容量,所以设置分页查询。

select ... from [表名] where obey by limit n;
-- 后两个表达意思一样 s 从第几条数据开始,n选几条结果
select ... from [表名] where obey by limit s,n;
select ... from [表名] where obey by limit n offset s;

eg:每页有3条记录,显示三页
select ... from [表名] where obey by limit 3 offset 0;-- 第一页,从0条数据开始
select ... from [表名] where obey by limit 3 offset 3;-- 第二页,从第3条数据开始
select ... from [表名] where obey by limit 3 offset 6;-- 第三页,从第6条数据开始

3.修改(Update)

updata [列名],[列名] set [列名]=[列名值],[列名]=[列名值] where 条件

4. 删除(Delete)

delect from [表名] where 条件;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL数据库、表常用命令 的相关文章

  • Laravel 5.4 升级 - 违反完整性约束 - 列不能为空

    奇怪的是 所有这些都在 5 2 中工作 但我不知道可以改变什么来实现这一点 下面是错误和正在插入的数组 SQLSTATE 23000 Integrity constraint violation 1048 Column gender can
  • 猪的组连接等效吗?

    试图在 Pig 上完成这个任务 寻找 MySQL 的 group concat 等效项 例如 在我的表中 我有以下内容 3fields userid clickcount pagenumber 155 2 12 155 3 133 155
  • MySQL 数据库无法在 XAMPP for Mac 上启动

    突然我在 mac 上遇到了这个问题 我无法启动我的 MySQL 数据库 我只能启动 ProFTPD 和 Apache Web Server 这是应用程序日志 Starting all servers Starting MySQL Datab
  • 使用连接池后如何处理过多的并发连接?

    Scenario 假设您有一个拥有大量流量的网站或应用程序 即使使用数据库连接池 性能也会受到真正的打击 站点 应用程序甚至可能崩溃 因为并发连接太多 Question 人们有什么选择来处理这个问题 我的想法 我在想有这个问题的人可以创建多
  • 无法在 mysql-apt-config [Ubuntu 14.04] 中选择“确定”

    我使用的是 Ubuntu 14 04 sudo apt get update总是给我这个选项来配置 mysql apt config 我尝试选择版本 按 tab gt 在 确定 上突出显示的键 按 Enter 但没有任何反应 它再次返回并突
  • 从 call_log 中获取最大并发通话数

    我需要帮助在 MySQL 5 0 77 中编写一个查询 根据下面所示的数据 办公室一天的通话量 返回并发电话呼叫的峰值数量 我只是想知道一天中任何特定时间同时打电话的人数最多是多少 首先 这是 MySQL 表 CREATE TABLE ca
  • MVCC 如何与 MySql 中的 Lock 配合使用?

    我知道Mysql中使用锁或者MVCC可以实现并发控制 比如可重复读 但我不知道MVCC如何避免幻读 在其他地方了解到一般是通过MVCC和Gap Lock来实现的 但是目前我理解的是MVCC不需要锁 即更新和删除都是使用undo log来实现
  • MySQL - 从数字列表中选择在表的 id 字段中没有对应项的数字

    我有一个数字列表 例如 2 4 5 6 7 我有一个表 foos 带有 foos ID 包括 1 2 3 4 8 9 我想获取我的号码列表 并在我的表的 ID 字段中找到那些没有对应项的号码 实现此目的的一种方法是创建一个表格栏 在 ID
  • “修改列”与“更改列”

    我知道 我们不能使用重命名列MODIFY COLUMN语法 但我们可以使用CHANGE COLUMN syntax 我的问题是 主要用途是什么modify syntax 例如 ALATER TABLE tablename CHANGE co
  • MySQL 概念:会话与连接

    我对 MySQL 的概念有点困惑 会话与连接 当谈论连接到 MySQL 时 我们使用连接术语 连接池等 然而在 MySQL 在线文档中 http dev mysql com doc refman 4 1 en server system v
  • 如何为 MySQL 中的字段或列添加别名?

    我正在尝试做这样的事情 但我收到未知的列错误 SELECT SUM field1 field2 AS col1 col1 field3 AS col3 from core 基本上 我只想使用别名 这样我就不需要执行之前执行的操作 这在mys
  • SQL Server 2005 是否有与 MySql 的 ENUM 数据类型等效的数据类型?

    我正在开发一个项目 我想在表中存储一些容易枚举的信息 MySql 的枚举数据类型正是我想要的 http dev mysql com doc refman 5 0 en enum html http dev mysql com doc ref
  • 如何对 SQL 进行多次查询

    我正在尝试创建一个表 并在 PHP 脚本的帮助下在数据库中插入一些值 虽然只插入 1 行 但效果很好 当我尝试输入更多行数时 出现错误 我需要为每个查询编写完整的插入语句 因为我正在使用在线 Excel 到 SQL 查询转换器
  • MySQL InnoDB 约束不起作用

    我偶然发现 innoDB 约束的奇怪行为 但找不到原因 我有包含数据的表格 下面列出了它们的结构 CREATE TABLE contents id int 10 unsigned NOT NULL AUTO INCREMENT title
  • Google Cloud SQL 上的故障转移如何运作?

    我打算将 PHP 应用程序 从 Google Cloud Platform 外部的服务器 连接到 Google Cloud SQL 我想知道如何设计应用程序以正确地对其数据库进行故障转移 根据manual https cloud googl
  • MySQL:@@ 是什么意思?

    我正在阅读本页上的 MySQL 文档 http dev mysql com doc refman 5 1 en set statement html http dev mysql com doc refman 5 1 en set stat
  • 研究MySQL、SQLite源码了解RDBMS实现[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道实现数据库是一个很大的话题 但我想通过研究数据库系统的源代码来基本了解数据库系统的工作原理 例如
  • 奇怪的 MySQL Python mod_wsgi 无法连接到 'localhost' (49) 上的 MySQL 服务器问题

    StackOverflow上也有类似的问题 但我还没有发现完全相同的情况 这是在使用 MySQL 的 OS X Leopard 机器上 一些起始信息 MySQL Server version 5 1 30 Apache 2 2 13 Uni
  • 查询为空 Node Js Sequelize

    我正在尝试更新 Node js 应用程序中的数据 我和邮递员测试过 我的开发步骤是 从数据库 MySQL 获取ID为10的数据进行更新 gt gt 未处理的拒绝SequelizeDatabaseError 查询为空 我认识到 我使用了错误的
  • 使用 PHP 将 latin1_swedish_ci 转换为 utf8

    我有一个数据库 里面充满了类似的值 Dhaka 应该是 Dhaka 因为我在创建数据库时没有指定排序规则 现在我想修复它 我无法从最初获取数据的地方再次获取数据 所以我在想是否可以在 php 脚本中获取数据并将其转换为正确的字符 我已将数据

随机推荐

  • 解决ES6.6.0开启锁定内存后不能重新,报错“memory locking requested for elasticsearch process but

    错误原因就是我们在配置文件里开启了 bootstrap memory lock true 不需要次需求的话 改成false就好 如果需要开启 按照下面来 亲测可行 root localhost 234 grep Ev etc elastic
  • FreeSwitch学习笔记

    FreeSwitch FreeSwitch应用场景 在线计费 预付费功能 电话路由服务器 语音转码服务器 支持资源优先权和QoS的服务器 多点会议服务器 IVR 语音通知服务器 VoiceMail服务器 PBX应用和软交换 应用层网关 防火
  • 我眼中的全栈工程师

    前言 全栈工程师 一直以来都是软件行业热议的话题 只要提到全栈工程师大家就觉得很高大上 当然也有人直接说万金油而已 往好听说是全栈工程师 综合能力全 但是实际上就是什么都会哪都不精通 有人唾之以鼻 也有人称赞不已 对于许多创业公司来讲 全栈
  • Spring中的JDBC模块

    文章目录 什么是Spring JDBC Spring JDBC的开发步骤 下载 Spring JdbcTemplate 的jar包 导入属性文件 管理数据源对象 在配置文件中创建JdbcTemplate对象 JdbcTemplate 中常用
  • 小程序代理平台怎么选?

    如今 越来越多的企业和组织开始使用小程序来实现其业务 小程序代理平台哪家好 怎么选 这是很多人都在纠结的问题 其实 找小程序代理平台并不难 但是找一家合适的小程序代理平台还是有地方需要注意的 一 小程序代理平台 那么 选择一家合适自己的代理
  • 输出时保留有效数字

    保留3位有效数字 1 C include
  • SQL优化

    1 确认是否建立索引 是否索引失效 原则 没有索引考虑加索引 有索引先看索引建立的是否合理以及尽量避免索引失效 1 1 如果不是业务需要查询所有字段 避免直接select 原因 完全没有走覆盖索引的可能 有可能索引失效 增加了数据传输的开销
  • 求集合的所有子集的算法(C++)

    求集合的所有子集的算法 对于任意集合A 元素个数为n 空集n 0 其所有子集的个数为2 n个 如集合A a b c 其子集个数为8 对于任意一个元素 在每个子集中 要么存在 要么不存在 对应关系是 a gt 1或a gt 0 b gt 1或
  • linux网络摄像头服务器,网络摄像头Logitech和Linux

    我有罗技c310相机 宣称的特点是720p30fps 如果您将相机连接到Windows 则记录与所述720p 30fps完全一致 图片清晰 挑战是将同一个摄像头连接到Orangepi 服务器Armbian 并在其上保存视频文件 相机显示为
  • 区块链:一场始料未及的革命

    当主流媒体还在忙于猜测加密货币价格及其黑市阴谋时 他们已经遗漏了这一切的本质事实 那就是 密码学家们悄然发明了一套全新的技术原型 Unitimes特约作者Haseeb Qureshi在其文章 区块链 一场始料未及的革命 Blockchain
  • Qt-OpenCV学习笔记--图像的腐蚀--erode()

    概述 通过一个特定的结构元素 腐蚀 一个图像 图像腐蚀的过程类似于一个卷积的过程 源图像矩阵A以及结构元素B B在A矩阵上依次移动 每个位置上B所覆盖元素的最小值替换B的中心位置值 即锚点处 完成整个腐蚀的过程 算法通俗理解 其运算过程就是
  • 如何科学进行用户分析?六大方法论了解一下!

    用户研究是用户中心的设计流程中的第一步 它是一种理解用户 将他们的目标 需求与商业宗旨相匹配的理想方法 能够帮助企业定义产品的目标用户群 在用户研究过程中 数据的使用及挖掘是非常重要的 那么 有哪些通用的用户分析方法 如何分析你的用户 本篇
  • verilog 产生16进制递增bin文件

    https verificationacademy com forums systemverilog how do i write binary dump file array my testbench w 写 r 读 a 追加 b 二进制
  • 手把手教你搞定 微信支付 跳出微信支付的坑 (公众号支付,核心代码可以用于小程序支付)

    1 准备工作 设置支付目录 请确保实际支付时的请求目录与后台配置的目录一致 否则将无法成功唤起微信支付 在微信商户平台 pay weixin qq com 设置您的公众号支付支付目录 设置路径 商户平台 gt 产品中心 gt 开发配置 如下
  • 2013年11月22日星期五(T3DLIB1剩余---1)

    现在进行T3DLIB的残余 define SCREEN DARKNESS 0 define SCREEN WHITENESS 1 define SCREEN SWIPE X 2 define SCREEN SWIPE Y 3 define
  • 【计算机网络】物理层:物理层要解决哪些问题?

    物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流 而不是具体的传输媒体 现有的计算机网络中的硬件设备和传输媒体的种类非常繁多 而通信手段也有许多不同方式 物理层的作用是尽可能屏蔽这些差异 使物理层上面的数据链路层感觉不到这些
  • iptables需求:开启防火墙:可以正常使用ssh服务,dns服务, httpd服务,chrony服务, nfs服务安装

    1 iptables需求 开启防火墙 可以正常使用ssh服务 dns服务 httpd服务 chrony服务 nfs服务 安装 yum install y iptables services 关闭firewalld 开启iptables sy
  • git的代码撤销步骤

    工作区的代码撤销 1 git status 查看哪些文件是修改过的 2 git checkout 文件路径 让这个文件回到最近一次git commit或git add时的状态 git add到暂存区的代码要撤销 1 git reset HE
  • 时序预测

    时序预测 MATLAB实现基于GRU门控循环单元的时间序列预测 递归预测未来 多指标评价 目录 时序预测 MATLAB实现基于GRU门控循环单元的时间序列预测 递归预测未来 多指标评价 预测结果 基本介绍 模型结构 程序设计 参考资料 预测
  • MySQL数据库、表常用命令

    目录 一 数据库分类 1 关系型数据库 2 非关系型数据库 二 MySQL相关基础 三 MySQL数据库基础操作 1 显示数据库 2 创建数据库 3 删除数据库 4 使用数据库 四 常用数据类型 1 数值类型 2 字符串类型 3 日期类型