当前位置: 首页 > 图文教程 > 数据库 > MSSQL > MySQL鲜为人知的几个特殊技巧

MSSQL
在SQL Server 2005数据库中更改数据架构
建立适当的索引是实现查询优化的首要前提
巧用一条SQL 实现其它进制到十进制转换
处理SQL Server 2000的命名实例和多实例
解析:怎样掌握SQL Server中的数据查询
教你轻松掌握常用的子句、关键词和函数
如何获取SQL Server数据库元数据的方法
分析SQL Server中数据库的快照工作原理
汇总数据库备份 还原 压缩与数据库转移的方法
完全讲解 使用MSCS建立SQL Server集群
SQL Server 2005 内置工具建审查系统
在SQL Server计算机上运行病毒扫描软件
教你如何升级SQL Server数据库系统
SQL Server中处理空值时涉及的三问题
教你为SQL Server数据库构造安全门
在SQL Server中编写通用数据访问方法
针对SQL Server中业务规则链接的分析
运行SQL Server的计算机间移动数据库
怎样在不同版本SQL Server中存储数据
认识那些被忽略的SQL Server注入技巧

MSSQL 中的 MySQL鲜为人知的几个特殊技巧


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 73 ::
收藏到网摘: n/a

以XML格式查看查询结果

通过使用传统—xml 选项调用MySQL命令行客户程序,你可以以XML格式(而不是传统的列表形式)来查看。

MySQL查询结果

如果你打算将查询输出与其它程序集成在一起,这一技巧非常有用,这里是一个例子:

表A

shell> mysql --xml mysql> SELECT * FROM test.stories;1This is a test2This is the second test2rows in set (0.11 sec)

快速重建索引

通常情况下,如果你想改变服务器的全文搜索变量,你需要在表格中重新建立全文索引,以确保你的更新得到映射。这一操作将会花费大量的时间,特别是如果你需要处理很多数据的时候。一种快速的解决。

方法是使用REPAIR TABLE命令,以下为演示过程:

表B

mysql> REPAIR TABLE content QUICK; +-----------+--------+----------+----------+| Table| Op| Msg_type | Msg_text |+-----------+--------+----------+----------+| content| repair | status| OK|+-----------+--------+----------+----------+1 row in set (0.05 sec)

压缩一定的表格类型

如果你处理的是只读MyISAM表格,MySQL允许你将其压缩以节省磁盘空间。对此可以使用包括myisampack,如下所示:

表C

shell> myisampackmovies.MYI Compressing movies.MYD: (146 records)- Calculating statistics- Compressing file41.05%

使用传统SQL

MySQL支持SQL查询中的传统用法,支持IF与CASE结构。以下是一个简单的例子:

表D

mysql> SELECT IF (priv=1, 'admin', 'guest') As usertype FROM privs WHERE username = 'joe';+----------+| usertype |+----------+| admin|+----------+1 row in set (0.00 sec)以CSV格式输出表格数据

MySQL 输出文件包含一个全部SQL命令列表。如果你想将输出文件导入到MySQL,这一功能非常实用,但如果目标程序(比如Excel)不能与SQL相互通讯,这一方法将行不通。在这种情况下,可以通过告诉MySQL

以CSV格式建立输出文件,这种CSV格式很方便地导入到绝大部分的程序。这里演示了 mysqldump的操作过程:

shell> mysqldump -T .--fields-terminated-by=", " mydbmytable

这将在当前目录中生成一个文本文件,包含来自mydb.mytable列表中以逗号为间隔符的记录。

以激活strict模式减少“bad”数据的出现

MySQL服务器能够以多种不同的模式运行,而每一种都针对于特定的目的而优化。在默认情况下,没有设置模式。然而,通过在服务器命令行中添加以下选项可以很容易地改变模式的设置并将MySQL以“strict”模式运行:

shell> mysqld --sql_mode="STRICT_ALL_TABLES" &

在“strict”模式下,通过MySQL的中止查询执行并返回一个错误,服务器的很多自动修正功能都被无效化。同样,该模式下也将会执行更为严格的时间检查。

监视服务器

你可以通过运行SHOW STATUS命令获得一份服务器运行与统计的报告,包括打开连接的次数,激活查询次数,服务器正常运行时间等等。例如:

表E

Emysql> SHOW STATUS; +------------------+-------+| Variable_name| Value |+------------------+-------+| Aborted_clients| 0|| Aborted_connects | 0|...| Uptime| 851|+------------------+-------+156 rows in set (0.16 sec)

自动返回CREATE TABLE代码

MySQL允许你自动获得SQL命令重新建立一个特定的表格。只简单地运行SHOW CREATE TABLE命令,并查看表格建立代码,如下所示:

表F

mysql> SHOW CREATE TABLE products; ---------------------------------------| Table| Create Table+----------+---------------------------| products | CREATE TABLE `products` (`id` int(8) NOT NULL auto_increment,`name` varchar(255) NOT NULL default '',`price` int(10) default NULL,PRIMARY KEY(`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 |+----------+----------------------------1 row in set (0.27 sec)

建立一个更为有用的命令提示:

在缺省情况下,MySQL命令行客户程序显示一个简单的mysql>提示符。然而,你可以使用特定的修改内容来改变这一提示符使之变得更为有效,这些内容包括:当前用户名称,主机名称,以及当前选择的数据库。如下所示:

表G

mysql> prompt \U:/\d> PROMPT set to '\U:/\d>'root@localhost:/db1>