一、MySql 导出字段和注释

记得要测试一下
小技巧,当多行命令输入,发现错误后,用\c结束。

SELECT
COLUMN_NAME 列名,
COLUMN_TYPE 数据类型,
DATA_TYPE 字段类型,
CHARACTER_MAXIMUM_LENGTH 长度,
IS_NULLABLE 是否为空,
COLUMN_DEFAULT 默认值,
COLUMN_COMMENT 注释
FROM
information_schema. COLUMNS
WHERE
//表名
TABLE_NAME = ‘dp_client’
//数据库名称
AND TABLE_SCHEMA = ‘weilindc_com’;

1.登陆数据库
mysql -u用户名 -p

2.查看所有数据库
show databases;

  1. 查看数据库中的所有表
    show tables;

4.进入某个数据库
use 数据库名;

5.查询一张表所有的字段名称。
select column_name, column_comment from information_schema.columns where table_name = ‘你的表名’;

6.新建一个字段
alter table + 表名 + add + 要添加的字段 + 字段类型 + comment “0盈利,1亏损” + after + 要跟随的字段名 ;
例:alter table 表名 add sort int(11) UNSIGNED NOT NULL DEFAULT 1 COMMENT ‘排序’;

7.搜索数据库表中某个数据重复,下面这条是根据考生号搜索
select KS_H,count(*) as count from dp_admission_students group by KS_H having count>1;

8.删除全部重复记录(慎用)
delete from 表名 where id in
(select id from (select max(id) as 自定义字段名, 字段名, count(*) as count from 表名 group by 字段名 having count>1) as 自定义字段名)

9.删除表中多余的重复记录,重复记录是根据单个字段(主键字段)来判断,只留有rowid最小的记录
DELETE FROM 表名 WHERE 字段名 IN (SELECT 字段名 FROM (SELECT 字段名 FROM 表名 GROUP BY 字段名 HAVING count(字段名) > 1) a )
AND 主键字段 NOT IN (SELECT min(主键字段) FROM (SELECT min(主键字段) as 自定义字段名 from 表名 GROUP BY 字段名 HAVING count(字段名) > 1) b )

10.delete 表名 from 表名,
(select * from 表名 group by 字段名 having count(1)>1) as 自定义字段名1
where 表名.字段名 = 自定义字段名1.字段名 and 表名.id > 自定义字段名1.id;

11.就是in的反应用(TP用法)
// 查询某个值是否是这个字段中众多值的一个时可以用 find_in_set(‘数据’,字段名) 语句
Db::query(“select * from dp_course where status=1 and find_in_set(?,openGroupId) order by cutOffTime”, [$student[‘groupId’]]);

12.生成数据表表结构
SELECT
COLUMN_NAME 列名,
DATA_TYPE 字段类型,
IS_NULLABLE 是否为空,
COLUMN_DEFAULT 默认值,
COLUMN_COMMENT 备注
FROM
INFORMATION_SCHEMA.COLUMNS
where
— developerclub为数据库名称,到时候只需要修改成你要导出表结构的数据库即可
table_schema =’weilinxk_com’
AND
— article为表名,到时候换成你要导出的表的名称
— 如果不写的话,默认会查询出所有表中的数据,这样可能就分不清到底哪些字段是哪张表中的了,所以还是建议写上要导出的名名称
table_name = ‘dp_course_select’