Blogger Information
Blog 250
fans 3
comment 0
visits 321598
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
mysql 数据类型
梁凯达的博客
Original
838 people have browsed it


实例

-- 创建一个简单的表格
CREATE TABLE IF NOT EXISTS test(
	sn INT,
	name VARCHAR(255)
)ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- 创建一个数据表 测试整型内容

CREATE TABLE IF NOT EXISTS text2(
	n1 TINYINT,
	n2 SMALLINT,
	n3 MEDIUMINT,
	n4 INT,
	n5 BIGINT
)ENGINE =MyISAM DEFAULT CHARSET=utf8;

-- 查看表结构
-- DESC 表名
tinyint(4) -128 127     0-255
smallint(6)
mediumint(9)
int(11)  -2147483648   2147483647
bigint(20)

-- 创建test3 无符号测试
CREATE TABLE IF NOT EXISTS test3(
	n1 TINYINT,
	n2 TINYINT UNSIGNED
)ENGINE = MyISAM DEFAULT CHARSET=utf8;
INSERT INTO test3(n1) VALUES(-128);
INSERT INTO test3(n1) VALUES(-129);
INSERT INTO test3(n1) VALUES(127);
INSERT INTO test3(n1) VALUES(128);
-- ERROR 1264 (22003): Out of range value for column 'n1' at row 1
INSERT INTO test3(n2) VALUES(-128);
INSERT INTO test3(n2) VALUES(300);
INSERT INTO test3(n2) VALUES(0);
INSERT INTO test3(n2) VALUES(255);

-- 创建test4表测试零填充
CREATE TABLE IF NOT EXISTS test4(
	n1 INT ZEROFILL
)ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO test4 VALUES(4);

CREATE TABLE IF NOT EXISTS test5(
	n1 INT(5) ZEROFILL
)ENGINE =MyISAM DEFAULT  CHARSET=utf8;
INSERT INTO test5 VALUES(1);
INSERT INTO test5 VALUES(123456);


-- 浮点数  就是小数

CREATE TABLE IF NOT EXISTS test7(
	n1 DECIMAL(10,2)
)ENGINE =MyISAM DEFAULT CHARSET=utf8;

INSERT INTO test7 VALUES(999999999);
INSERT INTO test7 VALUES(99999999.44);
INSERT INTO test7 VALUES(99999999.445);
INSERT INTO test7 VALUES(99999999.444);

CREATE TABLE IF NOT EXISTS test8(
	n1 DECIMAL(3,3)
)ENGINE = MyISAM DEFAULT CHARSET=utf8;
INSERT INTO test8 VALUES(1);

CREATE TABLE IF NOT EXISTS test9(
	n1 DECIMAL(2,3)
)ENGINE = MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS test10(
	f FLOAT(9,2),
	d DECIMAL(9,2)
)ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO test10 VALUES(1234567.23,1234567.23);

-- 字符串类型
-- CHAR(255) 定长类型  分配多少占用多少
-- VARCHAR(255) 变长类型  分配多少使用多少 占用多少

CREATE TABLE IF NOT EXISTS test11(
	str1 CHAR(5),
	str2 VARCHAR(5)
)ENGINE = MyISAM DEFAULT CHARSET=utf8;

INSERT INTO test11(str1,str2) VALUES('12345','12345');
INSERT INTO test11(str1,str2) VALUES('胃你好吗?!','胃你好吗?');
INSERT INTO test11(str1,str2) VALUES('1','1');
-- ERROR 1406 (22001): Data too long for column 'str1' at row 1

-- name      varchar()
-- password  char(32)

CREATE TABLE IF NOT EXISTS test12(
	str TEXT
)ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- 添加 数据测试
INSERT INTO test12(str) VALUES('昨天晚上狗哥,去网吧,看见坐在隔壁的有个小孩在和他妈打电话说在学校,狗哥一看这不行 狗哥就喊 网管换机器,狗哥心里想回家挨打吧,狗哥老婆给他打电话问狗哥你在哪,狗哥说我在网吧呀 打游戏呢,这个时候隔壁小孩喊了一句 402号退房用了三个毕云涛!!');

-- 测试 enum 类型

CREATE TABLE IF NOT EXISTS test13(
	sex ENUM('man','woman','girl','boy','gay','less')
)ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO  test13(sex) VALUES('man');
INSERT INTO  test13(sex) VALUES('man','gay');
INSERT INTO  test13(sex) VALUES('man,gay');

-- ERROR 1265 (01000): Data truncated for column 'sex' at row 1
-- 添加不存在的枚举范围则显示上面内容

-- 测试set类型
CREATE TABLE IF NOT EXISTS test14(
	hobby SET('oldwoman','oldman','皮鞭','蜡烛','快乐球','手铐','富婆','小鲜肉')
)ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- 
INSERT INTO test14 VALUES('oldwoman');
INSERT INTO test14 VALUES('皮鞭,蜡烛,快乐球');
INSERT INTO test14 VALUES('抽烟,喝酒,烫头,玩');

CREATE TABLE IF NOT EXISTS test15(
	time INT
)ENGINE = MyISAM DEFAULT CHARSET=utf8;
INSERT INTO test15 VALUES(1546397570);

-- test16 not null default
CREATE TABLE IF NOT EXISTS test16(
	name VARCHAR(255) NOT NULL DEFAULT ''
)ENGINE=MyISAM DEFAULT CHARSET=UTF8;
INSERT INTO test16 VALUES(NULL);
-- ERROR 1048 (23000): Column 'name' cannot be null

-- test17 测试 auto_increment
CREATE TABLE IF NOT  EXISTS test17(
	id INT AUTO_INCREMENT PRIMARY KEY
)ENGINE=MyISAM DEFAULT CHARSET=utf8;
--ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
-- PRIMARY KEY  主键
INSERT INTO test17 VALUES(null);

-- 创建一个表用户表  myuser
-- id    编号
-- name  用户名
-- password 密码
-- age   年龄
-- sex   性别
-- reg_time 注册时间
-- sign    简介
CREATE TABLE IF NOT EXISTS myuser(
	id INT UNSIGNED AUTO_INCREMENT PRIMARY kEY,
	name VARCHAR(255) NOT NULL UNIQUE, -- 唯一索引
	password CHAR(32) NOT NULL DEFAULT '',
	age TINYINT UNSIGNED NOT NULL DEFAULT 0,
	sex TINYINT NOT NULL DEFAULT 0,
	reg_time INT NOT NULL DEFAULT 0,
	sign TEXT
)ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO myuser(id,name,password,age,sex,reg_time,sign) VALUES(null,'user1',md5('123456'),18,1,1546397570,'让学习成为一种习惯');
INSERT INTO myuser(id,name,password,age,sex,reg_time,sign) VALUES(null,'user2',md5('123456'),18,1,1546397570,'让学习成为一种习惯');

-- ERROR 1062 (23000): Duplicate entry 'user1' for key 'name'

-- 修改表名
-- ALTER TABLE 旧表名 RENAME TO 新表名
ALTER TABLE myuser RENAME TO user1;
ALTER TABLE user1 RENAME TO myuser;

-- 修改字段名
-- ALTER TABLE 表名 CHANGE 老字段名 新字段名  数据类型  属性 索引
ALTER TABLE myuser CHANGE name username  VARCHAR(255) NOT NULL UNIQUE;
ALTER TABLE myuser CHANGE username name  VARCHAR(255) NOT NULL UNIQUE;

-- 修改数据类型
-- ALTER TABLE 表名 MODIFY 字段名  数据类型 属性 索引
ALTER TABLE myuser MODIFY sex INT NOT NULL DEFAULT 0;
ALTER TABLE myuser MODIFY sex TINYINT NOT NULL DEFAULT 0;

-- ERROR 1366 (HY000): Incorrect integer value: 'user1' for column 'name' at row 1
-- 不可以将原来是varcahr里面只有的字段改为int 因为转换不了
-- ALTER TABLE myuser MODIFY name INT NOT NULL DEFAULT 0;

-- 添加字段
-- ALTER TABLE 表名 ADD 新字段名 数据类型 属性 索引 [FIRST|AFTER 字段名]
ALTER TABLE myuser ADD email VARCHAR(255) NOT NULL;
ALTER TABLE myuser ADD tel  CHAR(11) NOT NULL FIRST;
ALTER TABLE myuser ADD idcard CHAR(18) NOT NULL AFTER name;

-- 删除字段
-- ALTER TABLE  表名  DROP  字段名
ALTER TABLE  myuser DROP tel;
ALTER TABLE  myuser DROP email;
ALTER TABLE  myuser DROP idcard;

运行实例 »

点击 "运行实例" 按钮查看在线实例

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post