请教几个MySql操作相关的问题,请各位高手指点:
1)表m中有一字段(暂称该字段为cola),类型为varchar(16),该字段的最长取值为16个字符。现在需要基于cola执行聚合统计操作。为了提高执行效率,有没有必要,先将cola字段进行类型转化为 char 16,再执行group by cola操作呢?
2)续1)中所描述的表为例,表n中也有一个字段(暂称该字段为colb),类型为varchar(16),该字段的最长取值为16个字符。现在需要执行表m与表n基于cola=colb的联合操作。为了提高执行效率,有没有必要,先将cola、colb字段进行类型转化为 char 16,再执行join on m.cloa=n.colb操作呢?
如果1),2)问题,大家觉得有必要转换,可否简单地说明一下原因,多谢~3)在执行Mysql的联合操作时,发现一张表中char类型的字段可以与另外一张表的varchar类型的字段作为联合字段,也即char类型字段的取值可以与varchar类型字段的取值被Mysql判断为相同,有没有高手解释一下Mysql中char类型字段与varchar类型字段之间执行比较操作时,是如何执行的?
4)表m与表n执行联合操作语句:select * from tablem left join table n。如果tablem与tablen中有相同名称的字段,则该查询操作语句会被提示执行错误。我记得sql server中,如果出现了相同名称的字段,则会在结果中以table.col的形式进行命名字段,在mysql中可以实现相同的操作嘛?
5)使用SecureCRT上连接远程服务器执行Mysql的查询操作。如果查询的结果中有中文字段(text类型)显示,则查询操作结果在SecureCRT的shell界面上显示时会出现一个问题:最左边的一列会显示不正常(显示不完整,多数是最左侧的字符缺失),是否是朋友遇到过类似的问题,有相应 的解决方法不?
1)表m中有一字段(暂称该字段为cola),类型为varchar(16),该字段的最长取值为16个字符。现在需要基于cola执行聚合统计操作。为了提高执行效率,有没有必要,先将cola字段进行类型转化为 char 16,再执行group by cola操作呢?
2)续1)中所描述的表为例,表n中也有一个字段(暂称该字段为colb),类型为varchar(16),该字段的最长取值为16个字符。现在需要执行表m与表n基于cola=colb的联合操作。为了提高执行效率,有没有必要,先将cola、colb字段进行类型转化为 char 16,再执行join on m.cloa=n.colb操作呢?
如果1),2)问题,大家觉得有必要转换,可否简单地说明一下原因,多谢~3)在执行Mysql的联合操作时,发现一张表中char类型的字段可以与另外一张表的varchar类型的字段作为联合字段,也即char类型字段的取值可以与varchar类型字段的取值被Mysql判断为相同,有没有高手解释一下Mysql中char类型字段与varchar类型字段之间执行比较操作时,是如何执行的?
4)表m与表n执行联合操作语句:select * from tablem left join table n。如果tablem与tablen中有相同名称的字段,则该查询操作语句会被提示执行错误。我记得sql server中,如果出现了相同名称的字段,则会在结果中以table.col的形式进行命名字段,在mysql中可以实现相同的操作嘛?
5)使用SecureCRT上连接远程服务器执行Mysql的查询操作。如果查询的结果中有中文字段(text类型)显示,则查询操作结果在SecureCRT的shell界面上显示时会出现一个问题:最左边的一列会显示不正常(显示不完整,多数是最左侧的字符缺失),是否是朋友遇到过类似的问题,有相应 的解决方法不?
解决方案 »
- WINDOWS 编译MYSQL
- AS5下装mysql4,mysql不能自启动问题。
- 按时间段查询的问题
- mysql 列 宽度什么意思
- 急问:更新MYSQL的时间字段
- 一个mysql服务器里,新建一个数据库1000张表或10个数据库每个数据库100张表,哪个将来查询效率高
- 急问简单问题:MySQL如何实现左连接?谢谢
- 我在WIN 2000 Advanced Server 下遇到的安装问题,UP都有分,不够再加
- 用phpmyadmin管理mysql的时候,怎么屏蔽掉root的权限啊?
- mysql 主主复制漏少量数据
- 用MySQL Workbench创建的数据库只会生成frm文件和ibd文件,怎么才能生成myd文件和myi文件?
- 关于mysql 三表联合查询的问题
3 一个个字符比较
4 select * from table m left join table n on m.id=on.id这样是没问题的
5 我用secureCRT没遇到过这个问题 下载个新版本试试
从Mysql中导出表的内容到文本文件时候,将表的各个字段的名称也一并导出;相应的:
将文本文件的数据导入到Mysql的表的时候,将文本文件第一行的取值作为表的各字段的名称,并完成表的创建以及内容的导入;
mysqldump -uroot -pxxxx yourdbname youtablename > /home/xxx.sql导入mysql yourdbname < /home/xxx.sql
mysql -uuser -ppassword -e "sql statements" database > result.txt将文本文件的数据导入到Mysql的表的时候,将文本文件第一行的取值作为表的各字段的名称,并完成表的创建以及内容的导入不能做到,除非文本内容是建表SQL语句
在创建表的时候,对于某一个字段cola,指定其属性包括 text not null。然后向这张表中导入外部文本文件的数据。当文本文件中有些行中,cola对应的值为空时,导入操作依然可以成功。请教一下,此时在数据库中对应行条目的cola的取值是什么?另外,当某一个字段(令为colb)的某一行的值为null的时候,在使用where colb=0时,可以筛选出该行,但是使用where colb is null的时候,则不可以筛选出colb=0的行。这样正常嘛?
此处的"sql statements"指的是?
可以完成我需要的将一个表的字段名称导出的文本文件中嘛?
当某一个字段(令为colb)的某一行的值为null的时候,在使用where colb=0的筛选条件时,可不可以筛选出该行?