MySQL 03 :表
Mysql常用数据类型(列类型)
timestamp[时间戳] 更新一个列的时候,他也会自动更新
Mysq常用数据类型
整型
数值型
#演示bit类型使用 #说明
#1。bit(m)m在1-64
#2。添加数据范围按照你给的位数来确定,比如=8表示一个字节0~255
#3。显示按照bit
#4。查询时,仍然可以按照数来查询
CREATE TABLE t05 (num BIT(8));
INSERT INTO t05 VALUES(255);
SELECT *FROM t05;
SELECT * FROM t05 WHERE num = 255;
小数
字符串
CHAR(size) 0~255指的是字符
VARCHAR(size) 0~65535指的是字节,针对UTF8需要除3,针对gbk需要除2
#演示字符串类型使用char varchar
#注释的快捷键shift+ctrl+c,注销注释shift+ctr1+r
-- CHAR(size)
-- 固定长度字符串最大255字符 VARCHAR(size) 0~65535字节
-- 可变长度字符串最大65532字节 【utf8编码最大21844字符1-3个字节用于记录大小】
-- 如果表的编码是utf8 varchar(size)size =(65535-3)/3 21844
-- 如果表的编码是gbk varchar(size)size=(65535-3)/2=32766
CREATE TABLE t09 (
name1 CHAR(255));
CREATE TABLE t10 (
name2 VARCHAR(21844));
CREATE TABLE t11 (
name2 VARCHAR(32766)) CHARSET gbk;
#假如输入的是32777 error = exist
字符串细节
不区分字符是汉字还是字母
#演示字符串类型的使用细节
#char(4)和varchar(4)这个4表示的是字符,而不是字节
CREATE TABLE t12 (
`name` CHAR(4));
INSERT INTO t12 VALUES('abcd');
INSERT INTO t12 VALUES('欧阳娜娜');
SELECT * FROM t12;
LONGTEXT 是可伸缩的,不会浪费空间,而char浪费空间,但是查询速度快
#如果varchar不够用,可以考试使用nediumtext或者longtext,
#如果想简单点,可以使用直接使用text
CREATE TABLE t14(content TEXT, conten2 MEDIUMTEXT , conten3 LONGTEXT);
INSERT INTO t14 VALUES('韩顺平教育分布式对象存储系统的容错广泛应用了纠删码技术,比如RS code,但是传统纠删码技术在数据修复过程中占用大量的计算资源和网络资源,在性能方面甚至还不及副本策略。Regenerating codes是一种特殊的纠删码,它能够有效减少修复时候的成本。再生码以块为修复粒度的特性,导致了它在实际应用于对象存储系统中时会产生一系列的问题。现有的对象存储系统Rcstor将对象以一种Geometric Partitioning的方法,将对象按照一个集合序列划分为一系列的块,用序列头部的小块提升流水线并行传输能力,用序列尾部的大块来提升恢复效率。但是这种解决方案在高并发的情况下,会造成网络拥塞导致级联的效应,最终导致系统宕机。为了解决这一难题,我们设计了一个新的对象存储系统—CSStor。CSStor对几何划分后的数据块使用了一种新的放置方式,有助于避免在高并发场景下的雪崩效应,并且提升系统的吞吐量。实现了Rcstor系统的xxx恢复性能,同时保持系统较好的鲁棒性。
','韩顺平教育100','韩顺平教育1000');
SELECT * FROM t14;
时间 TIMESTAMP 需要配置NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
如果我们更新t14表的某条记录,1 ogin time列会自动的以当前时间进行更新
#演示时间相关的类型
#创建一张表,date,datetime,timestamp
CREATE TABLE t15(
birthday DATE ,
jobtime DATETIME,
logintime TIMESTAMP
NOT NULL DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP);
INSERT INTO t15(birthday,jobtime)VALUES('2022-11-11','2022-11-11 10:10:10');
-- 登录时间,如果希望1 ogin time列自动更新
SELECT * FROM t15;
#-- 如果我们更新t14表的某条记录,1 ogin time列会自动的以当前时间进行更新
CREATE TABLE `emp`(
id INT,
`name` CHAR(32),
sex CHAR(1),
birthday DATE,
entry_date DATETIME,
job VARCHAR(32),
Salary FLOAT,
resume TEXT) COLLATE utf8_bin ENGINE INNODB;
INSERT INTO `emp` VALUE(100,'韩顺平','男','2022-11-11','2022-12-22 10:10:10','工程师',1000.100,'之所');
SELECT * FROM `emp`;
DROP TABLE `emp`;
修改表
ALTER TABLE `emp`
ADD image VARCHAR(32) NOT NULL DEFAULT ''
AFTER RESUME
DESC emp -- 显示表结构,可以香看表的所有列
ALTER TABLE `emp`
MODIFY job VARCHAR(60) NOT NULL DEFAULT ''
ALTER TABLE emp
DROP sex
RENAME TABLE emp TO employee
ALTER TABLE employee CHARACTER SET utf8
ALTER TABLE employee CHANGE `name` user_name VARCHAR(32) NOT NULL DEFAULT ''
DESC employee