在mysql中,建立时间字段且设置其默认值为当前执行时间的方法:
建立字段类型为timestamp,并设置默认值为CURRENT_TIMESTAMP。
还有一个方法,设置字段为timestamp或varchar,在执行插入语句时带入的值为 Now(),这个函数产生的时间格式为:2010-01-15 11:28:50。
如果字段类型为DATE,只能存储精确到日期,格式也就是2010-01-15。
有时只需要精确到日期,那么自动就可以选择为DATE,插入值可以写 CURRENT_DATE 就可以了。
为了更直观的了解NOW()和CURRENT_DATE可在shell中执行 Select NOW() ; 和 Select CURRENT_DATE;查看执行结果。
MySQl默认时区设置为UTC,默认时间与北京时间差8小时,在mysql文件夹,bin文件夹中的my.ini文件中找到:
default-time-zone = "UTC"
修改为:
default-time-zone = "PRC"
就行了。
mysql远程连接的方法:
host和user分别代表MySQL服务器运行的主机名和MySQL帐户名。
登录时,需要填写对应的机器的名称和MySQL用户名。
*********代表登录密码,如果MYSQL运行在服务器上,而你在客户端需要连接的化,需要按如下方式进行连接:
host和user分别代表MySQL服务器运行的主机名和MySQL帐户名.添写时写上对应的机器的名称和MySQL用户名. *********代表你的密码.
登录提示:
可在mysql>提示下输入quit随时退出:
一个简单的查询实例,要求得到服务器的版本号和当前日期:
说明:
一个命令通常由sql语句组成,随后跟着一个分号.
MySQL的显示结果用表格(行和列)方式输出。
第一行为列的标签,随后行为查询的结果。
通常列标签是你查询的数据库表的列名,但若检索的是一表达式而非列值(如上一个例子),通常用表达式本身来标记列。
随后它会显示返回了多少行以及查询时间,它提供了服务器性能的一个大致估计。它表示的是时钟时间并非CPU或机器时间。
能够以大小写输入关键字,即在MySQL中大小写是等价的,但在一个查询语句中,要求大小写统一。
以下是另一个查询:
可以在一行上输入多条语句,如:
较长的命令可以分多行输入。
MySQL是通过分号来判断语句是否结束,而不是换行。
一个简单的多行语句的例子:
在这个例子中,输入多行查询的第一行后,可以看提示符变为 ->,即MySQL没有找到语句结束标识正在等待剩余的输入部分。
如果不想执行正在输入过程的一个命令,输入c 取消它:
Mysql各个提示符及所表示的MySQL状态:
在MySQL中使用Rand()抽取随即数据
不能在一个ORDER BY子句用RAND()值使用列,因为ORDER BY将重复计算列多次。
然而在MySQL3.23中,可以做: Select * FROM table_name orDER BY RAND(),这是有利于得到一个来自Select * FROM table1,table2 Where a=b AND c 实现随机。
mysql手册中的写法:
rand在mysql手册中这样介绍:
RAND()
RAND(N)
返回在范围0到1.0内的随机浮点值。
如果一个整数参数N被指定,它被用作种子值。
不能在一个ORDER BY子句用RAND()值使用列,因为ORDER BY将重复计算列多次。
然而在MySQL3.23中,可以这样操作:Select * FROM table_name orDER BY RAND(),这是有利于得到一个来自Select * FROM table1,table2 Where a=b AND c
注意:
在一个Where子句里的一个RAND()将在每次Where被执行时重新评估。
但试了一下,8千条记录的表,执行一次需要0.08 sec,慢了些。
改进后的代码:
执行效率需要0.02 sec。
注意:只有mysql 4.1.*以上才支持这样的子查询。