零基础学MySQL(二)-- 表的创建,修改,删除

news2025/1/12 23:12:23

在这里插入图片描述


文章目录

    • 🎈一、创建表
      • 1️⃣基本语法
      • 2️⃣入门案例
    • 🎆二、MySQL常用数据类型
      • 1️⃣数值型(整型)默认有符号
      • 2️⃣数值型(bit)
      • 3️⃣数值型(浮点型)默认有符号
      • 4️⃣字符串的基本使用
      • 5️⃣字符串使用细节
      • 6️⃣时间类型
    • 🎇三、修改与删除表
      • 1️⃣添加列
      • 2️⃣修改列
      • 3️⃣删除列
      • 4️⃣修改表名
      • 5️⃣修改表的字符集
      • 6️⃣修改列名
      • 7️⃣查看表的结构
      • 8️⃣删除表


在这里插入图片描述


🎈一、创建表

1️⃣基本语法

CREATE TABLE 表名 (
	列名 列类型, 
	列名 列类型, 
	列名 列类型, 
	列名 列类型)
	CHARACTER SET 字符集
	COLLATE 校对规则 
	ENGINE 存储引擎;

注意:创建表时,要根据需保存的数据创建相应的列,并根据数据的类型定义相应的列类型。

2️⃣入门案例

建立一个名为 nba_player 的球员信息表,包括姓名,出生日期,打球位置,身高,臂展,工资,所在球队,字符集为utf8,校对规则区分大小写,存储引擎为INNODB。
在这里插入图片描述

CREATE TABLE nba_player (
	`name` VARCHAR(255),
	birthday DATE,
	`position` VARCHAR(255),
	height INT,
	arm_span INT,
	sal DOUBLE,
	team VARCHAR(255))
	CHARACTER SET utf8 
	COLLATE utf8_bin 
	ENGINE INNODB; 

🎆二、MySQL常用数据类型

1️⃣数值型(整型)默认有符号

类型大小有符号范围无符号范围
TINTINT(UNSIGNED)占1个字节有符号:-128 ~ 127无符号:0 ~ 255
SMALLINT(UNSIGNED)占2个字节有符号:-2^15 ~ 2^15 - 1无符号:0 ~ 2^16 - 1
MEDIUMINT(UNSIGNED)占3个字节有符号:-2^23 ~ 2^23 - 1无符号:0 ~ 2^24 - 1
INT(UNSIGNED)占4个字节有符号:-2^31~ 2^31 - 1无符号:0 ~ 2^32 - 1
BIGINT(UNSIGNED)占8个字节有符号:-2^63~ 2^63 - 1无符号:0 ~ 2^64 - 1
-- 如果没有指定 UNSIGNED , 就是有符号
CREATE TABLE t3 (
	id TINYINT);
	
-- 如果指定 UNSIGNED , 就是无符号
CREATE TABLE t4 (
	id TINYINT UNSIGNED);

2️⃣数值型(bit)

-- BIT(m) m 在 1-64
CREATE TABLE t05 (num BIT(8));

-- 添加数据 范围 按照你给的位数来确定,比如 m = 8 表示一个字节 0~255
INSERT INTO t05 VALUES(255);

-- 显示按照 bit
SELECT * FROM t05;

-- 查询时,仍然可以按照数来查询
SELECT * FROM t05 WHERE num = 1;

3️⃣数值型(浮点型)默认有符号

类型大小
FLOAT(UNSIGNED)占4个字节
DOUBLE(UNSIGNED)占8个字节
DECIMAL【M,D】(UNSIGNED)可变

DECIMAL【M,D】(UNSIGNED)可以支持更加精确的小数位,M是小数位数(精度)的总数,D是小数点(标度)后面的位数。
如果D是0,则值没有小数点部分。M最大为65,D最大为30,如果D省略,默认是0,如果M省略,默认是10。

#演示 decimal 类型、float、double 使用
#创建表
CREATE TABLE t06 (
	num1 FLOAT, 
	num2 DOUBLE, 
	num3 DECIMAL(30,20));
	
#添加数据
INSERT INTO t06 VALUES(88.12345678912345, 88.12345678912345,88.12345678912345);
SELECT * FROM t06;

4️⃣字符串的基本使用

类型大小
CHAR(size) 固定长度字符串最大 255 字符
VARCHAR(size) 可变长度字符串0 ~ 65535 字节
TEXT0 ~ 2^16 - 1 字节
MEDIUMTEXT0 ~ 2^24 - 1 字节
LONGTEXT0 ~ 2^32 - 1 字节
BLOB0 ~ 2^16 - 1 字节
MEDIUMBLOB0 ~ 2^24 - 1 字节
LONGBLOB0 ~ 2^32 - 1 字节

VARCHAR(size),最大可以存放 65532 字节 【1-3 个字节用于记录大小】
如果表的编码是 utf8,那么最大可以存 (65535-3) / 3 = 21844字符
如果表的编码是 gbk ,那么最大可以存 (65535-3) / 2 = 32766字符

#演示字符串类型使用 char varchar
CREATE TABLE t09 (
	`name` CHAR(255));
	
CREATE TABLE t10 (
	`name` VARCHAR(32766)) 
	CHARSET gbk;

在存放文本时,也可以使用 TEXT 数据类型,可以将 TEXT 列视为 VARCHAR 列,注意 TEXT 没有默认值,如果不够用可以使用 MEDIUMTEXT 或 LONGTEXT。
BLOB,MEDIUMBLOB,LONGBLOB是二进制文本数据类型,使用较少。

#如果 varchar 不够用,可以考试使用 mediumtext 或者 longtext
#如果想简单点,可以使用直接使用 text
CREATE TABLE t13( 
	content TEXT, 
	content2 MEDIUMTEXT , 
	content3 LONGTEXT);

5️⃣字符串使用细节

细节1:

CHAR(4),这个4表示字符数(最大255),不是字节数,不管是中文还是字母都是放4个按字符计算。
VARCHAR(4),这个4表示字符数,不管是字母还是中文都以定义好的表的编码来存放数据。
不管是中文还是英文字母,都是最多存放4个,是按照字符来存放的。
对于占多少字节取决于编码。

编码类型大小
GBK字母1字节,汉字2字节
UTF-8字母1字节,汉字3字节
Unicode字母2字节,汉字2字节

细节2:

CHAR(4)是定长(固定的大小),就是说,即使你插入’aa’ ,也会占用分配的4个字符的空间。
VARCHAR(4)是变长(变化的大小),就是说,如果你插入了’aa’,实际占用空间大小是2个字符空间再加上1-3个字节,因为VARCHAR本身还需要占用1-3个字节来记录存放内容长度

细节3:

什么时候使用char,什么时候使用varchar
1.如果数据是定长,推荐使用char,比如md5的密码,邮编,手机号,身份证号码等。
2.如果一个字段的长度是不确定,我们使用varchar ,比如留言,文章。
3.查询速度:char > varchar

6️⃣时间类型

类型格式描述
DATEYYYY-MM-DD年-月-日
TIMEHH:MM:SS时:分:秒
YEARYYYY
DATETIMEYYYY-MM-DD HH:MM:SS年-月-日 时:分:秒
TIMESTAMPYYYY-MM-DD HH:MM:SS年-月-日 时:分:秒
#演示时间相关的类型
#创建一张表, date , datetime , timestamp
CREATE TABLE t14 (
	birthday DATE , -- 生日
	job_time DATETIME, -- 记录年月日 时分秒
	login_time TIMESTAMP
		NOT NULL DEFAULT CURRENT_TIMESTAMP
		ON UPDATE CURRENT_TIMESTAMP); -- 登录时间, 如果希望 login_time 列自动更新, 需要配置
		
SELECT * FROM t14;
INSERT INTO t14(birthday, job_time)
	VALUES('2022-11-11','2022-11-11 10:10:10'); -- 如果我们更新 t14 表的某条记录,login_time 列会自动的以当前时间进行更新

TIMESTAMP 在 INSERT 和 UPDATE 时,自动更新。

🎇三、修改与删除表

1️⃣添加列

基本语法:

ALTER TABLE 表名
	ADD 列名 列类型

练习:球员表 nba_player 上面添加一个 enter_nba_time 列,INT类型(要求在team后面)

ALTER TABLE nba_player
	ADD enter_nba_time INT NOT NULL DEFAULT 0
	AFTER team;

2️⃣修改列

基本语法:

ALTER TABLE 表名
	MODIFY 列名 列类型

练习:修改球员表的name列,使其长度为60。

ALTER TABLE nba_player
	MODIFY `name` VARCHAR(60) NOT NULL DEFAULT ''

3️⃣删除列

基本语法:

ALTER TABLE 表名
	DROP 列名 

练习:删除球员表 nba_player 上面的 enter_nba_time 列

ALTER TABLE nba_player 
	DROP enter_nba_time 

4️⃣修改表名

基本语法:

RENAME TABLE 表名 TO 新表名 

练习:球员表名改为 nba_players

RENAME TABLE nba_player TO nba_players

5️⃣修改表的字符集

基本语法:

ALTER TABLE 表名 CHARACTER SET 字符集名

练习:球员表的字符集改为utf8

ALTER TABLE nba_player CHARACTER SET utf8

6️⃣修改列名

基本语法:

ALTER TABLE 表名 
	CHANGE 原列名 列名

练习:将列名name修改为player_name

ALTER TABLE nba_player 
	CHANGE `name` player_name VARCHAR(64) NOT NULL DEFAUIT ''

7️⃣查看表的结构

基本语法:

DESC 表名 

8️⃣删除表

基本语法:

DROP TABLE [IF EXISTS] 表名; 

可选项 IF EXISTS 代表只有表存在才会删除该表,表名不存在,则不执行删除操作(如果不
加该项,删除一张不存在的表,执行将会报错)。

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

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

相关文章

1584_AURIX_TC275_SMU的调试以及部分寄存器

全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com) 前面学习的过程中,突然间减速了不少。但是为了保证学习的推进,还是得有每天的稳定输出。我的策略是多看,多处理,之后每天整理10页标注的文档…

设计模式相关内容介绍

1.学习设计模式好处 提高编程能力、思维能力、设计能力程序设计更加标准化、代码编制更加工程化,软件开发效率大大提高,缩短项目周期设计的代码可重用性高、可读性强、可靠性高、 灵活性好、可维护性强 2.设计模式分类 创建型模式 提供创建对象的机制…

一文读懂工业级交换机的规范使用

工业交换机具备电信级特性特点,可承受严苛的工作环境,产品种类丰富多彩,交换机配置灵便,可以满足各类工业应用的应用标准。那么,大家使用工业级交换机的过程当中应该如何规范使用呢? 工业级交换机其实质运…

蓝队攻击的四个阶段(四)

目录 一, 外网纵向突破 1.1 何为外网纵向突破 1.2外网纵向突破的主要工作 二, 外网纵向突破的途径 1. Web 网站 2.外部邮件系统 3.边界网络设备 4.外部应用平台 三,内网横向拓展 1. 1何为内网横向拓展 1.2 内网横向拓展的主要工作 …

电商价格监测,关注这些,才算实际到手价

品牌控价的第一项工作,是先找出低价乱价链接,这就需要进行电商价格监测。但是我们搜索品牌链接的时候,会发现网页上的价格是多种多样:有原价(但是划掉了)、促销价、折扣价、惊喜价,优惠活动也是…

localStorage

localStorage localStorage了解 有些数据确实需要存储在本地,但是它却不需要发送到服务器,所以并不适合放在cookie中 localStorage 也是一种浏览器存储数据的方式(本地存储),它只是存储在本地,不会发送…

【Linux】进程间通信(1)

信号 什么是信号?信号是给程序提供一种可以处理异步事件的方法,它利用软件中断来实现。不能自定义信号,所有信号都是系统预定义的。 信号由谁产生? 由shell终端根据当前发生的错误(段错误、非法指令等)Ctr…

商品详情的APP原数据接口测试

一、原数据接口的来源: 原数据接口来源于手机端,随着智能化的发展与普及,越来越多的人都是使用智能手机,这样极大的方便了人民的生活,各大电商平台看准了这个商家,把目光都瞄准这个商机,伴随而…

BP靶场中SQL注入练习

BP靶场中SQL注入练习1.Bp靶场介绍1.1.访问靶场1.2.注意事项2.SQL注入靶场2.1.注意事项2.2.检索隐藏数据2.2.1.开启靶场2.2.2.点击礼物2.2.3.测试类型2.2.4.爆出全部物品(包括隐藏)2.3.登录逻辑2.3.1.开启靶场2.3.2.登录账户2.3.3.注释验证2.3.4.成功登陆2.4.判断列2.4.1.开启靶…

会话技术--cookie和session

一、会话跟踪技术的概述 对于会话跟踪这四个词,我们需要拆开来进行解释,首先要理解什么是会话,然后再去理解什么是会 话跟踪: 会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接&#…

变量、作用域与内存

目录 原始值与引用值 动态属性 复制值 传递参数 确定类型 执行上下文与作用域 作用域链增强 变量声明 1.使用var 的函数作用域声明 2. 使用let 的块级作用域声明 3.使用const 的常量声明 标识符查找 垃圾回收 标记清理(最常用) 引用计数 内…

2022__我的嵌入式入坑之路

目录 一、学习篇 51单片机: python爬虫: stm32单片机: ad: 立创EDA: openmv: ardunio: ESP32: 汇编语言: ROS: FreeRTOS: matlab&a…

【学习】大数据关键技术

学习内容描述: 大数据涉及的四个环节是什么? 云计算服务的三种服务类型是什么? 重点知识: 大数据涉及的四个环节:1、数据采集;2、数据存储;3、数据管理;4、数据分析与挖掘。云计算…

大型智慧灌区信息化管理系统云平台 智慧灌区信息化管理系统解决方案

平升电子大型智慧灌区信息化管理系统云平台/智慧灌区信息化管理系统解决方案,对灌区的渠道水位、流量、水雨情、土壤墒情、气象等信息进行监测,同时对泵站、闸门进行远程控制,对重点区域进行视频监控,实现了信息的采集、统计、分析…

基于pyautogui的自动识别定位原神风物之诗琴按键弹奏程序

前言:为了学习pyautogui这个库的使用,我准备用它做点东西。比如一个自动弹琴的程序。不过这个琴不是现实里的琴,而是原神里的风物之诗琴。(这里有个网页版模拟器可以试试:风物之诗琴模拟器 (haveyouwantto.github.io)&…

Spring 监听器listener原理

1.创建本地事件和事件监听器/*** 事件类*/ public class MyEventA extends ApplicationEvent {private static final long serialVersionUID 1L;public MyEventA(Object source) {super(source);System.out.println("MyEventA 构造方法被执行了...");}public void o…

基于matlab开发的车牌检测与字符分割项目附源码

文章目录1 任务概述项目完整matlab源码2 基本流程2.1 车牌定位2.1.1 图像预处理2.1.2 边缘检测2.1.3 形态学操作2.1.4 重操作判断2.1.5 区域选择2.1.6 倾斜校正2.1.7 精确选择2.2 字符分割2.3 字符识别3 结果分析3.1 车牌定位3.2 字符分割3.3 字符识别4 总结5 参考资料1 任务概…

安装vim的最新版本

1、通过源码安装 对于Linux系统,可以通过源码编译来安装最新版本,我在wsl ubuntu下的操作如下: 获取vim的源码: git clone https://github.com/vim/vim.git刚开始我帆了墙,结果下载不动,关了帆墙软件可正常…

【入门AUTOSAR网络管理测试】AUTOSAR网络管理规范需求解读

文章目录前言一、名词解释二、NM报文1.NM报文格式2.NM报文数据场内容三、NM状态机1.NM状态转换图2.状态前言 AUTOSAR Automotive Open System Architecture,汽车开放系统架构,由全球汽车制造商、部件供应商及其他电子、半导体和软件系统公司联合建立&am…

Qt扫盲-QPlainTextEdit理论总结

QPlainTextEdit理论总结一、概述二、用途一:纯文本展示1. 用法2. 只读快捷键三、用途二:纯文本编辑器1. 用法2. 快捷键绑定四、与 QTextEdit 的不同一、概述 QPlainTextEdit是一个只支持纯文本的高级查看器/编辑器。 它经过优化,可以处理大型…