mysql
# 数据类型
MySQL中的数据类型
类型 | 含义 |
---|---|
tinyint | 1字节,带符号的范围是-128到127。无符号的范围是0到255。bool或boolean,就是tinyint,0表示假,非0表示真 |
smallint | 2字节,带符号的范围是-32768到32767。无符号的范围是0到65535 |
int | 整型,4字节,同Integer,带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295 |
bigint | 长整型,8字节,带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615 |
float | 单精度浮点数精确到大约7位小数位 |
double | 双精度浮点数精确到大约15位小数位 |
DATE | 日期。支持的范围为'1000-01-01'到'9999-12-31' |
DATETIME | 支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59' |
TIMESTAMP | 时间戳。范围是'1970-01-01 00:00:00'到2037年 |
char(M) | 固定长度,右边填充空格以达到长度要求。M为长度,范围为0~255。M指的是字符个数 |
varchar(M) | 变长字符串。M表示最大列长度。M的范围是0到65,535。但不能突破行最大字节数65535 |
text | 大文本。最大长度为65535(2^16-1)个字符 |
BLOB | 大字节。最大长度为65535(2^16–1)字节的BLOB列 |
LENGTH函数返回字节数。而char和varchar定义的M是字符数限制。
char可以将字符串定义为固定长度,空间换时间,效率略高;varchar为变长,省了空间。
# 关系操作
关系:在关系数据库中,关系就是二维表。 关系操作就是对表的操作。
选择(selection):又称为限制,是从关系中选择出满足给定条件的元组。
投影(projection):在关系上投影就是从选择出若干属性列组成新的关系。
连接(join):将不同的两个关系连接成一个关系。
# 创建用户并授权
GRANT all privileges ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
CREATE USER 'birenchong_ro'@'%' IDENTIFIED BY 'password';
GRANT SELECT ON doki.* TO 'birenchong_ro'@'%';
FLUSH PRIVILEGES;
1
2
3
4
5
6
2
3
4
5
6
WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人。
注意:经常有人在创建操作用户的时候不指定WITH GRANT OPTION选项,导致后来该用户不能使用GRANT命令创建用户或者给其它用户授权。
如果不想这个用户有grant的权限,可以不加。
# mysql备份恢复
# 备份
备份所有数据库:
mysqldump -uroot -p --all-databases > /backup/mysqldump/all.db
1
备份指定数据库:
mysqldump -uroot -p test > /backup/mysqldump/test.db
1
备份指定数据库指定表(多个表以空格间隔)
mysqldump -uroot -p mysql db event > /backup/mysqldump/2table.db
1
备份指定数据库排除某些表
mysqldump -uroot -p test --ignore-table=test.t1 --ignore-table=test.t2 > /backup/mysqldump/test2.db
1
-A
同参数--all-databases,备份所有库,并在备份文件中生成创建库的语句及use语句。这样方便恢复时不用创建指定数据库。
-B
此参数用于指定多个数据库,同-A参数,生成创建库的语句及use语句。
不指定上述参数
默认第一个选项为数据库名,如果有第二个及更多选项则为表名。不指定参数,也不会生成创建库的语句,恢复时需要手动创建数据库。
# 恢复
在导入备份数据库前,db_name如果没有,是需要创建的; 而且与db_name.db中数据库名是一样的才可以导入。
mysqladmin -uroot -p create db_name
mysql -uroot -p db_name < /backup/mysqldump/db_name.db
1
2
2
# UPDATE
# 时间加5天
update firewall set date = DATE_ADD(date,INTERVAL 5 DAY);
# 时间减5天
update firewall set date = DATE_SUB(date,INTERVAL 5 DAY);
# 截取掉最后一个字符
update firewall set date = left(date, length(date)-1);
1
2
3
4
5
6
2
3
4
5
6
Last Updated: 2024/04/01, 10:59:04