MySQL常用SQL总结

#建表
CREATE TABLE `CS_RECON_ACCRUED_DETAIL` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT,
`ORDER_NO` varchar(32) DEFAULT NULL COMMENT '明细订单号',
`DATA_TYPE` varchar(2) DEFAULT NULL COMMENT '数据类型:15-xxx',
`TRANDATE` date DEFAULT NULL COMMENT '交易日期',
`CREATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '创建时间',
`UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '更新时间',
`REMARK` varchar(128) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`ID`),
UNIQUE KEY `UI_CS_RECON_ACCRUED_DETAIL_DATA_TYPE_ORD_SEQ_SERIAL_NO` (`ORDER_NO`,`DATA_TYPE`),
KEY `I_CS_RECON_ACCRUED_DETAIL_TRANDATE` (`TRANDATE`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='明细表';

#创建普通索引
CREATE INDEX I_CS_DAILY_SUMMARY_BP_NO ON CS_DAILY_SUMMARY
(
BP_NO
);

#创建唯一索引
CREATE UNIQUE INDEX UI_CS_DAILY_SUMMARY_BP_NO_TRANDATE ON CS_DAILY_SUMMARY
(
BP_NO,
TRANDATE,
CLEAR_TYPE,
SUMMARY_TYPE,
PRODUCT_CODE,
MAIN_COMPANY_CODE,
FILE_BATCH_NO
);

#删除索引
alter table CS_DAILY_SUMMARY drop index I_CS_DAILY_SUMMARY_BP_NO;

#新增字段
alter table CS_DAILY_SUMMARY add column SETTLE_CATEGORY varchar(2) default '1' COMMENT '(1时间区间/2文件)' after PRODUCT_CODE;

#修改字段(只修改类型等,不涉及字段名修改)
alter table CS_DAILY_SUMMARY modify column SETTLE_CATEGORY varchar(10);

#修改字段名(如果该字段上有索引,索引中该字段名也会同步更新)
alter table CS_DAILY_SUMMARY CHANGE SETTLE_CATEGORY SETTLE_CATEGORY_01 varchar(10);

#字段添加注释
alter table CS_DAILY_SUMMARY modify column SETTLE_CATEGORY varchar(10) comment '修改后的字段注释';

#删除字段
alter table CS_DAILY_SUMMARY drop column SETTLE_CATEGORY;

#给表添加注释
alter table CS_SETTLE_BIZ_TYPE_CONFIG comment '结算单业务类型配置表';

#查看mysql版本
select version();

#添加全文索引
#FULLTEXT 索引在 MySQL 5.6 版本之后支持 InnoDB,而之前的版本只支持 MyISAM 表
#全文索引主要用来查找文本中的关键字,而不是直接与索引中的值相比较。fulltext索引跟其它索引大不相同,它更像是一个搜索引擎,而不是简单的where语句的参数匹配
#fulltext索引配合match against操作使用,而不是一般的where语句加like。目前只有char、varchar,text 列上可以创建全文索引
ALTER TABLE table_name ADD FULLTEXT index_fulltext_content(col_name);

#如果删除字段,或修改字段名,会对基于该字段的索引有什么影响
如果是单列索引,删除字段时,该索引将自动被删除;修改字段名时,该索引将自动指向新字段名

#允许用户myuser使用mypassword从任何主机连接到mysql服务器
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;

#允许用户myuser使用mypassword从ip为192.168.1.6的主机连接到mysql服务器的dk数据库
GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;

原文地址:https://www.cnblogs.com/atai/p/10060458.html