欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

对MySQL数据表的操作及各种数据类型的测试

程序员文章站 2022-05-31 16:14:56
...

以下所有[]中的内容代表 可省

-- 查看当前数据库中的所有表
SHOW tables;
-- 查看cms_news表的表结构
DESC cms_news;
DESCRIBE cms_news;
SHOW COLUMNS FROM cms_news;
-- 将表名user4 重命名为 user7
-- ALTER TABLE user6 RENAME [TO|AS] user7;

RENAME TABLE user6 TO user7;
-- 创建数据表的格式
-- CREATE TABLE [IF NOT EXISTS] tbl_name(
-- 字段名称 字段类型 [UNSIGNED|ZEROFILL] [NOT NULL] [DEFAULT 默认值] -- -- [[PRIMARY] KEY|UNIQUE [KEY]] [AUTO_INCREMENT]
-- )ENGINE=INNODB CHARSET=UTF8 AUTO_INCREMENT=100;
-- 向表中插入记录INSERT tbl_name VALUE|VALUES(值,...);
INSERT test1 VALUES(-128,-32768,-8388608,-2147483648,-9223372036854775808);
-- 查询表中所有记录 SELECT * FROM tab_name 
SELECT * FROM test1;
-- 查看创建表的标的定义
show create table user1;
-- 修改自增长的值
alter table user6 auto_increment=500;
-- 创建新闻表的 cms_news
-- 编号、新闻标题、新闻内容、新闻发布时间、点击量、是否置顶。新闻所属分类。发布人
CREATE TABLE IF NOT EXISTS cms_news(
id INT,
title VARCHAR(50),
content TEXT,
pubTime INT,
clickNum INT,
isTop TINYINT(1) COMMENT '0代表不置顶,1代表置顶'
);

-- 查看cms_news表的表结构
DESC cms_news;
DESCRIBE cms_news;
SHOW COLUMNS FROM cms_news;

-- 测试整型
CREATE TABLE test1(
num1 tinyint,
num2 smallint,
num3 mediumint,
num4 int,
num5 bigint
);
-- 向表中插入记录INSERT tbl_name VALUE|VALUES(值,...);
INSERT test1 VALUES(-128,-32768,-8388608,-2147483648,-9223372036854775808);

-- 查询表中所有记录 SELECT * FROM tab_name 
SELECT * FROM test1;

-- 无符号UNSIGNED 

CREATE TABLE test2(
num1 tinyint unsigned,
num2 tinyint
);

-- 零填充 ZREOFILL

CREATE TABLE test3(
num1 tinyint(3) ZEROFILL,
num2 smallint zerofill,
num3 mediumint zerofill,
num4 int zerofill,
num5 bigint zerofill
);

insert test3 values(1,1,1,1,1);

-- 测试浮点类型
create table test4(
num1 float(6,2),
num2 double(6,2),
num3 decimal(6,2)
);
insert test4 values(3.1415,3.1415,3.1415);

insert test4 values(3.2495,3.2495,3.2495);

-- 测试CHAR 和 VARCHAR
create table if not exists test5(
str1 CHAR(5),
str2 VARCHAR(5)
);
insert test5 values('1','1');

insert test5 values('123456','123456');

insert test5 values('','');

insert test5 values('1  ','1  ');

insert test5 values('  a','  a');

insert test5 values('啊','啊');


create table test6(
str1 text
);

insert test6 values('sdahklaJadafsjDSAJI');

-- 测试YEAR 
CREATE TABLE IF NOT EXISTS test7(
birth YEAR
);

insert test7 values(1901);
insert test7 values(2155);
insert test7 values(2156);

-- 测试主键
create table if not exists user1(
id int primary key,
username varchar(20)
);
-- 查看创建表的标的定义
show create table user1;

insert user1 values(1,'king');
insert user1 values(13,'king');

create table if not exists user2(
id int,
username varchar(20),
card char(18),
primary key(id,card)
);

insert user2 values(1,'king','111');

insert user2 values(1,'queen','112');

create table if not exists user3(
id int key,
username varchar(20)
);

-- 测试AUTO_INCREMENT
create table if not exists user5(
id smallint key AUTO_INCREMENT,
username varchar(20)
);

insert user5 values(1,'king');

insert user5(username) values('queen');

create table if not exists user6(
id smallint key AUTO_INCREMENT,
username varchar(20)
)auto_increment=100;
create table if not exists user10(
id smallint unsigned key auto_increment,
username varchar(20) not null unique,
password char(32) not null,
email varchar(50) not null default '[email protected]',
age tinyint unsigned default 18,
sex enum('男','女','保密') default '保密',
addr varchar(200) not null default '北京',
salary float(6,2),
regTime int unsigned,
face char(100) not null default 'default.jpg'
);

-- 添加card 字段 char(18)
alter table user10 add card char(18);

alter table user10 add test1 varchar(100) not null unique;

-- 添加到第一个字段
alter table user10 add test2 varchar(20) not null first;

-- 添加到uername 字段之后
alter table user10 add test3 int not null default 100 after username;

-- 选中一次表,完成多个操作
alter table user10
add test4 int not null default 123 after password,
add test5 float(6,2) first,
add test6 set('A','B','C');

--  删除test6 字段
alter table user10 drop test6;

-- 一次删除test1,test3,test4,test5
alter table user10 
drop test1,
drop test3,
drop test4,
drop test5;

-- 添加test字段和删除addr字段
alter table user10
add test int unsigned not null default 10 after sex,
drop addr;

-- 修改字段
-- ALTER TABLE tbl_name MODIFY 字段名称 字段类型[完整性约束条件] [FIRST | AFTER 字段名称]

-- 修改字段名称
-- ALTER TABLE tbl_name CHANGE 旧字段名称 新字段名称 字段类型 [完整性约束条件] [FIRST | AFTER 字段名称]

-- 添加默认值
-- ALTER TABLE tbl_name ALTER 字段名称 SET DEFAULT 默认值

-- 删除默认值
-- ALTER TABLE tbl_name ALTER 字段名称 DROP DEFAULT

-- 添加主键
-- ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type](字段名称...)

-- 删除主键
ALTER TABLE tbl_name DROP PRIMARY KEY 

-- 添加唯一
-- ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]]  UNIQUE [INDEX | KEY][索引名称](字段名称...)

-- 删除唯一 
-- ALTER TABLE tbl_name DROP {INDEX | KEY} index_name 

-- 修改表的存储引擎
-- ALTER TABLE tbl_name ENGINE=存储引擎名称

-- 设置自增长的值
-- ALTER TABLE tbl_name AUTO_INCREMENT=值

-- 删除数据表
DROP TABLE IF EXISTS user10;

DROP TABLE IF EXISTS user6,user7;
相关标签: MySQL数据表