SQL函数(三)

violet2024/12/17
SQL

SQL LEN() 函数

TIP

LEN() 函数返回文本字段中值的长度。

1 SQL LEN() 语法

SELECT LEN(column_name) FROM table_name;

MySQL 中函数为 LENGTH()

SELECT LENGTH(column_name) FROM table_name;

2 演示数据库

Websites

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
|  7 | stackoverflow | http://stackoverflow.com/ |     0 | IND     |
+----+---------------+---------------------------+-------+---------+

3 SQL LEN() 实例

下面的 SQL 语句从 Websites 表中选取 name 和 url 列中的值的长度:

实例

SELECT name,LEN(url) as LengthOfURL
FROM Websites;

执行输出结果

img

SQL ROUND() 函数

TIP

ROUND() 函数用于把数值字段舍入为指定的小数位数。

1 SQL ROUND() 语法

SELECT ROUND(column_name,decimals) FROM TABLE_NAME;
参数描述
column_name必需。要舍入的字段。
decimals可选。规定要返回的小数位数。

2 SQL ROUND() 实例

① ROUND(X):返回参数 X 的四舍五入的一个整数。

实例

mysql> SELECT ROUND(-1.23);
        -> -1
mysql> SELECT ROUND(-1.58);
        -> -2
mysql> SELECT ROUND(1.58);
        -> 2

② ROUND(X,D):返回参数 X 的四舍五入的有 D 位小数的一个数字。如果 D 为 0,结果将没有小数点或小数部分。

实例

mysql> SELECT ROUND(1.298, 1);
        -> 1.3
mysql> SELECT ROUND(1.298, 0);
        -> 1

WARNING

注意:ROUND 返回值被变换为一个 BIGINT!

SQL NOW() 函数

TIP

NOW() 函数返回当前系统的日期和时间。

1 SQL NOIW() 语法

SELECT NOW() FROM table_name;

2 演示数据库

Websites

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
|  7 | stackoverflow | http://stackoverflow.com/ |     0 | IND     |
+----+---------------+---------------------------+-------+---------+

3 SQL NOW() 实例

下面的 SQL 语句从 Websites 表中选取 name , url ,及当天日期:

实例

SELECT name,url,Now() AS date
FROM Websites;

执行输出结果

img

SQL FORMAT() 函数

TIP

FORMAT() 函数用于对字段的显示进行格式化。

1 SQL FROMAT() 语法

SELECT FORMAT(column_name,format) FROM table_name;
参数描述
column_name必需。要格式化的字段。
format必需。规定格式。

2 演示数据库

Websites

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
|  7 | stackoverflow | http://stackoverflow.com/ |     0 | IND     |
+----+---------------+---------------------------+-------+---------+

3 SQL FORMAT() 实例

下面的 SQL 语句从 Websites 表中选取 name , url 以及格式化为 YYYY-MM-DD 的日期:

实例

SELECT name,url,DATE_FORMAT(Now,'%Y-%m-%d') AS date
FROM Websites;

执行输出结果

img

SQL 快速参考

快速参考

SQL 语句语法说明
AND / ORSELECT column_name(s) FROM table_name WHERE condition AND|OR conditionAND:表示逻辑与 OR:表示逻辑或
ALTER TABLEALTER TABLE table_name ADD column_name datatypeALTER TABLE table_name DROP COLUMN column_name用于修改现有表的结构,添加或删除列。
AS (alias)SELECT column_name AS column_alias FROM table_nameSELECT column_name FROM table_name AS table_alias用于为列或表指定别名。
BETWEENSELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2用于筛选在指定范围内的记录。
CREATE DATABASECREATE DATABASE database_name用于创建新数据库。
CREATE TABLECREATE TABLE table_name (column_name1 data_type, column_name2 data_type, ...)用于创建新表,定义表的列和数据类型。
CREATE INDEXCREATE INDEX index_name ON table_name (column_name)CREATE UNIQUE INDEX index_name ON table_name (column_name)用于在表的列上创建索引,以加速查询。
CREATE VIEWCREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition用于创建视图,以保存复杂查询的结果。
DELETEDELETE FROM table_name WHERE some_column=some_valueDELETE FROM table_nameDELETE * FROM table_name用于删除表中的记录,DELETE FROM table_nameDELETE * FROM table_name 会删除所有记录。
DROP DATABASEDROP DATABASE database_name用于删除数据库。
DROP INDEXDROP INDEX table_name.index_name (SQL Server)DROP INDEX index_name ON table_name (MS Access)DROP INDEX index_name (DB2/Oracle)ALTER TABLE table_name DROP INDEX index_name (MySQL)用于删除表上的索引。
DROP TABLEDROP TABLE table_name用于删除表及其所有数据。
GROUP BYSELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name用于按一个或多个列对结果集进行分组。
HAVINGSELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value用于对分组后的结果集进行过滤。
INSELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ...)用于筛选匹配集合中某一值的记录。
INSERT INTOINSERT INTO table_name VALUES (value1, value2, ...)INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...)用于向表中插入新记录。
INNER JOINSELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name用于返回两个表中匹配的记录。
LEFT JOINSELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name用于返回左表中的所有记录和右表中的匹配记录。
RIGHT JOINSELECT column_name(s) FROM table_name1 RIGHT JOIN table_name2 ON table_name1.column_name=table_name2.column_name用于返回右表中的所有记录和左表中的匹配记录。
FULL JOINSELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2.column_name用于返回两个表中的所有记录,不论是否匹配。
LIKESELECT column_name(s) FROM table_name WHERE column_name LIKE pattern用于筛选匹配特定模式的记录。
ORDER BYSELECT column_name(s) FROM table_name ORDER BY column_name [ASC|DESC]用于对结果集进行排序。ASC 表示升序排列(默认),DESC 表示降序排列。
SELECTSELECT column_name(s) FROM table_name用于从表中选择数据。
SELECTSELECT * FROM table_name用于选择表中的所有列。
SELECT DISTINCTSELECT DISTINCT column_name(s) FROM table_name用于返回唯一不同的值。
SELECT INTOSELECT * INTO new_table_name [IN externaldatabase] FROM old_table_nameSELECT column_name(s) INTO new_table_name [IN externaldatabase] FROM old_table_name用于从一个表中选择数据并插入到新表中。
SELECT TOPSELECT TOP number|percent column_name(s) FROM table_name ORDER BY column_name [ASC|DESC]从表中返回前指定数量的记录,可以指定绝对数量或百分比。
TRUNCATE TABLETRUNCATE TABLE table_name用于删除表中的所有数据,但不删除表结构。
UNIONSELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2用于合并两个或多个 SELECT 语句的结果集,不包含重复记录。
UNION ALLSELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2用于合并两个或多个 SELECT 语句的结果集,包含重复记录。
UPDATEUPDATE table_name SET column1=value, column2=value, ... WHERE some_column=some_value用于修改表中的现有记录。
WHERESELECT column_name(s) FROM table_name WHERE column_name operator value用于过滤记录,指定查询条件。
最后更新时间 12/18/2024, 9:58:37 AM