c 读取mysql 时间字段_mysql常用命令与当前时间字段默认值的设置方法

在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远程连接的方法: 代码示例:

shell>

mysql -h host -u user -p Enter password:************

host和user分别代表MySQL服务器运行的主机名和MySQL帐户名。

登录时,需要填写对应的机器的名称和MySQL用户名。

*********代表登录密码,如果MYSQL运行在服务器上,而你在客户端需要连接的化,需要按如下方式进行连接: 代码示例:

shell>mysql -h host -u user -p

Enter password:************

host和user分别代表MySQL服务器运行的主机名和MySQL帐户名.添写时写上对应的机器的名称和MySQL用户名. *********代表你的密码.

登录提示: 代码示例:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 7 to server version: 5.0.18-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

mysql>提示符告诉你该输入命令了.

有时MySQL会允许匿名登陆到服务器上,此时直接输入mysql即可:

shell> mysql

可在mysql>提示下输入quit随时退出: 代码示例:

mysql> quit

Bye

一个简单的查询实例,要求得到服务器的版本号和当前日期: 代码示例:

mysql> select version(), current_date;

+-----------+--------------+

version() current_date

+-----------+--------------+

5.0.18-nt 2006-07-29

+-----------+--------------+

1 row in set (0.00 sec)

mysql>

说明:

一个命令通常由SQL语句组成,随后跟着一个分号.

MySQL的显示结果用表格(行和列)方式输出。

第一行为列的标签,随后行为查询的结果。

通常列标签是你查询的数据库表的列名,但若检索的是一表达式而非列值(如上一个例子),通常用表达式本身来标记列。

随后它会显示返回了多少行以及查询时间,它提供了服务器性能的一个大致估计。它表示的是时钟时间并非CPU或机器时间。

能够以大小写输入关键字,即在MySQL中大小写是等价的,但在一个查询语句中,要求大小写统一。

以下是另一个查询: 代码示例:

mysql> Select SIN(PI()/4), (4+1)*5;

+------------------+---------+

SIN(PI()/4) (4+1)*5

+------------------+---------+

0.70710678118655 25

+------------------+---------+

1 row in set (0.02 sec)

mysql>

可以在一行上输入多条语句,如: 代码示例:

mysql> Select VERSION(); Select NOW();

+-----------------+

VERSION()

+-----------------+

5.1.2-alpha-log

+-----------------+

1 row in set (0.00 sec)

+---------------------+

NOW()

+---------------------+

2005-10-11 15:15:00

+---------------------+

1 row in set (0.00 sec)

mysql>

较长的命令可以分多行输入。

MySQL是通过分号来判断语句是否结束,而不是换行。

一个简单的多行语句的例子: 代码示例:

mysql> select

-> user(),

-> current_date;

+---------------+--------------+

USER() CURRENT_DATE

+---------------+--------------+

jon@localhost 2005-10-11

+---------------+--------------+

mysql>

在这个例子中,输入多行查询的第一行后,可以看提示符变为 ->,即MySQL没有找到语句结束标识正在等待剩余的输入部分。

如果不想执行正在输入过程的一个命令,输入\c 取消它: 代码示例:

mysql> select

-> user()

-> \c

mysql>

Mysql各个提示符及所表示的MySQL状态: 提示符 含义

mysql> 准备好接受新命令。

-> 等待多行命令的下一行。

'> 等待下一行,等待以单引号(“'”)开始的字符串的结束。

"> 等待下一行,等待以双引号(“"”)开始的字符串的结束。

`> 等待下一行,等待以反斜点(&

lsquo;`’)开始的识别符的结束。

/*> 等待下一行,等待以/*开始的注释的结束。

在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手册中的写法: 代码示例:

Select * FROM table_name orDER BY rand() LIMIT 5;

rand在mysql手册中这样介绍:

RAND()

RAND(N)

返回在范围0到1.0内的随机浮点值。

如果一个整数参数N被指定,它被用作种子值。 代码示例:

mysql> select RAND();

-> 0.5925

mysql> select RAND(20);

-> 0.1811

mysql> select RAND(20);

-> 0.1811

mysql> select RAND();

-> 0.2079

mysql> select RAND();

-> 0.7888

不能在一个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,慢了些。

改进后的代码: 代码示例:

Select * FROM table_name AS r1 JOIN (Select ROUND(RAND() * (Select MAX(id) FROM table_name)) AS id) AS r2 Where r1.id >= r2.id orDER BY r1.id ASC LIMIT

5;

执行效率需要0.02 sec。

注意:只有mysql 4.1.*以上才支持这样的子查询。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值