MySQL常用函数&&导出数据

MySQL函数

DATE_ADD函数

  1. DATE_ADD() 函数向日期添加指定的时间间隔。

  2. ·DATE_ADD(date,INTERVAL expr type)

  3. date 参数是合法的日期表达式。

  4. expr 参数是您希望添加的时间间隔。

  5. type常见的值为HOUR,DAY,WEEK,MONTH,YEAR

  6. 向 “OrderDate” 添加 45 天

 SELECT OrderId,DATE_ADD(OrderDate,INTERVAL 45 DAY) AS OrderPayDate
 FROM Orders

DATE_SUB() 函数

  1. DATE_SUB() 函数从日期减去指定的时间间隔。
  2. DATE_SUB(date,INTERVAL expr type)·
  3. 和DATE_ADD函数参数一致
  4. 向 “OrderDate” 减去 5 天
SELECT OrderId,DATE_SUB(OrderDate,INTERVAL 5 DAY) AS SubtractDate
 FROM Orders

DATEDIFF() 函数

  1. DATEDIFF() 函数返回两个日期之间的天数。
  2. DATEDIFF(date1,date2)
  3. date1 和 date2 参数是合法的日期或日期/时间表达式。
  4. 只有值的日期部分参与计算。
 SELECT DATEDIFF('2008-11-30','2008-11-29') AS DiffDate
 结果是1
SELECT DATEDIFF('2008-11-29','2008-11-30') AS DiffDate
结果是-1

DATE_FORMAT() 函数

  1. DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。
  2. DATE_FORMAT(date,format)
  3. date 参数是合法的日期。format 规定日期/时间的输出格式。

format常见的值

  1. %c 表示月,数值
  2. %H 小时(00-23)
  3. %h 小时(01-12)
  4. %i 分钟,数值(00-59)
  5. %k 小时(0-23)
  6. %S 秒(00-59)

NOW() 函数

  1. NOW() 返回当前的日期和时间。

  2. SELECT NOW(),CURDATE(),CURTIME()

  3. 创建带有日期时间列(OrderDate)的 “Orders” 表:

 CREATE TABLE Orders
 (
 OrderId int NOT NULL,
 ProductName varchar(50) NOT NULL,
 OrderDate datetime NOT NULL DEFAULT NOW(),
 PRIMARY KEY (OrderId)
 )
  1. OrderDate 列规定 NOW() 作为默认值。作为结果,向表中插入行时,当前日期和时间自动插入列中。
  2. 在 “Orders” 表中插入一条记录:INSERT INTO Orders (ProductName) VALUES ('Jarlsberg Cheese') 将会默认插入带有时间的数据

CURDATE() 函数

  1. CURDATE() 返回当前的日期。

  2. CURDATE()

  3. SELECT NOW(),CURDATE(),CURTIME()

创建带有日期时间列(OrderDate)的 “Orders” 表:

 CREATE TABLE Orders
 (
 OrderId int NOT NULL,
 ProductName varchar(50) NOT NULL,
 OrderDate datetime NOT NULL DEFAULT CURDATE(),
 PRIMARY KEY (OrderId)
 )
  1. OrderDate 列规定 CURDATE() 作为默认值。作为结果,当向表中插入行时,当前日期和时间自动插入列中。
  2. 在 “Orders” 表中插入一条记录: INSERT INTO Orders (ProductName) VALUES ('Jarlsberg Cheese') 会默认插入带有时间的数据

CURTIME() 函数

  1. CURTIME() 返回当前的时间。
  2. SELECT NOW(),CURDATE(),CURTIME()

DATE()函数

  1. DATE() 函数提取日期或日期/时间表达式的日期部分。
  2. DATE(date);date 参数是合法的日期表达式。
 SELECT ProductName, DATE(OrderDate) AS OrderDate
 FROM Orders
 WHERE OrderId=1

EXTRACT() 函数

  1. EXTRACT() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。
  2. EXTRACT(unit FROM date)
  3. date是合法的日期表达式: YEAR,MONTH,DAY,WEEK,HOUR,MINUTE

字符串连接函数

  1. CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。
  2. 如果所有参数均为非二进制字符串,则结果为非二进制字符串。
  3. 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。
  4. 一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast:SELECT CONCAT(CAST(int_col AS CHAR), char_col)
  5. concat函数可以连接一个或者多个字符串:select concat('11','22','33');
  6. MySQL的concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL
mysql> select concat('11','22',null);
+------------------------+
| concat('11','22',null) |
+------------------------+
| NULL   |
+------------------------+
1 row in set (0.00 sec)

字符串截取函数

从左开始截取字符串

  1. left(str, length) left(被截取字段,截取长度)
  2. select left(content,200) as abstract from my_content_t

从右开始截取字符串

  1. right(str, length) right(被截取字段,截取长度)
  2. select right(content,200) as abstract from my_content_t

**截取字符串 **

  1. substring(str, pos) :substring(被截取字段,从第几位开始截取)
  2. substring(str, pos, length) :substring(被截取字段,从第几位开始截取,截取长度)
select substring(content,5) as abstract from my_content_t 
select substring(content,5,200) as abstract from my_content_t 
  1. 如果位数是负数 如-5 则是从后倒数位数,到字符串结束或截取的长度)

**按关键字截取字符串 **

  1. substring_index(str,delim,count) :substring_index(被截取字段,分隔符,关键字出现的次数)
  2. select substring_index("ryxryx","r",2) as abstract from wiki_user

substr()函数

  1. 截取字符串:substr(string string,num start,num length);
  2. select substr(参数1,参数2,参数3) from 表名
  3. string为字符串;start为起始位置;length为长度。
  4. mysql中的start是从1开始的。

查出kename字段中第一次出现.之前的字符串

select kename,substr(kename,1,locate('.',kename)) as subkename from  web_dev_api where 1;

MySQL导出数据

  1. 可以使用SELECT…INTO OUTFILE语句来简单的导出数据到文本文件上。
  2. 使用 SELECT … INTO OUTFILE 语句导出数据
mysql> SELECT * FROM tutorials_tbl 
    -> INTO OUTFILE '/tmp/tutorials.txt';
  1. 可以通过命令选项来设置数据输出的指定格式,以下实例为导出 CSV 格式
mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/tutorials.txt'
    -> FIELDS TERMINATED BY ',' ENCLOSED BY '"'
    -> LINES TERMINATED BY '\r\n';

SELECT … INTO OUTFILE 语句有以下属性:

  1. 为了将一个数据库的数据写入一个文件,使用SELECT … INTO OUTFILE,为了将文件读回数据库,使用LOAD DATA INFILE。
  2. SELECT…INTO OUTFILE 'file_name’形式的SELECT可以把被选择的行写入一个文件中。该文件被创建到服务器主机上,因此必须拥有FILE权限,才能使用此语法。
  3. 输出不能是一个已存在的文件。防止文件数据被篡改。
  4. 需要有一个登陆服务器的账号来检索文件。否则 SELECT … INTO OUTFILE 不会起任何作用。
  5. 在UNIX中,该文件被创建后是可读的,权限由MySQL服务器所拥有。虽然可以读取该文件,但可能无法将其删除。

导出表作为原始数据

  1. mysqldump是MySQL用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等。
  2. 使用mysqldump导出数据需要使用 --tab 选项来指定导出文件指定的目录,该目标必须是可写的
  3. 将数据表 tutorials_tbl 导出到 /tmp 目录中:
$ mysqldump -u root -p --no-create-info \
            --tab=/tmp mytest tutorials_tbl 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值