MySql的基础知识

.frm文件:保存了每个表的元数据,包括表结构的定义等,该文件与数据库引擎无关
.ibd文件:InnoDB引擎开启了独立表空间(my.ini中配置innodb_file_per_table = 1)产生的存放该表的数据和索引的文件。

在mybatis中进行单个增加或修改sql的写法为:

insert into camera_info( cameraId,zone1Id,zone1Name,zone2Id,zone2Name,zone3Id,zone3Name,zone4Id,zone4Name)
VALUES(
#{cameraId},#{zone1Id},#{zone1Name}, #{zone2Id},
#{zone2Name}, #{zone3Id}, #{zone3Name},
#{zone4Id}, #{zone4Name},)
ON DUPLICATE KEY UPDATE
cameraId = VALUES(cameraId),
zone1Id = VALUES(zone1Id),zone1Name = VALUES(zone1Name),
zone2Id = VALUES(zone2Id),zone2Name = VALUES(zone2Name),
zone3Id = VALUES(zone3Id),zone3Name = VALUES(zone3Name),
zone4Id = VALUES(zone4Id),zone4Name = VALUES(zone4Name)

进行批量增加或修改的sql为:

insert into camera_info(
zone1Id,zone1Name,zone2Id,zone2Name,zone3Id,zone3Name,zone4Id,zone4Name,
cameraId
)VALUES

(
#{cameraInfo.zone1Id}, #{cameraInfo.zone1Name}, #{cameraInfo.zone2Id},
#{cameraInfo.zone2Name}, #{cameraInfo.zone3Id}, #{cameraInfo.zone3Name},
#{cameraInfo.zone4Id}, #{cameraInfo.zone4Name},
#{cameraInfo.cameraId},
)

ON DUPLICATE KEY UPDATE
zone1Id = VALUES(zone1Id),zone1Name = VALUES(zone1Name),zone2Id = VALUES(zone2Id),
zone2Name = VALUES(zone2Name),zone3Id = VALUES(zone3Id),zone3Name = VALUES(zone3Name),
zone4Id = VALUES(zone4Id),zone4Name = VALUES(zone4Name),
cameraId = VALUES(cameraId)

3、设置字符集
创建数据库指定数据库的字符集
CREATEDATABASE IF NOT EXISTS mydb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

创建表时指定字符集
CREATETABLE table_name (id int unsigned) DEFAULT CHARACTER SET utf8 COLLATEutf8_general_ci;

创建字段时指定字符集
CREATETABLE table_name2 (id int,name char(10) CHARACTER SET utf8 COLLATE utf8_general_ci);

修改数据库字符集
alter database 数据库名 character set utf8;

修改表字符集
ALTER TABLE 表名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

修改列字符集
ALTER TABLE 表名 CHANGE 列名 列名 VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;

4、mysql的时间格式和java的时间格式是保持一致对应的。
timestamp 可以对应 locatdatetime, date, offsetdatetime
date 对应 locatdate
time 对应 localtime, offsettime

5、插入前判断是否已有数据
在向表中插入数据的时候,经常遇到这样的情况:

1)、首先判断数据是否存在;
2)、如果不存在,则插入;
3)、如果存在,则更新。

replace into table(id, update_time) values(1, now());
注意:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据

另一个语句,也有同样的功能
如果在insert语句后面带上ON DUPLICATE KEY UPDATE 子句,而要插入的行与表中现有记录的惟一索引或主键中产生重复值,那么就会发生旧行的更新;如果插入的行数据与现有表中记录的唯一索引或者主键不重复,则执行新纪录插入操作。

INSERT INTO daily_hit_counter(day, slot, cnt) VALUES (‘2018-11-20’, 1, 2) ON DUPLICATE KEY UPDATE cnt = cnt + 1;
其中PRIMARY KEY (day, slot)

六、mysql免安装版的安装及配置
去官网下载zip包,解压,在解压的文件夹中创建my.ini配置文件;
cmd中进入D:mysql5.6.11\bin
mysqld --initialize-insecure --user=mysql命令,回车(成功的话,data目录下面就自动生成无密码的root用户,data目录如下)
mysqld install MySQL02 --defaults-file=“G:\mysql02\my.ini”
然后输入net start MySQL02,回车,启动mysql服务
输入mysql -uroot -p, 回车

启动会跳过输入密码检查的mysqld。
在命令行中输入 mysqld --skip-grant-tables

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值