
# URL函数
#### 提取函数
描述：提取函数用于从HTTP URL（或任何符合RFC 2396标准的URL）中提取内容。
```
[protocol:][//host[:port]][path][?query][#fragment]
```
提取的内容不会包含URI的语法分隔符，比如"："或"？"。
- url_extract_fragment(*url* ) → varchar
  描述：返回url的片段标识符，即#后面的字符串。
  ```
  select url_extract_fragment('http://www.example.com:80/stu/index.html?name=xxx&age=25#teacher');--teacher
  ```
  
- url_extract_host(url)→ varchar 描述：返回url中的主机域名。
  ```
  select url_extract_host('http://www.example.com:80/stu/index.html?name=xxx&age=25#teacher');-- www.example.com
  ```
  
- url_extract_parameter(*url* , *name* )→ varchar
  描述：返回url中参数名为name的参数。
  ```
  select url_extract_parameter('http://www.example.com:80/stu/index.html?name=xxx&age=25#teacher','age');-- 25
  ```
  
- url_extract_path(*url* )→ varchar
  描述：提取url中的路径。
  ```
  select url_extract_path('http://www.example.com:80/stu/index.html?name=xxx&age=25#teacher');-- /stu/index.html
  ```
  
- url_extract_port(*url* )→ bigint
  描述：提取url中的端口。
  ```
  select url_extract_port('http://www.example.com:80/stu/index.html?name=xxx&age=25#teacher');-- 80
  ```
  
- url_extract_protocol(*url* )→ varchar
  描述：提取url中的协议。
  ```
  select url_extract_protocol('http://www.example.com:80/stu/index.html?name=xxx&age=25#teacher'); --  http
  ```
  
- url_extract_query(*url* )→ varchar
  描述：提取url中的查询字符串。
  ```
  select url_extract_query('http://www.example.com:80/stu/index.html?name=xxx&age=25#teacher'); -- name=xxx&age=25
  ```
  
 
#### 编码函数
- url_encode(*value* ) → varchar
  描述：对value进行转义处理，以便可以安全地将其包含在URL查询参数名和值中：
  - 字母字符不会被编码。
  
  - 字符 ., -, \* 和 _不会被编码。
  
  - ASCII空格字符会被编码为**+** 。
  
  - 所有其他字符都将转换为UTF-8，并且字节被编码为字符串％XX，其中XX是UTF-8字节的大写十六进制值。
  
  
  ```
  select url_encode('http://www.example.com:80/stu/index.html?name=xxx&age=25#teacher');
  -- http%3A%2F%2Fwww.example.com%3A80%2Fstu%2Findex.html%3Fname%3Dxxx%26age%3D25%23teacher
  ```
  
- url_decode(*value* ) → varchar
  描述：对value编码后的URL进行解码操作。
  ```
  select url_decode('http%3A%2F%2Fwww.example.com%3A80%2Fstu%2Findex.html%3Fname%3Dxxx%26age%3D25%23teacher');
  -- http://www.example.com:80/stu/index.html?name=xxx&age=25#teacher
  ```
  
 
