MySQL:数据类型表的基础操作

news2024/9/21 4:23:19

目录

1、数据类型

1.1 数值类型

 1.2 字符串类型

1.3 日期类型

2、表的基础操作

2.1 选择数据库

 2.2 建表

2.3 查看库中所有表

2.4 查看某一表结构

 2.5 删表

3、可视化编辑工具

3.1 运行


1、数据类型

1.1 数值类型

  • bit类型可指定长度(如果不写,默认为1位),最多指定长度为64,也就是说最多可表示64个二进制位。
  • tinyint类型也可指定长度,指定长度为1时,就认为是bool类型,也就是说 bool = tinyint(1)
  • bigint定义的整型范围比int类型更大,在建表定义编号字段时,通常使用bigint类型定义
  • float、double表示小数,但会造成精度丢失。 
  • decimal类型,M为指定的总长度,D为指定的小数位数,不会造成精度丢失,故使用小数时就用decimal定义(常用于金额)。

注意:decimal中的指定的M长度,不包括负号和小数点;若指定的D为0,则不保存小数点和小数部分(decimal表示的为整数) 。 

上述常用类型为:tinyint、int、bigint、decimal(表示小数)


 1.2 字符串类型

  •  varchar类型是最常用的字符串类型,可指定字符数量,注意,是指定字符的数量,而不是字节数。
  • text为文本数据类型,保存文章帖子等等
  • mediumtext也为文本数据类型,保存数量更大
  • blob 用来存储文件的二进制形式。但在数据库中,不建议存文件,我们通常将文件存在磁盘上,而在数据库相应的字段中存储该文件路径。

注:对于utf8mb4编码集,其中每个字符大小为:1-4字节。简单字符为1个字节,而复杂的字符最多为4个字节,如emj表情。

也就是说1个varchar类型的字段最多可存放的字符数量为: 65535/4=16383(要考虑极端情况)

拓展: 

  • 文本文件:我们能直接看懂的文件,如:记事本写的日记、Java源代码...等等
  • 二进制文件: 只有机器或程序才能读懂,以文本形式打开为乱码,以二进制形式打开为01二进制编码

1.3 日期类型

  • datetime 为新的时间类型,当跨世纪时为避免千年虫问题,避免数据的时间混乱,加大了之前timestamp的范围,datetime 为最新的时间类型。
  • timestamp 时间戳,范围小,舍弃这个类型即可。

2、表的基础操作

已知,数据库中有多个表,每个表中存储着多条记录,而每条记录又由多个列构成。

所以,我们要先选择相关数据库,然后再对这个数据库中的表进行相关操作。

2.1 选择数据库

  • 选择数据库:use 数据库名;(若没有库,要先建库) 
  • 查看所选择数据库:select database();

因为database()是MySQL内置的一个方法。

 2.2 建表

其中每个字段后,可用comment进行字段注解。

创建表也可加if not exists校验create table if not exists 表名(....);和建库时一样的写法。

注:每个表中,都强烈建议设计一个编号字段,类型设为bigint;若有varchar类型,则一定要指定长度。

-- 创建数据库
drop database if exists bit_mall;
create database if not exists bit_mall character set utf8mb4 collate utf8mb4_0900_ai_ci;

-- 选中数据库
use bit_mall;

-- 建表

-- 商品表
drop table if exists goods;
create table if not exists goods(
goods_id bigint comment'商品编号',
goods_name varchar(20) comment'商品名',
unitprice decimal(10,2) comment'商品单价',
category varchar(10) comment'商品类别',
provider varchar(50) comment'供应商'
);
-- 客户表
drop table if exists customer;
create table if not exists customer (
customer_id bigint comment'客户号',
name varchar(20) comment'客户姓名',
address varchar(20) comment'客户住址',
email varchar(50) comment'客户邮箱',
gender bool comment'客户性别',
card_id varchar(18) comment'客户身份证'
);
-- 购买表
drop table if exists purchase;
create table if not exists purchase (
order_id bigint comment'购买订单号',
customer_id bigint comment'客户号',
good_id bigint comment'商品号',
nums int comment'购买数量'
);

2.3 查看库中所有表

查看所选择数据库中的所有表show tables;(所有表,所以为复数)

-- 查看库中的所有表
show tables;

2.4 查看某一表结构

查看所选择数据库中的某一个表的结构:desc 表名;

-- 查看表结构 
-- purchase为表名
desc purchase;

 2.5 删表

删除表:drop if exists 表名;

一个drop语句可以删除多个表,表名之间用逗号隔开。

还是那句话:使用drop语句非常危险,要慎之又慎!!!

-- 删表
-- goods为表名
drop table if exists goods;

3、可视化编辑工具

命令行客户端工具,只执行一些简单的查询或是指令,如果一两句SQL可以搞定就在这里面去执行。

但如果说要编写复杂的SQL,比如表设计,复杂查询等操作,建议大家还是去可视化工具中编写。

3.1 运行

当我们在可视化工具中编写好SQL语句后,如何在命令行工具中运行呢?

在编辑器中编写好后,保存为一个sql文件,在命令行工具中使用以下SQL语句均可运行:

  1. \. 路径  
  2. source 路径

\. D:\database\lesson3.sql

 END

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

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

相关文章

pytorch学习笔记4 tensor变换

View/reshape viewreshape, 新版本 要保证数据总量不变,否则报错Squeeze/unsqueeze 减少维度和增加维度 unsqueeze(n): 如果n是正,在第n位前面插1维(size1), 如果n是负,在倒数第|n|位后面插入1维&#xf…

MySQL数据的增删改查 where 条件查询 基础知识 【3】推荐

操作数据是数据库很重要的一部分,今天整理了下关于MySQL数据库数据的增删改查,包括基础查询、where条件查询、排序、分页、聚合、分组、having以及多表查询,多表查询的直接查询、内连接、外连接以及子查询。方便自己以后查看,也欢…

基于stm32的RTC实时时钟 (HAL)

一:stm32的RTC功能概述 (基于stm32f10x) 1:绪论 实时时钟是一个独立的计时器,RTC提供一套持续运行的计数器,这些计数器可以配合适合的软件用来提供一个时钟日历功能。计数器的值可以被写入以设置系统当前时…

Linux中栈的大小的修改

目录 1. 使用ulimit命令 2. 修改系统级别的资源限制 3. 修改编译器选项 4. 修改内核参数(不常用) 5. 修改Makefile文件 检查当前栈大小 在Linux系统中,可以通过几种不同的方法来修改栈的大小。下面是几种常用的方法: 1. 使…

『 Linux 』POSIX 信号量与基于环形队列的生产者消费者模型

文章目录 信号量概念POSIX 信号量基于环形队列的生产者消费者模型基于环形队列的生产者消费者模型编码实现基于环形队列的生产者消费者模型发送任务测试 信号量概念 信号量是一种用于多线程或多进程间同步的机制; 其定义是一个整形变量,本质上信号量可以看成是一个计数器,用来描…

记录一次服务器被(crontab)木马入侵事件

背景:发现平时正常登录的服务器突然进不去,也没明显的错误,重启也登录不了! 可能的原因,内存/CPU满了 重启通过用户模式进入,查看进程发现有个定时任务一直在自动创建并执行(进程ID一直在变化&a…

机械学习—零基础学习日志(高数19——函数极限理解深化)

零基础为了学人工智能,真的开始复习高数 本次学习笔记,主要讲解函数极限的计算问题。 极限四则运算规则 这里有几个需要注意的地方。函数极限的四则运算,需要知道极限存在才能大胆放心的使用。而且使用超实数的概念会更好帮助我们理解&…

Python 操作PPT幻灯片- 添加、删除、或隐藏幻灯片

PowerPoint文档是商务、教育、创意等各领域常见的用于展示、教育和传达信息的格式。在制作PPT演示文稿时,灵活地操作幻灯片是提高演示效果、优化内容组织的关键步骤。下面将介绍如何使用国产Spire.Presentation for Python库实现添加、删除或隐藏PPT幻灯片。 目录 …

浅谈Java线程池的概念

目录 说明 1.线程池特点 2.线程池的简单示例 2.1 定义一个线程池类,通过创建一个全局的阻塞队列接收任务,线程池类构造方法拿阻塞队列的线程,完成线程的执行。 3. main方法中调用该类,实现线程池的调用 4.效果如下 说明 线程…

MySql Linux 安装

下载 下载后的文件为:mysql-8.4.2-linux-glibc2.28-x86_64.tar.xz 创建用户和用户组 $> groupadd mysql $> useradd -r -g mysql -s /bin/false mysql由于用户仅用于所有权目的,而不是登录目的,因此useradd命令使用 -r和-s /bin/false…

C++笔记之编译过程和面向对象

回顾: “abcd”//数据类型 字符串常量 const char *p"abc"; new STU const char *//8 指针的内存空间 int float 指针的内存空间 p 指针指向的内存空间 "abc" 取决于字符串长度 指针变量的内容一级指针 指针变量的地址二级指针 …

深度学习------权重衰退

目录 使用均方范数作为硬性限制使用均方范数作为柔性限制演示最优解的影响参数更新法则总结高纬线性回归多项式的权重衰退从零开始实现初始化模型参数定义L2范数惩罚定义训练代码实现忽略正则化直接训练使用权重衰减从零开始代码实现 多项式的权重衰退的简洁实现简洁函数代码简…

案例分享|Alluxio在自动驾驶数据闭环中的应用

分享嘉宾: 孙涛 - 中汽创智智驾工具链数据平台开发专家 关于中汽创智: 中汽创智科技有限公司(以下简称“中汽创智”)由中国一汽、东风公司、南方工业集团、长安汽车和南京江宁经开科技共同出资设立。聚焦智能底盘、新能动力、智…

学习硬件测试04:触摸按键+PWM 驱动蜂鸣器+数码管(P62~P67、P71、P72)

一、触摸按键 1.1理论讲解 1.1.1实验现象 触摸按键 1 单击与长按,控制 LED1;触摸按键 2 单击与长按,控制 LED2;触摸按键 3 单击与长按,控制 LED3;触摸按键 4 单击与长按,控制继电器; 1.1.2硬件电路 是原理图上触摸…

vue3+element-plus实现table表格整列的拖拽

参考文章&#xff1a;https://blog.csdn.net/candy0521/article/details/136470284 一、为防止原文章不见了将参考文章代码拷过来了&#xff08;不好意思&#xff09;&#xff1a;这是参考文章的代码 可直接复制粘贴运行 <template><div class"draggable-table&…

uniapp 多渠道打包实现方案

首先一个基础分包方案&#xff1a; 包不用区分渠道&#xff0c;只是通过文件名进行区分&#xff0c;公共代码逻辑可以通过mixins进行混入。 这样分包后就需要在打包时只针对编译的渠道包文件进行替换打包&#xff0c;其他渠道包的文件不打包进去&#xff0c;通过工具类实现…

商业策划案怎么写?附商场230个策划案例

商业策划案的撰写是一个系统性工程&#xff0c;旨在详细阐述项目的背景、目标、实施策略、财务预测及风险评估等内容&#xff0c;以吸引投资者或合作伙伴的关注。 以下是一个详细的撰写步骤和要点&#xff0c;码字不易&#xff0c;如果回答对你有所帮助&#xff0c;请不吝给一…

GraphRAG如何使用ollama提供的llm model 和Embedding model服务构建本地知识库

使用GraphRAG踩坑无数 在GraphRAG的使用过程中将需要踩的坑都踩了一遍&#xff08;不得不吐槽下&#xff0c;官方代码有很多遗留问题&#xff0c;他们自己也承认工作重心在算法的优化而不是各种模型和框架的兼容性适配性上&#xff09;&#xff0c;经过了大量的查阅各种资料以…

【目标和】python刷题记录

R3-dp篇. 目录 思路&#xff1a; 增加记忆化搜索&#xff1a; 优化空间复杂度&#xff1a; 思路&#xff1a; class Solution:def findTargetSumWays(self, nums: List[int], target: int) -> int:#设正数之和为p,总元素之和为s&#xff0c;带符号总元素之和为t&…