零基础学MySQL(二)-- 表的创建,修改,删除
创始人
2024-05-11 15:31:37
0

在这里插入图片描述


文章目录

    • 🎈一、创建表
      • 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 TIMESTAMPNOT NULL DEFAULT CURRENT_TIMESTAMPON 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_playerADD enter_nba_time INT NOT NULL DEFAULT 0AFTER team;

2️⃣修改列

基本语法:

ALTER TABLE 表名MODIFY 列名 列类型

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

ALTER TABLE nba_playerMODIFY `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 代表只有表存在才会删除该表,表名不存在,则不执行删除操作(如果不
加该项,删除一张不存在的表,执行将会报错)。

相关内容

热门资讯

findx耍原生安卓系统,深度... 亲爱的读者们,你是否厌倦了那些花里胡哨的定制系统,渴望回到那个纯净的安卓世界?今天,我要带你一起探索...
一加系统属于安卓系统吗,引领智... 你有没有想过,手机里的那个神奇的“一加系统”到底是不是安卓系统的一员呢?这可是个让人好奇不已的问题哦...
小米2刷安卓系统吗,探索安卓系... 亲爱的读者,你是否曾经对小米2这款手机刷安卓系统的事情感到好奇呢?今天,就让我带你一探究竟,揭开小米...
安卓7.0系统线刷包,深度解析... 你有没有发现,你的安卓手机最近有点儿“蔫儿”了?别急,别急,今天就来给你揭秘如何让你的安卓手机重焕生...
白菜系统和安卓拍照,开启智能生... 你知道吗?最近我在用手机拍照的时候,发现了一个超级酷的功能,简直让我爱不释手!那就是——白菜系统和安...
安卓系统查杀病毒,全方位守护您... 手机里的安卓系统是不是有时候会突然弹出一个查杀病毒的提示?别慌,这可不是什么大问题,今天就来给你详细...
iso系统与安卓各系统哪个好,... 你有没有想过,手机操作系统就像是我们生活中的不同交通工具,各有各的特色和优势。今天,咱们就来聊聊这个...
中柏怎么换安卓系统,解锁更多可... 你有没有发现,中柏的安卓系统有时候用起来还挺不顺手的?别急,今天就来手把手教你如何给中柏手机升级安卓...
安卓热点绕过系统验证,揭秘操作... 你是不是也遇到过这种情况?手机里的安卓热点突然不灵光了,系统验证总是跳出来,让人头疼不已。别急,今天...
安卓系统怎么关闭小艺,安卓系统... 亲爱的安卓用户们,你是否也和我一样,对手机里的小艺助手有些爱恨交加呢?有时候,它贴心得让人感动,有时...
安卓系统计划软件推荐,精选计划... 你有没有发现,手机里的安卓系统越来越智能了?这不,最近我可是挖到了一些超棒的安卓计划软件,它们不仅能...
收钱吧安卓系统插件,便捷支付新... 你有没有发现,现在的生活越来越离不开手机了?手机里装满了各种应用,而今天我要跟你聊聊一个特别实用的工...
鸿蒙系统是否还属于安卓,独立于... 你有没有想过,那个在我们手机上默默无闻的鸿蒙系统,它到底是不是安卓的“亲戚”呢?这个问题,估计不少手...
安卓系统手机用什么钱包,轻松管... 你有没有想过,你的安卓系统手机里装了那么多应用,但最离不开的,可能就是那个小小的钱包了。没错,就是那...
安卓系统能玩部落冲突吗,部落冲... 你有没有想过,安卓系统上的手机,是不是也能玩那款风靡全球的《部落冲突》呢?这款游戏自从推出以来,就吸...
智能机器人安卓系统,引领未来智... 你知道吗?在科技飞速发展的今天,智能机器人已经不再是科幻电影里的专属了。它们正悄悄地走进我们的生活,...
华为win10系统改装安卓系统... 你有没有想过,你的华为笔记本电脑里的Windows 10系统,能不能来个华丽变身,变成安卓系统呢?这...
旧电脑上安什么安卓系统,适配不... 你那台旧电脑是不是已经闲置好久了?别让它默默无闻地躺在角落里,给它来个华丽变身吧!今天,就让我来告诉...
安卓app语言跟随系统,随系统... 你知道吗?在手机世界里,有一个神奇的小功能,它就像你的贴身翻译官,无论你走到哪里,都能帮你轻松应对各...
惠城安卓系统降级在哪,揭秘降级... 你有没有遇到过手机系统升级后,发现新系统让你头疼不已,想回到那个熟悉的安卓系统呢?别急,今天就来告诉...