常用的内置函数

一、基本概念

                          实体完整性约束
  约束种类                                      作用描述
  P昂科威IMA中华VY KEY(主键)约束                        
独一识别每一条记下的阐明,能够有多列共同组成
  IDENTITY(自增)约束                           
列值自增,日常选拔此属性设置的列作为主键
  UNIQUE(独一)约束                             
能够应用UNIQUE约束确认保证在非主键列中空中楼阁重复值,但列值能够是NULL(空)
  
  
                     域完整性约束
  CHECK(检查)约束                                用于限制列中值得范围
  FOREIGN KEY(外键)                              三个表中的FORENIGN KEY
指向另一个表中的PEscortIMALX570Y KEY
  DEFAULT(默许值)约束                            用于向列中插入暗许值
  NOT NULL(非空)约束                            
用于强制列不收受NULL(空)值
  
  
  
注意:
1、PLX570IMA奥迪Q5Y
KEY用于将表中的某类设置为主键,一张表中唯有二个主键,主键能够是一列或由多列组成。
2、NOT NULL是对列值举办界定,即在表中添增加少时不一样意有NULL值。
3、CHECK约束的语准绳则:CHECK(表明式)
外键的行使:字段名 数据类型 [FOREIGN KEY] REFERENCES 表名(字段名)
  
向数据库中增加值:
语法:INSERT [INTO] table_name [(COLUMN1,COLUMN2,…..)] VALUES
(VALUE1,VALUE2,…..)
注意:
1、VALUES需要与COLUMN对应
2、增加数据时,假诺字段类型为varchar或datetime,不然必需选择单引号(”)引起来。
3、即使未有出示地加多IDENTI昂CoraY约束字段,不过数据库会自动依照IDENTITY准绳增多数据

  1.数据库:

  数据库(DataBase)正是贰个囤积数据的饭馆,为了便于数据的存放和治本,它将数据依照一定的原理存款和储蓄在磁盘上。通过数据库管理类别,能够有效的团伙和管理存款和储蓄在数据库中的数据。数据库是数码管理软件。数据存款和储蓄分为多少个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。

一遍添增加行数据
语法:
INSERT [INTO] tabale_name([COLUMN1,COLUMN2,…..])
SELECT VALUE UNION
SELECT VALUE

  2.数据库范式:

  数据库范式即数据库应该遵照的法则。前段时间关周详据库最常用的各个范式分别是:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BCN范式(BCNF)。

  第一范式:无重复的域。即数据库表的每一列都是不可分割的原子数据项,而不是汇聚、数组、记录等非原子数据项。

  第二范式:数据库表中的装有列都必得注重于主键,那表示一个表只描述一件事情。

  第三范式:表中的每一列只与主键直接有关并不是间接相关。

  BCN范式:Boyce-Codd,不容许出现有主键的一部分被主键另一部分依旧其余一些决定。即八个表中只可以有三个主键。

  比如(摘自别的博客)表明BCN:

  假如仓库管理涉及表为StorehouseManage(宾馆ID, 存款和储蓄货品ID, 管理员ID,
数量),且有贰个组织者只在一个库房工作;叁个库房能够积存多样物料。那个数据库表中设有如下决定涉及:

    (仓库ID, 存款和储蓄物品ID) →(管理员ID, 数量)

    (管理员ID, 存款和储蓄货物ID) → (宾馆ID, 数量)

  所以,(货仓ID, 存款和储蓄货品ID)和(管理员ID,
存款和储蓄货品ID)都以StorehouseManage的候选关键字,表中的独一无二非关键字段为数据,它是顺应第三范式的。然则,由于存在如下决定涉及:

    (仓库ID) → (管理员ID)

    (管理员ID) → (仓库ID)

  即存在珍视字段决定入眼字段的气象,所以其不切合BCNF范式。

除去表中的数量
语法:DELECT FROM table_name[WHERE <表达式>]
注意:
1、使用DELETE语句删除数据时,是以整条记录为单位的,不可能只删除某些字段
删去整张表数据
语法:TRUNCATE TABLE table_name
                                  
           两种删除语句的优缺点
   语句                     优点                                       
缺点
   DELETE                   接纳性地删除,数据可复原                   
当删除整张表的数量时作用低
   TRUNCATE                 只好删除整张表的数额,不过功用超越         
无法选拔性地删除,数据可过来
                            DELETE语句

  3.数据库系统和数据库管理种类:

  数据库系统由数据库、数据库管理种类、应用开荒工具构成。

  数据库处理系列(DataBase Management System,
DBMS)是用来定义、管理和保险数据的软件。它是数据库系统的要紧组成都部队分。数据库管理种类经过SQL语言来保管数据库中的数据。

修改表中的数据
语法:UPDATE table_name SET COLUMN1={},COLUMN2={},….
WHERE<表达式>

  4.SQL语言:

  SQL(Structured Query Language)语言的全称是结构化查询语言。它包蕴:

    - 数据库定义语言(Data Definition Language, DDL)

    - 数据操作语言(Data Manipulation Language, DML)

    - 数据调节语言(Data Control Language, DCL)

介意:分离数据库是将数据库文件从SQL
Server中分离出来,而除去数据库是将数据库文件删除。

  5.MySQL数据库版本和优势:

查询语句语法结构
语法:SELECT <COLUMN1,COLUMN2,…..> FROM <table_name>
[表达式] [ORDER BY <COLUMN1,COLUMN2,…..> [ASC或DESC]]
永利皇宫登录网址 ,OENCOREDEWrangler BY
子句用于对查询结果开展排序。ASC表示升序,DESC表示降序排列,暗许的排序是ASC.
只顾:将查询获得的结果叫做结果集(RecordSet).SQL
Server对大小写不灵活,包罗重要字在内。比如,SELECT、select和Select是同一的。

  常见数据库

  商业数据库:石籀文的Oracle、IBM的DB2、微软的Access和SQL
Server。开源数据库:PostgreSQL、MySQL。

选择小名
1、语法:SELECT 字段名1 别名,字段名2 别名 FROM 表名
2、语法:SELECT 别名=字段名1,别名=字段名2 FROM
3、语法:SELECT 字段名1 AS 别名,字段名2 AS 别名 FROM 表名
静心:使用“=”更换查询结果列名时相比分外,在SELECT语句中语法务必是“小名=字段名”;

  版本分类

  依据操作系统:Windows版,UNIX版,Linux版,MacOS版;遵照开采情形:Alpha、Beta、Gamma与Available(GA)。

  阿尔法暗暗表示那是贰个以展现新性情为指标的本子,存在相当多的不安静因素,还有大概会向代码中增多新新特征

  beta
将来的beta版、公布版或制品公布中,全数API、外界可视结商谈SQL命令列均不再更改,不再向代码中增加影响代码牢固性的新特色。Gamma比Beta版越来越高档。

  GA如果未有后缀,则暗指这是贰个繁多情景下可用版本也许是成品版本。.
GA releases则是牢固版。

  优势:MySQL开放源码、跨平台性、价格优势、成效庞大且使用方便。

单列排序:SELECT * FROM table_name ORDER BY
多列排序;SELECT * FROM table_name ORDER BY COLUMN1 DESC,COLUMN2
DESC….

  Linux安装MySQL

  

查询范围行TOP N
语法:SELECT TOP N <COLUMN1,COLUMN2,…..> FROM
<table_name> [WHERE <表达式>] [ORDER BY
<COLUMN1,COLUMN2,…..> [ASC或DESC]]
查询百分比
语法:SELECT TOP N PERCENT <COLUMN1,COLUMN2,…..> FROM
<table_name> [WHERE <表达式>] [ORDER BY
<COLUMN1,COLUMN2,…..> [ASC或DESC]]

二、MySQL数据类型(摘自新手教程:

  MySQL扶助三体系型,大致能够分为三类:数值、日期/时间和字符串(字符)类型。

原则查询注意:
1、在二个WHERE子句中,能够何况使用八个AND运算符链接多少个查询条件。
2、在“(表明式1)OEvoque(表达式2)”中,借使表明式1为TRUE,将不再实行表明式2。

  1.整数体系的贮存和限量

类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1 字节 (-128,127) (0,255) 小整数值
SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
FLOAT 4 字节 (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度
浮点数值
DOUBLE 8 字节 (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度
浮点数值
DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

 

  2.日期和岁月档案的次序

类型 大小 范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 ‘-838:59:59’/’838:59:59’ HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 4

1970-01-01 00:00:00/2038

结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07

YYYYMMDD HHMMSS 混合日期和时间值,时间戳

SQL Server内置函数(内置函数可视作where条件,聚合函数不能够做为where条件)

  3.字符串类型

类型 大小 用途
CHAR 0-255字节 定长字符串
VARCHAR 0-65535 字节 变长字符串
TINYTEXT 0-255字节 短文本字符串
TEXT 0-65 535字节 长文本数据
MEDIUMTEXT 0-16 777 215字节 中等长度文本数据
LONGTEXT 0-4 294 967 295字节 极大文本数据
TINYBLOB  0-255字节  不超过 255 个字符的二进制字符串
BLOB 0-65 535字节 二进制形式的长文本数据
MEDIUMBLOB 0-16 777 215字节 二进制形式的中等长度文本数据
LONGBLOB 0-4 294 967 295字节 二进制形式的极大文本数据

                                      字符串函数
  函数名                      
示例                                          函数成效
  CharIndex                 
CharIndex(‘ab’,’cdab’)结果回到3                
重临‘ab’在‘cdab’中的位置,将回来第八个假名的岗位
  Len                       
Len(‘adc’)结果回到3                             再次来到字符串的长度
   Upper                     
Upper(‘abc’)结果ABC                            
将字符串中的小写字母调换为题写
  Ltrim                      Ltrim(‘ 
adc’)结果再次来到adc                       清楚左侧空格
  奥迪Q5trim                      Muranotrim(‘abc 
‘)结果回到abc                       清除左侧空格
  Replace                   
Replace(‘abb’,’b’,’z’)结果回到azz               替换钦命的字符
  Stuff                     
Stuff(‘abcd’,1,2,’mm’)结果回到mmcd              替换钦定范围的字符
  substring                 
substring(‘abc’,’2′,’2′)结果回到bc              从钦赐地点截取
  
实例:测量检验字符串长度SELECT Len(字段名) FROM table_name
将放置函数作为标准使用:SELECT * FROM table_name WHERE
 Len(字段名)>VALUE

三、MySQL表操作

                                    日期函数
        函数名                 
示例                                                  函数成效
        GetDate                
GetDate结果重临“当前几日期”                             再次来到领后天期
        DateAdd                
DateAdd(mm,2,’二〇〇九-10-08′)结果回到‘二零一零-12-08’       
向日期钦定部分加多数字,个中,yy表示年、mm表示月、dd表示日
  DateDiff               
DateDiff(dd,’2010-09-09′,’二零一零-09-09′)结果回到‘365’  
重回四个日子之间的间距,个中,yy表示年、mm表示月、dd表示日
  DateName               
DateName(DW,’二〇一〇-09-09′)结果再次来到“周一”            
以字符串的款型重回有个别日期内定的有个别
  DatePart               
DatePart(DW,’2010-09-09′)结果重临“4”                 
以平头样式再次回到有个别日期钦定的部分
  
实例:获取系统当下日子函数为GetDate(),表明式能够写为“COLUMN1<GetDate()”,SQL语句如下:
SELECT * FROM table_name WHERE COLUMN1<GetDate()

  1.插入数据 INSERT INTO

-- 插入一条新的数据
/* INSERT INTO customers(cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact, cust_email) VALUES('10006', 'Toy Land', '123 Any Street', 'New York', 'NY', '11111', 'USA', NULL, NULL); */
-- 按表列字段的顺序插入数据时,列字段可省略
INSERT INTO customers VALUES('10006', 'Toy Land', '123 Any Street', 'New York', 'NY', '11111', 'USA', NULL, NULL);
-- 将一张表插入到原来的表
/* INSERT INTO customers(cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact, cust_email)  SELECT cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact, cust_email FROM cust_new WHERE cust_id NOT IN (SELECT cust_id FROM customers); */
-- 复制表
CREATE TABLE custcopy AS SELECT * FROM customers;

  注意:

  - 任何SELECT选项和子句都能够利用,包涵WHERE和GROUP BY。

  - 能够统一四个表执行插入数据操作。

  - 不管从多少个表中检索数据,数据都只可以插入到单个表中。

剖断选课时间是还是不是是星期二的函数为DateName(DW,COLUMN),表明式能够写成“DateName(DW,COLUMN)=‘星期二’”,SQL语句如下:
SELECT * FROM table_name DateName(DW,COLUMN)=‘星期三’

  2.翻新和删除数据 UPDARE DEL

  UPDATE能够:更新表中一定行,更新表中全数行。在未曾where子句时,UPDATE会更新具备记录。

-- UPDATE总以要更新的表的名字开始,以SET指明一个或多个要更新的字段,以WHERE指定要更新的记录
UPDATE customers SET cust_email = 'kim@thetoystore.com' WHERE cust_id = '10005';
UPDATE customers SET cust_contact = 'Sam Roberts', cust_email = 'sam@toyloand.com' WHERE cust_id = '10006';
-- 设置NULL来删除某个列的值
UPDATE customers SET cust_email = NULL WHERE cust_id = '10005';

-- DELETE是删除列
DELETE FROM customers WHERE cust_id = '10006';

  DELETE用于按行删除记录,它自个儿不会修改表结构。

  注:在对UPDATE或DELETE语句使用WHERE子句前,应该先用SELECT举办测量检验,以管教它过滤的是真的要去除的记录。

                                    数学函数
  函数名                 
示例                                                   函数功能
   Abs                    
Abs(-1)结果回到“1”                                     求相对值
  Ceiling                
Ceiling(24.1)结果重返“25”                             
大于24.1的矮小整数     
  Floor                  
Floor(24.1)结果重临“24”                               
小于24.1的最大整数
  Power                  
Power(2,3)结果重临“8”                                  总结2的3次方
  Round                  
Round(748.32,1)结果回到“748.30”                       
再次来到一个数值,舍入到钦命的长短或精度
  Sign                   
Sign(100)结果回到“1”                                  
正整数重返1,负整数重返-1
  Sqrt                   
Sqrt(4)结果回到“2”                                     开平方

   3.开立表及约束原则

                                  系统函数
  函数名                     
示例                                                 函数功效
        Convert                
Convert(varchar(10),123)结果再次来到“123”                   装换数据类型
  DataLength             
DataLength(‘1第22中学国’)结果再次回到6                          
重返任何数据类型的字节数。“中夏族民共和国”包涵4个字节,“12”包含八个字节,所以回来6.
 

  1.创建表

-- 创建表语法:CREATE TABLE [IF NOT EXISTS] table_name(column_name data_type,...);
CREATE TABLE users(id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20), salary FLOAT(8,2) UNSIGNED);
-- 查看表结构
DESC users;
SHOW COLUMNS FROM users;
SHOW CREATE TABLE users;

支付进度中对于日期的操作:比如获得今天、后日的数目。
SQL语句如下: select * from table_name where pudoctime>=SUBSTRING(
Convert(varchar(20),DateAdd(DD,-1,GETDATE()),120),1,10)

  2.束缚原则

  约束是为了保障数据的完整性和一致性,约束类型富含:

 键名  类型
PRIMARY KEY 主键约束
UNIQUE KEY 唯一约束
NOT NULL 非空约束
UNSIGNED 无符号约束
DEFAULT 默认约束
FOREIGN KEY 外键约束

 

 
模糊查询
在SQL
Server中,通过行使通配符来完成LIKE运算,通配符“%”,“_”,“[]”。
注意:唯有char、varchar和text类型的数额技巧采取LIKE运算符和通配符。

  4.修改表结构

1、“%”通配符:表示任性字符的协作,且不计字符的多少。
(1)起先、结尾相称
始于相称(以字母“c”初始的享有数据):SELECT * FROM table_name WHERE
COLUMN LIKE ‘c%’
最终相称(以字母“c”结尾的持有数据):SELECT * FROM table_name WHERE
COLUMN LIKE ‘%c’

  1.增加和删除列

-- 修改数据表
-- 添加列语法: ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST|AFTER col_name]
ALTER TABLE users ADD age TINYINT UNSIGNED NOT NULL DEFAULT 10 AFTER name;
-- 删除列语法: ALTER TABLE tbl_name DROP [COLUMN] col_name
ALTER TABLE users DROP age;
-- 混合操作
ALTER TABLE users ADD gender VARCHAR(10) NOT NULL DEFAULT "male", ADD address VARCHAR(32) NOT NULL,DROP salary;

(2)中间相称
以“c”开首,以“b”结尾的全数数据:SELECT * FROM table_name WHERE COLUMN
LIKE ‘c%b’

  2.修改列定义和列名

-- 修改列名,要重新声明列的数据类型和约束条件
ALTER TABLE users CHANGE name username varchar(10) NOT NULL;
-- 修改列定义
ALTER TABLE users MODIFY id SMALLINT NOT NULL FIRST;
-- 修改表名
ALTER TABLE users RENAME TO tb;

 

(3)两端相称
查询出含有字母“c”的有着数据:SELECT * FROM table_name WHERE COLUMN
LIKE ‘%c%’

四、MySQL查询操作

在乎:“%”相称三个或四个字符。

  1、查询数据

2、”_“通配符:”_“统配符的机能与”%“基本同样,只是它仅表示大肆叁个字符(不一致)的卓绝。若须要代表多少个字符的相称,则利用五个”_“通配符,即写成”_
_“。
(1)相配三个字符
示范:从表中查询名称(name)为”t_fu“(“_”代表私行二个字符)的持有数据,SQL语句如下:
SELECT * FROM table_name where name LIKE ‘t_fu’    
相称字符串有(tafu,tbfu,tcfu…..)

  1.查询关键字 SELECT FROM

-- 查询单列
SELECT prod_name FROM products;
-- 查询多列
SELECT prod_id, prod_name, prod_price FROM products;
-- 查询所有列
SELECT * FROM products;

(2)相称七个字符
查询名称(name)为3个字符的数量SQL语句如下:
SELECT * FROM table_name where name LIKE ‘_ _ _’
注意:”_”只好同盟三个字符。

  2.排序关键字 OPAJERODE汉兰达 BY

  查询的数码如若不排序,常常是以它在尾部表中出现的逐个展现。若是不分明规定排序依次,则不必得若是检索出的多少的次第有含义。

-- 单排
SELECT prod_name FROM products ORDER BY prod_name;
-- 多排
SELECT prod_id, prod_price, prod_name FROM products ORDER BY prod_price, prod_name;
-- 按列位置排
SELECT prod_id, prod_price, prod_name FROM products ORDER BY 2, 3; 注,它只能根据已选择字段的相对位置排序
-- 指定排序方向
SELECT prod_id, prod_price, prod_name FROM products ORDER BY prod_price DESC, prod_name;

(3)”_”与”%”的归结使用
在模糊查询进度中,通常须要”_”和”%”一齐利用工夫不负职务查询成效。
以身作则:查询名称(name)第一个假名称叫”c”的富有数据,SQL语句如下:
SELECT * FROM table_name where name LIKE ‘_c%’

  3.过滤关键字 where + 操作符

  where子句操作符表:

 操作符  说明
 =  等于
 <>  不等于
 !=  不等于
 <  小于
 <=  小于等于
 !<  不小于
 >  大于
 >=  大于等于
 !>  不大于
BETWEEN 在指定的两个值之间
IS NULL 为null值
AND、OR、NOT、IN 组合查询
LIKE 通配符过滤

  用例:

-- 匹配查询
SELECT prod_price, prod_name FROM products where prod_price = 3.49;
-- 不匹配查询
SELECT prod_price, prod_name FROM products where prod_price <> 10;
-- 范围查询
SELECT prod_price, prod_name FROM products where prod_price BETWEEN 5 AND 10; 
-- 空值查询
SELECT prod_name FROM products where prod_price IS NULL;
-- 组合查询AND
SELECT prod_id, prod_name, prod_price FROM products WHERE vend_id='DLL01' AND prod_price <= 4;
-- 组合查询OR
SELECT prod_name, prod_price FROM products WHERE vend_id='DLL01' OR vend_id = 'BRS01';
-- 组合查询AND和OR
SELECT prod_name, prod_price FROM products WHERE vend_id='DLL01' OR vend_id = 'BRS01' AND prod_price <= 4;
-- 组合查询IN
SELECT prod_name, prod_price FROM products WHERE vend_id IN ('DLL01', 'BRS01') ORDER BY prod_name;
-- 组合查询NOT
SELECT prod_name, prod_price FROM products WHERE vend_id NOT vend_id='DLL01';
-- 通配符过滤
SELECT prod_name FROM products WHERE prod_name LIKE '%TNT%';

3、”[]”通配符:”[]”通配符用于钦点一层层的字符,只要满意那么些字符在那之中之一且出现在”[]”通配符的地点的字符串就满足查询条件
(1)、各种通配符能够整合使用,必须自习分析它所代表的协作原则
       
                                  相称原则列表
   查询条件                                                     
相配原则
   LIKE ‘5[%]’                                                    
5%
   LIKE ‘[_]n’                                                    
_n
   LIKE
‘[a-f]’                        a,b,c,d,e,f
   LIKE ‘[[]’                                                      
[
   LIKE ‘[]]’                                                      
]
   LIKE ‘abc[def]’                                            
abcd,abce,abcf
   LIKE ‘abc[_]d%’                                            
adbc_d…(省略号表示能够有自由字符)
   LIKE ‘a[^a]d%’                                             
不能为aad…([^]代表不可能取[]内的字符)
   
示例:
询问名称(name)中满含”_”的享有数据:SELECT * FROM table_name WHERE name
LIKE ‘%[_]%’
询问名称(name)中最后二个字符为”a”,”b”,”f”,”g”的有所数据:SELECT * FROM
table_name WHERE name LIKE ‘%[a,b,f,g]’
询问名称(name)中最终三个字符不为”a”,”b”,”f”,”g”的全部数据:SELECT *
FROM table_name WHERE name LIKE ‘%[^a,b,f,g]’

   2、数据管理函数

IN运算符
若只要求满意多少个尺码中的三个查询条件,则能够使用IN运算符。IN运算符允许根据一行记录中是或不是有一列饱含在一体系值之中而选拔改行。
负有的条件罗列在IN运算符之后,并以园括号括起来,各类条件之间利用逗号分开。
示例:
查询ID为1、3或4的数据:SELECT * FROM table_name WHERE ID IN (1,3,4)
注意:
在大比很多意况下,O瑞虎运算符与IN运算符能够兑现均等的效果与利益。
示例:SELECT * FROM talbe_name WHERE ID=1 OR ID=3 OR ID=4

  1.文本管理函数

 函数 说明
 LEFT 返回字符串左边的字符
 LENGTH 返回字符串的长度
 LOWER  返回字符串的小写
 LTRIM 去掉字符串左边的空格
 RIGHT 返回字符串右边的字符
 RTRIM 去掉字符串右边的空格
UPPER 返回字符串的大写

   - 用例: 

SELECT vend_name, UPPER(vend_name) AS vend_name_upcase FROM vendors ORDER BY vend_name;

双方的结果完全一致,都以回来多条数据记录。不过,与O奥德赛运算符比较,IN运算符具备以下多个亮点:
(1)当采用原则比非常多时,选择IN运算符将十三分公然,只必要在括号中用逗号间隔后二回位列就可以,运营作用高于OPRADO运算符。
(2)IN运算符前面所列的法则得以是另一条SELECT语句,即子查询。

  2.日期和时间管理函数

  注:日期和时间函数依照

 函数  说明
 NOW()、SYSDATE()、CURRENT_TIMESTAMP、LOCALTIME、LOCALTIMESTAMP 获取当前日期和时间
 CURDATE(), CURRENT_DATE 获取当前日期
 CURTIME(), CURRENT_TIME 获取当前时间
 DATE、YEAR、QUARTER、MONTH、WEEK、DAY、HOUR、MINUTE、SECOND、MICROSECOND 获取指定日期和时间的日期、年、季度、月、周、日、小时、分钟、秒、毫秒数
 WEEKOFYEAR、DAYOFYEAR、DAYOFMONTH、DAYOFWEEK、LAST_DAY 获取指定日期和时间的年周索引、年天索引、月天索引、周天索引,最后一天的日期
MONTHNAME、 DAYNAME 获取指定日期和时间的英文月名、英文天名
DATE_ADD、DATE_SUB 指定日期按指定参数进行加减运算
PERIOD_ADD、PERIOD_DIFF 指定日期加、减多少个月
TIMEDIFF 指定日期和时间相差多少个时间
TIMESTAMPDIFF 指定日期/时间或日期时间的差值
TO_DAYS、FROM_DAYS 日期和月数的相互转换函数
TIME_TO_SEC、SEC_TO_TIME 时间和秒数的相互转换函数
STR_TO_DATE、DATE_FORMAT 字符串/日期时间格式转换成新的格式
TIME_FORMAT 时间格式转换你成新的格式
MAKEDATE、MAKETIME 拼凑日期/时间
UNIX_TIMESTAMP、FROM_UNIXTIME 日期时间和unix时间戳的相互转化

   用例:

-- 获取当前日期和时间,日期指的是年月日,时间指的是时分秒
SELECT NOW(), SYSDATE(), CURRENT_TIMESTAMP, LOCALTIME, LOCALTIMESTAMP;
-- 分别获取当前日期和时间
SELECT CURDATE(), CURRENT_DATE, CURTIME(), CURRENT_TIME;
-- 分别获取日期时间、年、季度、月、周、日、时、分、秒
SELECT DATE(SYSDATE()), YEAR(SYSDATE()), QUARTER(SYSDATE()), MONTH(SYSDATE()), WEEK(SYSDATE()), DAY(SYSDATE()), HOUR(SYSDATE()), MINUTE(SYSDATE()), SECOND(SYSDATE()), MICROSECOND(SYSDATE());
-- 获取指定索引
SELECT WEEKOFYEAR(SYSDATE()), DAYOFYEAR(SYSDATE()), DAYOFMONTH(SYSDATE()), DAYOFWEEK(SYSDATE()), LAST_DAY(SYSDATE());
-- 获取月和周的英文名称
SELECT MONTHNAME(SYSDATE()), DAYNAME(SYSDATE());

-- DATE加,第一个参数是指定的日期和时间,第二个参数是间隔和单位
SELECT DATE_ADD(now(), INTERVAL 1 YEAR), DATE_ADD(now(), INTERVAL 2 MONTH), DATE_ADD(now(), INTERVAL 1000 SECOND);
-- DATE减,与DATE加参数相同
SELECT DATE_SUB(now(), INTERVAL 1 YEAR), DATE_SUB(now(), INTERVAL 2 MONTH), DATE_SUB(now(), INTERVAL 1000 SECOND);
-- 日期的加减运算
SELECT PERIOD_ADD(201808, 2), PERIOD_ADD(1808, 2),PERIOD_ADD(DATE_FORMAT(SYSDATE(), '%Y%m'), 2), PERIOD_DIFF(201808, 201004), PERIOD_DIFF(1808, 1004); 
-- 时间差计算
SELECT TIMEDIFF('2018-08-06', '2018-08-5');-- 不支持日期
SELECT TIMEDIFF('19:00:00', '17:00:00'), TIMEDIFF('2018-08-6 9:30:30', '2018-08-5 17:00:00');
-- 更便捷的日期/时间差值计算,第一个参数是要计算的字段,其值为第三个日期时间减去第二个日期时间
SELECT TIMESTAMPDIFF(DAY, '2018-08-5 17:00:00', '2018-08-8 9:30:30'), TIMESTAMPDIFF(DAY, '2018-08-5', '2018-08-8');
SELECT TIMESTAMPDIFF(SECOND, '17:00:00', '19:30:30');-- 不支持单独时间计算
-- 日期和天数的相互转换
SELECT TO_DAYS(SYSDATE()), TO_DAYS('2018-8-8'), FROM_DAYS(737279);
-- 时间和秒数的相互转换
SELECT TIME_TO_SEC(SYSDATE()), TIME_TO_SEC('12:00:00'), SEC_TO_TIME(43200);
-- 字符串格式化;字符串格式化成日期只能要按照字符串的写法改写成标准日期时间字符串
SELECT STR_TO_DATE('2018.08.6 9:30:30', '%Y.%m.%d %H:%i:%s');
-- 日期时间字符串可以随便更改或获取字段
SELECT DATE_FORMAT('2018-08-06 09:30:30', '%Y%m');-- 获取年月的组合字符串
SELECT DATE_FORMAT('2018-08-06 09:30:30', '%H%i%s');-- 获取时分秒的组合字符串
SELECT DATE_FORMAT(SYSDATE(), '%Y年%m月%d日 %H时哈哈%i分嘿嘿%d秒呵呵');-- 重新格式化
-- 时间格式化只能格式化时间
SELECT TIME_FORMAT('2018-08-06 09:30:30', '%Y年%m月%d日 %H时%i分%d秒');
-- 只对'09:30:30'进行格式化,日期全部为00
SELECT TIME_FORMAT('09:30:30', '%H时%i分%d秒');
-- MAKEDATE根据数字组合成日期(以天数换算),MAKETIME根据数字组合成时间
SELECT MAKEDATE(2018, 9);-- 结果是'2018-01-09'而不是'2018-09-01'
SELECT MAKEDATE(2018, 220);-- 结果是'2018-08-08'
SELECT MAKETIME(19,30,30);-- 与日期相反,支持三个参数拼接而不支持两个参数换算
-- 日期时间和unix时间的相互转换
SELECT UNIX_TIMESTAMP(), FROM_UNIXTIME(UNIX_TIMESTAMP());

BETWEEN运算符
在WHERE子句中,能够行使BETWEEN运算符在七个值时期开展相比筛选。
1、用于数字类型数据相比
询问年龄(age)在6~10事先的数码:SELECT * FROM table_name WHERE age
BETWEEN 6 AND 10
2、用于时间日期相比较
查询日期(bridate)在”壹玖伍壹-01-01″到”一九五三-01-01″之间的数目:SELECT * FROM
table_name WHERE bridate BETWEEN ‘1952-01-01’ AND ‘1954-01-01’
专心:BETWEEN运算符筛选包涵头和尾。举例数字类型相比较,数据会含有6和10

  3.数值管理函数

函数  说明
ABS() 返回数字表达式的绝对值。
ACOS() 返回数字表达式的反余弦值。如果值是不在范围-1到1,则返回NULL。
ASIN() 返回数字表达式的反正弦。返回NULL,如果值不在范围-1到1
ATAN() 返回数字表达式的反正切。
ATAN2() 返回传递给它的两个变量的反正切。
BIT_AND() 返回按位AND运算表达中的所有位。
BIT_COUNT() 返回传递给它的二进制值的字符串表示。
BIT_OR() 返回传递表达的所有位的位或。
CEIL() 返回最小的整数值但不能比传递的数字表达式小
CEILING() 返回最小的整数值但不能比传递的数字表达式小
CONV() 表达式从一个基数到另一个基数转换的数字。
COS() 返回传递数字表达式的余弦值。数字表达式应该用弧度表示。
COT() 返回传递数字表达式的余切。
DEGREES() 返回数字表达式从弧度转换为度。
EXP() 返回数值表达式的自然对数(E)为基数的幂。
FLOOR() 返回最大整数值但不能大于通过表达式数值。
FORMAT() 返回数字表达式舍入到小数位数。
GREATEST() 返回输入表达式的最大值。
INTERVAL() 需要多个表达式exp1, exp2和exp3等..如果为exp1小于exp2返回0,如果为exp1小于exp3返回1等。
LEAST() 给两个或两个以上时,返回所有输入的最小值。
LOG() 返回通过数字表达式的自然对数。
LOG10() 返回传递表达的基数为10对数的数值。
MOD() 返回表达式由另一个表达式除以剩余部分。
OCT() 返回通过数字表达式的八进制值的字符串表示。如果传递值为NULL,返回NULL。
PI() 返回圆周率的值
POW() 返回一个表达式到另一个表达的次方值
POWER() 返回一个表达式到另一个表达的次方值
RADIANS() 返回传递表达从度转换为弧度值
ROUND() 返回数字表达式四舍五入到整数。可用于舍入表达式为小数点数值
SIN() 返回给定的数字表达的正弦值(弧度)
SQRT() 返回数字表达式的非负平方根
STD() 返回数字表达式的标准偏差
STDDEV() 返回数字表达式的标准偏差
TAN() 返回以弧度表示数值表达式的正切值。
TRUNCATE() 返回exp1小数位数字截断到exp2。如果exp2为0,则结果将没有小数点。

 

网站地图xml地图