文章目录
一、linux服务器导出数据库
[用户名]
是你连接MySQL数据库的用户名,[数据库名]
是你想要导出的数据库名,[导出文件名]
是你想要保存导出文件的文件名,.sql是导出文件的扩展名。执行命令后,会提示输入密码,输入密码后即可开始导出。导出的文件保存在当前目录下。
mysqldump -u [用户名] -p --opt [数据库名] > [导出文件名].sql
注意,如果数据库很大,导出时间可能较长,请耐心等待。
二、执行SQL脚本
source 路径文件
三、给表添加字段
ALTER TABLE [表名] ADD COLUMN [新字段名] [字段类型] DEFAULT [默认值] COMMENT '备注';
四、修改表字段
其中,表名
是你想要修改字段的表的名称,字段名
是你想要修改的字段的名称,字段类型
是你想要将字段修改为的新类型。
ALTER TABLE 表名 MODIFY COLUMN 字段名 字段类型;
注意,在修改字段类型时需要注意数据是否兼容,例如将数字类型修改为字符类型时可能会丢失精度。同时,如果你已经在表中存储了数据,修改字段类型可能会导致数据丢失或出现错误,因此请务必谨慎操作。
五、删除外键约束
alter table `表名` drop foreign key 外键名字;
六、添加外键约束
alter table 从表 add foreign key(外键字段) references 主表(主键字段);
七、删除表字段
表名
是要删除字段的表的名称,字段名
是要删除的字段的名称。
ALTER TABLE 表名 DROP COLUMN 字段名;
注意,删除一个字段将会永久删除该字段及其对应的数据。因此,在执行该命令之前,请确认你的操作,并且确保已经备份你的数据。
八、给数据库字段新增一个十的倍数随机数
UPDATE goods_spu SET sale_num=sale_num+CEILING(RAND()*100)*10;
RAND()是取(0-1)随机小数,CEILING(x)是向上取整,取整之后100是0-100的随机数,再10是0-1000的随机数(也可直接*1000),这个操作可以用于模拟商品的销售情况,增加销售量。
九、查询近30天的数据
SELECT
SUM( payment_price ) 30天总支付金额,
COUNT( 1 ) 30天订单数量
FROM
order_info
WHERE
DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(create_time);
十、计算两个日期之间的天数/月/年
SELECT SYSDATE(), TIMESTAMPDIFF(DAY,'2020-09-21 10:24:31',SYSDATE())
//结果是:2023-01-05 17:44:07 836
参数DAY可替换的值:
SECOND
秒 SECONDS
MINUTE
分钟 MINUTES
HOUR
时间 HOURS
DAY
天 DAYS
MONTH
月 MONTHS
YEAR
年 YEARS
十一、 计算当天、七天总收入
SELECT SUM(nowDayPrice) AS 当天收入,SUM(sevenDayPrice) AS 七天收入 FROM (
SELECT
CASE WHEN TIMESTAMPDIFF(DAY,a.create_time,SYSDATE())=0 THEN a.payment_price ELSE 0 END 'nowDayPrice',--当天的数据
CASE WHEN TIMESTAMPDIFF(DAY,a.create_time,SYSDATE())<7 THEN payment_price ELSE 0 END 'sevenDayPrice',
a.create_time,
TIMESTAMPDIFF(DAY,a.create_time,SYSDATE())
FROM
(SELECT create_time,SUM(payment_price) AS payment_price FROM order_info group by create_time) a
) b
十二、大小转转换
小写字母转化大写字母
SELECT LOWER("ADMIN');
//结果admin
大写字母转化小写字母
SELECT UCASE("admin');
//结果ADMIN