Mysql 问题

1.MySQL数据库管理工具SQLyog导入外部sql文件报错 data too long for column 'title' at row 1

经查询错误原因是编码不统一。

检查MySQL文件夹下的my.ini文件中

default-character-set=utf8

之后在外部sql文件第一行添加

set names utf8;

解决该问题。

2.mysql 生成指定时间内的时间戳

SELECT 
 (FROM_UNIXTIME(
        UNIX_TIMESTAMP('2017-07-01') + FLOOR(
            RAND() * (
                UNIX_TIMESTAMP('2018-03-30') - UNIX_TIMESTAMP('2017-07-01') + 1
            )
        )
    ) 
    ) AS randtime FROM DUAL ;

 

3.mysql  根据对应关系把一张表的字段值复制给另外一张表的字段

UPDATE t_person SET fcreatetime = (SELECT fcreatetime FROM t_company WHERE t_person.fid = t_company.fpersonid)
where t_person.fcreatetime in (select distinct fcreatetime from t_company)

 

4.mysql 给用户赋予连接的权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'

然后重新启动mysql的服务

5.mysql 排序的字段有null值

-- DESC 降序时候默认null值排在后面、ASC升序时默认null值排在前面,可使用 IS NULL处理

ORDER BY fnum IS NULL,fnum ASC

6.mysql 带条件的插入语句

 insert into policylabel(fid,fpolicyid,flabelid)
        select '2',#{fpolicyid},#{flabelid} from dual
        where not exists
        (select fid from policylabel where fpolicyid = #{fpolicyid} and flabelid = #{flabelid})

 7.mysql 导入导出整个数据库

  1.导出:

  导出数据库:在mysql 的安装目录的/bin 目录下执行:mysqldump -u 用户名 -p 数据库名 > 导出的文件名路径

  导出一个表:mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名路径

  导出一个数据库结构 :mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql

  -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table

  (有配置环境变量可直接执行)

  2.导入:

1.进入MySQL:mysql -u 用户名 -p
如我输入的命令行:mysql -u root -p   (输入同样后会让你输入MySQL的密码)
2、新建一个数据库,这时是空数据库,如新建一个名为person的目标数据库
3,输入:mysql>use 目标数据库名
如我输入的命令行:mysql>use person;
4,导入文件:mysql>source 导入的文件名; 
如我输入的命令行:mysql>source d:/person.sql;

  mysql 绿色版安装参考 :https://www.cnblogs.com/rysinal/p/7565259.html

 8.添加表注释

CREATE TABLE groups(
  gname VARCHAR(200) COMMENT '列注释',
) COMMENT='表注释'

显示表格的注释

SHOW FULL COLUMNS FROM 表名

posted @ 2019-05-28 15:02  木木丶五百万的梦  阅读(127)  评论(0编辑  收藏  举报