mysql建表建索引

建表:

CREATE TABLE `sj_projects` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL DEFAULT ‘‘ COMMENT ‘项目名称‘,
`platform_id` int(11) NOT NULL DEFAULT ‘0‘ COMMENT ‘平台id‘,
`unique_id` varchar(255) NOT NULL DEFAULT ‘‘ COMMENT ‘项目和数据的唯一id‘,
`repayway` varchar(255) NOT NULL DEFAULT ‘‘ COMMENT ‘还款方式‘,
`profit` decimal(5,2) NOT NULL DEFAULT ‘0.00‘ COMMENT ‘年化收益‘,
`speed` decimal(5,2) NOT NULL DEFAULT ‘0.00‘ COMMENT ‘进度‘,
`frequency` int(11) NOT NULL DEFAULT ‘0‘ COMMENT ‘投资人次‘,
`amount` decimal(20,2) NOT NULL DEFAULT ‘0.00‘ COMMENT ‘融资金额‘,
`res_amount` decimal(20,2) NOT NULL DEFAULT ‘0.00‘ COMMENT ‘剩余可投金额‘,
`invtime` timestamp NOT NULL DEFAULT ‘0000-00-00 00:00:00‘ COMMENT ‘项目投资起始时间‘,
`endtime` timestamp NOT NULL DEFAULT ‘0000-00-00 00:00:00‘ COMMENT ‘项目投资结束时间‘,
`turntime` timestamp NOT NULL DEFAULT ‘0000-00-00 00:00:00‘ COMMENT ‘项目还款时间(客户收款时间)‘,
`term` varchar(50) NOT NULL DEFAULT ‘‘ COMMENT ‘期限‘,
`type` int(11) NOT NULL DEFAULT ‘0‘,
`PageUrl` text COMMENT ‘注意大小写PageUrl‘,
`insert_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘添加时间‘,
`orderby_id` int(11) NOT NULL DEFAULT ‘1‘ COMMENT ‘排序‘,
`status` tinyint(1) NOT NULL DEFAULT ‘1‘ COMMENT ‘状态 0为关闭,1为开启‘,
PRIMARY KEY (`id`),
KEY `unique_id` (`unique_id`) USING BTREE

) ENGINE=InnoDB AUTO_INCREMENT=2383 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT=‘项目表‘;

如果为唯一索引: UNIQUE KEY `unique_id` (`unique_id`) USING BTREE

也可以直接这样:(唯一索引)

unique_id  VARCHAR(255) UNIQUE NOT NULL DEFAULT ‘‘ COMMENT ‘项目和数据的唯一id‘,

查询:

show index from sj_projects;  -- 查询sj_projects的所有索引

SHOW CREATE TABLE sj_projects\G

添加索引:

ALTER TABLE `sj_projects` ADD UNIQUE `unique_id` (`unique_id`);  -- 唯一索引

ALTER TABLE `sj_projects` ADD INDEX `unique_id` (`unique_id`);    -- 普通索引

ALTER TABLE `sj_projects` ADD INDEX `uniqueId` (`unique_id`);    -- 普通索引可以修改名字

删除索引:

ALTER TABLE `sj_projects` DROP INDEX `unique_id`;

删除自增id索引:

需要先将id键的自动增长取消:

ALTER TABLE `sj_projects`  MODIFY `id`  int(10) NOT NULL COMMENT ‘id‘;

再次执行: ALTER TABLE `sj_projects` DROP PRIMARY KEY;

时间: 2024-10-16 17:57:08

mysql建表建索引的相关文章

SQL Server建库-建表-建约束

----------------------------------------SQL Server建库-建表-建约束创建School数据库-------------------------------------- --创建School数据库之前:首先判断数据库是否存在,若存在则删除后再创建,若不存在则创建----exists关键字:括号里边能查询到数据则返回‘true’ 否则返回‘false’if exists(select * from sysdatabases where name =

Mysql建表与索引使用规范详解

一. MySQL建表,字段需设置为非空,需设置字段默认值. 二. MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL. 三. MySQL建表,如果字段等价于外键,应在该字段加索引. 四. MySQL建表,不同表之间的相同属性值的字段,列类型,类型长度,是否非空,是否默认值,需保持一致,否则无法正确使用索引进行关联对比. 五. MySQL使用时,一条SQL语句只能使用一个表的一个索引.所有的字段类型都可以索引,多列索引的属性最多15个. 六. 如果可以在多个索引中进行选择,My

Linux命令:MySQL系列之四--MySQL管理表和索引

SQL语句: 数据库 表 索引 视图 DML语句 单字段:    PRIMARY KEY 主键 UNIQUE KEY 唯一键 单或者多字段:    PRIMARY KEY(col,...) UNIQUE KEY(col,...) INDEX(col,...) 数据类型: data_type: BIT[(length)] 比特 | TINYINT[(length)] [UNSIGNED] [ZEROFILL] 非常小的整数(1字节) | SMALLINT[(length)] [UNSIGNED]

随笔编号-16 MySQL查看表及索引大小方法

目标:阿里云OS数据库DMS,单个主库最大存储空间为2T.最近公司业务扩展很快,一天数据量达到7.9G左右.要求备份清理历史数据,备份到其他磁盘. 准备: 如果想知道MySQL数据库中每个表占用的空间.表记录的行数的话,可以打开MySQL的 information_schema 数据库.在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE_SCHEMA : 数据库名TABLE_NAME:表名ENGINE:所使用的存储引擎TABLES_ROWS:记录数DATA_LENGTH:数据大

使用T-sql建库建表建约束

为什么要使用sql语句建库建表? 现在假设这样一个场景,公司的项目经过测试没问题后需要在客户的实际环境中进行演示,那就需要对数据进行移植,现在问题来了:客户的数据库版本和公司开发阶段使用的数据库不兼容怎么移植? 行之有效的办法就是编写比较通用的SQL语句,编写完毕后存入*.sql文件中,最后复制到客户的计算机中,并执行*.sql文件中的SQL语句,从而实现后台数据库的移植.所以我们很有必要掌握如何使用SQL语句,实现创建数据库.创建表.添加约束和创建登录账户等! 使用SQl语句创建和删除数据库

mysql创建表与索引

-- ---------------------------- -- 商品属性表 -- AUTO_INCREMENT=1为设置了自增长的字段设置起点,1为起点 -- ENGINE选择:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持. -- NOT NULL 设置字段不为空,DEFAULT NULL设置字段默认值 -- COMMENT注释 -- DEFAULT CHARSET=utf8为字段设置默认编码(如果表字段没有设置编码,那么默认就是这里指定的编码) -- characte

mysql 为表添加索引

索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍. 例如,有3个未索引的表t1.t2.t3,分别只包含列c1.c2.c3,每个表分别含有1000行数据组成,指为1-1000的数值,查找对应值相等行的查询如下所示. SELECT c1,c2,c3 FROM t1,t2,t3 WHERE c1=c2 AND c1=c3此查询结果应该为1000行,每行包含3个相等的值

mysql 建库建表建用户

1.创建数据库 create database school; 2.使用数据库 Use school; 3.创建用户 create user [email protected] identified by 'jame'; 4.授权用户(注意这里是用了*哦,可以自己讲school也替换成*号) grant select,update,insert,create on school.* to [email protected] identified by 'j ame'; 5.取消授权(现在明白为啥

mysql 一个典型的数据库建表建用户过程

cmd 命令不接 ";" mysql 命令后接 ";" 1.以管理员身份登录mysql mysql -u root –p 2.选择mysql数据库 use mysql; 3.创建用户并设定密码 create user 'test'@'localhost' identified by '123456'; 4.使操作生效 flush privileges; 5.为用户创建数据库 create database testdb; 6.为用户赋予操作数据库testdb的所有权