1. 建
/*创建数据库并指定字符集*/
creat database 库名 default character set utf8;
/*创建表*/
DROP TABLE IF EXISTS`表名`;
CREATE TABLE`表名` (
`ID` bigint(20) NOT NULL DEFAULT 0 COMMENT'主键',
`age` tinyint(2) NULL COMMENT'年龄',
`name` varchar(100) NULL COMMENT'名字',
PRIMARY KEY (`ID`) USING BTREE,
UNIQUE INDEX`idx_id`(`ID`) USING BTREE,
INDEX`Idx_name`(`name`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci
/*创建临时表*/
DROP TEMPORARY TABLE IF EXIST TABLEtmpTable;
CREATE TEMPORARY TABLEtmpTable(
ID INT primary key,
name varchar(30),
age tinyint(2)
)Engine=InnoDBdefault charset utf8;
DROP TEMPORARY TABLEtmpTable;
/*创建函数*/
CREATE FUNCTION `funcName`(`iObjectID` INT, `iTypeID` INT) RETURNS int(11)
BEGIN
END
/*创建存储过程*/
CREATE PROCEDURE `proceName`(
IN `objectId` BIGINT
)
BEGIN
END
/*创建简单的索引,在表上创建一个简单的索引。当我们省略关键词 UNIQUE 时,就可以使用重复的值。*/
CREATE INDEX 索引名称 ON 表名称 (列名称)
/*唯一的索引 (Unique Index):在表格上面创建某个一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值。*/
CREATE UNIQUE INDEX 索引名称 ON 表名称 (列名称)
/*联合索引*/
CREATE INDEX 索引名称 ON 表名称 (列名称1, 列名称2)
/*事务中捕捉异常*/
declare t_error INTEGER; -- 事务提交错误码
declare CONTINUE HANDLER FOR SQLEXCEPTION SET t_error = 1;
RETURN_FLAG : BEGIN
-- 开启事务START TRANSACTION;
prepare stmt from @ssql;
EXECUTE stmt;
deallocate prepare stmt;
-- 事务异常捕捉
IF (t_error = 1) THEN
ROLLBACK;
LEAVE RETURN_FLAG;
END IF;
COMMIT;
END;
2.增
添加主键约束:alter table 表名 add constraint 主键 (形如:PK_表名) primary key 表名(主键字段);
添加外键约束:alter table 从表 add constraint 外键(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);
添加列:alter table 表名 add column 列名 varchar(30);
3.删
删除主键约束:alter table 表名 drop primary key;
删除外键约束:alter table 表名 drop foreign key 外键(区分大小写)
删除列:alter table 表名 drop column 列名
删除属性:ALTER TABLE 表名 DROP 属性名
删除表:DROP TABLE 表名
删除主键:ALTER TABLE 表名 DROP PRIMARY KEY;
删除外键:ALTER TABLE 表名 DROP FOREIGN KEY 外键别名
删除唯一性:ALTER TABLE 表名 DROP UNIQUE 唯一性约束名
删除所有记录:TRUNCATE TABLE 表名
4.改
修改表改名:ALTER TABLE tab RENAME newtab
修改表改名:RENAME TABLE tab to newtab
修改列位置:ALTER TABLE 表名 MODIFY COLUMN id FIRST(AFTER);
修改列位置:ALTER TABLE 表名 MODIFY COLUMN id FIRST name;
修改列类型:ALTER TABLE 表名 MODIFY COLUMN 字段名 字段类型定义;
修改列类型:ALTER TABLE chatter_users MODIFY COLUMN ip VARCHAR(50);
修改列名称:ALTRT TABLE tabname CHANGE num age.
修改列名称:ALTRT TABLE bbb change nnnnn hh int;
修改列属性:alter table t_book modify name varchar(22);
修改默认值:ALTER TABLE 表名 ALTER 属性名 SET DEFAULT 值;
修改AUTO_INCREMENT 初始值:ALTER TABLE 表名 AUTO_INCREMENT=新初始值;
更改表的存储引擎:ALTER TABLE 表名 ENGINE=存储引擎名;
5. 查
查看表的字段信息:desc 表名;
查看表的所有信息:show create table 表名;
显示有几张表:show tables
显示存储过程:show procedure status;
显示存储过程:show create procedure 存储过程名称;
查看表的结构:desc 表名;
查看建表语句:SHOW CREATE TABLE 表名;
查询数据库编码:show variables like'%char%';
6. 批量入库
修改my.cnf配置文件
bulk_insert_buffer_size=120M
Max_allowed_packet=1M
Net_buffer_length=8k
批量入库
INSERT INTO M_Signal (Signal_Id, Signal_Name) VALUES(12,'smkoe'),(13,'water');
批量更新
INSERT INTO M_Signal (Id, Signal_Id, Signal_Name)
VALUES(82854, 12, 'smkoe'),(82855, 13, 'water')
ON DUPLICATE KEY UPDATE Signal_Id=values(Signal_Id),Signal_Name=values(Signal_Name);