您的位置:首页 > 财经 > 产业 > 数据库DDL | 增 删 改 操作 | 对数据库数据表

数据库DDL | 增 删 改 操作 | 对数据库数据表

2024/11/16 7:43:48 来源:https://blog.csdn.net/m0_48851832/article/details/140643448  浏览:    关键词:数据库DDL | 增 删 改 操作 | 对数据库数据表

DDL建库建表(操作数据库/表)⭐️⭐️⭐️

数据库

创建库
//create database 库名
create database xiaozhao2;
查看库
//查看所有的库
show databases;
删除库(危险操作)
//drop database 库名
drop database xiaozhao2;
使用库\切换库
//use 库名
use xiaozhao2;
查看库数据
//查看库中所有表数据
show tables;

数据表⭐️⭐️⭐️

创建表
//创建表
create table 表名(字段名  属性  类型,...字段名  属性  类型);-- `反引号 -- 取消关键性
--  DEFAULT NULL 表示该字段的值可以为空
--  DEFAULT CHARSET=utf8mb4 字符集
--  COLLATE=utf8mb4_0900_ai_ci 字符排序
--  ENGINE=InnoDB (重要) 存储 引擎 规则CREATE TABLE `student` (`stu_name` varchar(10) DEFAULT NULL,`stu_age` tinyint DEFAULT NULL,`stu_birthday` datetime DEFAULT NULL,`stu_id` char(18) DEFAULT NULL,`stu_score` decimal(4,1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
数据表的字段类型
  • 字符串类型
    • char(字符串长度) 固定长度字符串(0~255)
    • varchar(字符串长度) 可变长度字符串(0~65535)
    • tinytext(微型文本串) 167777215长度+3个字节
    • **text(**文本串 4个G左右大小) 4294967295长度+4个字节

⭐️⭐️⭐️char和varchar的比较

  1. char 特点固定长度浪费存储空间,在时间上效率高,适用于存储不大但速度要求高的场景。

  2. varchar 特点可变长度节省存储空间,在时间上效率低,适用于非CHAR的情况

char(5) : ‘abcdef’ ❌存不下(因为数量不够) ‘abcd ‘✔ 可以存储,并且占了5个字符,不够的用空格补齐!
varchar(5) ‘abcdef’❌存不下(因为不够) ‘abcd‘ ✔可以存储,并且只占了4个字符空间!

  • 数值类型

    • tinyint 非常小的数据 存储需求1字节 有符值-27~27-1,无符值0~2^8-1

    • smallint 较小的数据 2字节 有符值-215~215-1,无符值0~2^16-1

    • mediumint 中等大小的数据 3字节 有符值-223~223-1,无符值0~2^24-1

    • int 标准整数 4字节 有符值-231~231-1,无符值0~2^32-1

      ⭐️int(2)和int(1) 的区别,int(1)中1的含义?

      ​ 1,2跟位数有关,至少显示1位,跟数字长度无关,例如int(2)输进去9输出09;输进去10输出10;int(1)输进去6输出6,输进去10输出10;区别是位数左边0的个数。1代表至少要显示1位。2代表至少显示2位。存储大于显示位数的直接输出,小于显示位数的左边用0补。

      而varchar(20)代表最多可以存储20

    • bigint 较大的整数 8字节 有符值-264~263-1,无符值0~2^64-1

    • float 单精度浮点数 4字节 ±1.1754351e-38

    • double 双精度浮点数

    decima(m,n) m:总长度 n:小数位数
    例子:要求值的范围 0~100,小数位之后一位,?
    decima(4,1) 999.9

  • 日期和时间类型

    • date YYYY-MM-DD日期格式

    • time Hh:mm:ss 时间格式

    • datetime YY-MM–DD hh:mm:ss

    • timestamp YYYYMMDDhhmmss格式表示的时间戳

    • year YYYY格式的年份值

      DEFAULT CURRENT_TIMESTAMP 添加当前默认时间

  • NULL类型

    • 理解为"没有值"、“未知值”
    • 0和Null都表示假,1为真
    • 不要用Null进行算术运算,结果仍为NULL
查看表
查看表的字段(2个方式)
//查看表结构//方式1
desc 表名;//方式2(拿到数据库真正建表的语句)
show create table 表名;// `反引号 -- 取消关键性
--  DEFAULT NULL 表示该字段的值可以为空
--  DEFAULT CHARSET=utf8mb4 字符集
--  COLLATE=utf8mb4_0900_ai_ci 字符排序
--  ENGINE=InnoDB (重要) 存储 引擎 规则CREATE TABLE `student` (`stu_name` varchar(10) DEFAULT NULL,`stu_age` tinyint DEFAULT NULL,`stu_birthday` datetime DEFAULT NULL,`stu_id` char(18) DEFAULT NULL,`stu_score` decimal(4,1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
🌟🌟 🌟修改表
表名修改
alter table 旧表名 rename as 新表名;
添加表字段⭐️⭐️⭐️
 alter table 表名 add 新字段名 类型 属性;
//给xuesheng表添加字段和备注alter table xuesheng add stu_qq varchar(20) comment '这是学生的qq号';
删除表字段
alter table 表名 drop 字段名;
修改表字段(2个方式)
// 方式1
alter table 表名 modify 字段名 要修改的类型 要修改的属性
// 方式二 changealter table 表名 change 旧字段名 新字段名 要修改的类型 要修改的属性
覆盖式,
-- 1.一定的默认值
-- 2.如果已经存在具体数据--数据是可以做隐式转换
// 方式1
alter table 表名 modify 字段名 要修改的类型 要修改的属性e.g:将stu_name 类型从 varchar(10) 改为varchar(100)
alter table xuesheng modify stu_name varchar(100); -- 方式二 change
-- alter table 表名 change 旧字段名 新字段名 要修改的类型 要修改的属性
alter table xuesheng change stu_qq qq  varchar(20) comment '学生qq号';

删除表

drop table 表名

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com