SQL基础,程序员面试题精选100题

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

Oracle 语法

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;

演示:

1)从 “Websites” 表中选取头两条记录:

2.SQL like 操作符

作用:

  1. like操作符用于在 where子句中搜索列中的指定模式。

语法:

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;

演示:

1)从websites表中选取 name 以字母 “G” 开始的所有客户

2)从websites表中选取 name 包含模式 “oo” 的所有客户

3)从websites表中选取 name 不包含模式 “oo” 的所有客户

3.SQL 通配符

作用:

  1. 通配符可用于替代字符串中的任何其他字符。
  2. 在 sql中,通配符与 sql like 操作符一起使用。
  3. sql 通配符用于搜索表中的数据。
  4. 在 SQL 中,可使用以下通配符:
通配符描述
%替代 0 个或多个字符
_替代一个字符
[charlist]字符列中的任何单一字符
[^charlist] 或 [!charlist]不在字符列中的任何单一字符

演示:

1) websites表中选取 url 以字母 “https” 开始的所有网站:

4.SQL in 操作符

作用:

  1. in 操作符允许您在 WHERE 子句中规定多个值。

语法:

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);

演示:

1)websites表中选取 name 为 “Google” 或 “菜鸟教程” 的所有网站:

5.SQL between 操作符

作用:

  1. between操作符用于选取介于两个值之间的数据范围内的值。
  2. 这些值可以是数值、文本或者日期。

语法:

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

演示:

1)websites表中选取 alexa 介于 1 和 20 之间的所有网站:

2)websites表中选取 alexa 不在介于 1 和 20 之间的所有网站:

6.SQL 别名(as)

作用:

  1. as 可以为表名称或列名称指定别名。
  2. 基本上,创建别名是为了让列名称的可读性更强。

语法:

--列的sql别名语法
SELECT column_name AS alias_name
FROM table_name;
--表的sql别名语法
SELECT column_name(s)
FROM table_name AS alias_name;

演示:

1)使用 “Websites” 和 “access_log” 表,并分别为它们指定表别名 “w” 和 “a”,选取 “淘宝” 的所有访问记录:

7.SQL join 链接

作用:

  • SQL join 用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。
  • 下图展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法。

不同的sql join:

  • INNER JOIN:如果表中有至少一个匹配,则返回行。
  • LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行。
  • RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行。
  • FULL JOIN:只要其中一个表中存在匹配,则返回行。
1)inner join

语法:

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;
--或
SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;

演示:

1)返回所有网站的访问记录:

2)sql left join

语法:

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;
--或
SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name=table2.column_name;

演示:

1)返回所有网站及他们的访问量(如果有的话):

3)sql right join

语法:

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;
--或
SELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name=table2.column_name;

演示:

1)返回网站的访问记录:

4)sql full outer join

语法:

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;

8.SQL union 操作符

作用:

  • union 操作符合并两个或多个 SELECT 语句的结果。
  • union内部的每个 select语句必须拥有相同数量的列。
  • 列也必须拥有相似的数据类型。
  • 同时,每个 select 语句中的列的顺序必须相同。
  • union结果集中的列名总是等于 union中第一个select 语句中的列名。

语法:

---sql union ---选取不同的值
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
---sql union all---允许重复的值
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;

演示:

1)从 “Websites” 和 “apps” 表中选取所有不同的country(只有不同的值)

2)从 “Websites” 和 “apps” 表中选取所有的country(也有重复的值)

9.SQL select into 语句

作用:

  • select into语句从一个表复制数据,然后把数据插入到另一个新表中。

语法:

---复制所有的列插入到新表中:
SELECT *
INTO newtable [IN externaldb]
FROM table1;
---只复制希望的列插入到新表中:
SELECT column_name(s)
INTO newtable [IN externaldb]
FROM table1;

实例:

--创建 Websites 的备份复件:
SELECT *
INTO WebsitesBackup2016
FROM Websites;
--只复制一些列插入到新表中:
SELECT name, url
INTO WebsitesBackup2016
FROM Websites;
--只复制中国的网站插入到新表中:
SELECT *
INTO WebsitesBackup2016
FROM Websites
WHERE country='CN';
--复制多个表中的数据插入到新表中:
SELECT Websites.name, access_log.count, access_log.date
INTO WebsitesBackup2016
FROM Websites
LEFT JOIN access_log
ON Websites.id=access_log.site_id;

10.SQL insert into select

作用:

  • insert into select 语句从一个表复制数据,然后把数据插入到一个已存在的表中。

语法:

--一个表中复制所有的列插入到另一个已存在的表中:
INSERT INTO table2
SELECT * FROM table1;
--我们可以只复制希望的列插入到另一个已存在的表中:
INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;

演示:

1)复制 “apps” 中的数据插入到 “Websites” 中:

11.SQL create database 语句

作用:

  • create database 语句用于创建数据库。

语法:

CREATE DATABASE dbname;

实例:

CREATE DATABASE my_db;

12.SQL create table 语句

作用:

  • create table语句用于创建数据库中的表。
  • 表由行和列组成,每个表都必须有个表名。

语法:

CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);

实例:

--创建一个名为 "Persons" 的表,包含五列:PersonID、LastName、FirstName、Address 和 City。
CREATE TABLE Persons
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);

13.SQL 约束

作用:

  • SQL 约束用于规定表中的数据规则。
  • 如果存在违反约束的数据行为,行为会被约束终止。
  • 约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。

语法:

CREATE TABLE table_name
(
column_name1 data_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,
....
);

在 SQL 中,我们有如下约束:

  • NOT NULL - 指示某列不能存储 NULL 值。
  • UNIQUE - 保证某列的每行必须有唯一的值。
  • PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
  • FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
  • CHECK - 保证列中的值符合指定的条件。
  • DEFAULT - 规定没有给列赋值时的默认值。
1)not null 约束

作用:

  • NOT NULL 约束强制列不接受 NULL 值。
  • NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。

实例:

1)创建表时添加not null约束:

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255) NOT NULL,
    Age int
);

2)已创建的表添加not null 约束

ALTER TABLE Persons
MODIFY Age int NOT NULL;

3)已创建的表中删除not null约束

ALTER TABLE Persons
MODIFY Age int NULL;

2)unique 约束

作用:

  • UNIQUE 约束唯一标识数据库表中的每条记录。
  • UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
  • PRIMARY KEY 约束拥有自动定义的 UNIQUE 约束。
  • 每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

实例:

1)创建表时添加unique约束:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (P_Id)
)

2)已创建的表添加unique约束

ALTER TABLE Persons
ADD UNIQUE (P_Id)

3)已创建的表中删除unique约束

ALTER TABLE Persons
DROP INDEX uc_PersonID

3)primary key 约束

作用:

  • PRIMARY KEY 约束唯一标识数据库表中的每条记录。
  • 主键必须包含唯一的值。
  • 主键列不能包含 NULL 值。
  • 每个表都应该有一个主键,并且每个表只能有一个主键。

实例:

1)创建表时添加primary key 约束:

--mysql
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)
--SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
P_Id int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

2)已创建的表添加primary key 约束

ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)

3)已创建的表中删除primary key 约束

ALTER TABLE Persons
DROP PRIMARY KEY

4)foreign key 约束

作用:

  • 一个表中的 FOREIGN KEY 指向另一个表中的 UNIQUE KEY(唯一约束的键)。
  • FOREIGN KEY 约束用于预防破坏表之间连接的行为。
  • FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

实例:

“Persons” 表:

P_IdLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

“Orders” 表:

O_IdOrderNoP_Id
1778953
2446783
3224562
4245621
  • “Orders” 表中的 “P_Id” 列指向 “Persons” 表中的 “P_Id” 列。
  • “Persons” 表中的 “P_Id” 列是 “Persons” 表中的 PRIMARY KEY。
  • “Orders” 表中的 “P_Id” 列是 “Orders” 表中的 FOREIGN KEY。

1)创建表时添加foreign key 约束:

--mysql
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)
--SQL Server / Oracle / MS Access:
CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)

2)已创建的表添加foreign key 约束

ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

3)已创建的表中删除foreign key 约束

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

5)check 约束

作用:

  • CHECK 约束用于限制列中的值的范围。
  • 如果对单个列定义 CHECK 约束,那么该列只允许特定的值。
  • 如果对一个表定义 CHECK 约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制。

实例:

1)创建表时添加check 约束:

--mysql
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (P_Id>0)
)
--SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
P_Id int NOT NULL CHECK (P_Id>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

2)已创建的表添加check 约束

ALTER TABLE Persons
ADD CHECK (P_Id>0)

3)已创建的表中删除check 约束

ALTER TABLE Persons
DROP CHECK chk_Person

6)default 约束

作用:

  • DEFAULT 约束用于向列中插入默认值。
  • 如果没有规定其他的值,那么会将默认值添加到所有的新记录。

实例:

1)创建表时添加default 约束:

CREATE TABLE Persons
(
    P_Id int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255) DEFAULT 'Sandnes'
)

2)已创建的表添加default 约束

ALTER TABLE Persons
ALTER City SET DEFAULT 'SANDNES'

3)已创建的表中删除default 约束

ALTER TABLE Persons
ALTER City DROP DEFAULT

14.create index 语句

作用:

  • CREATE INDEX 语句用于在表中创建索引。
  • 在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。
  • 可以在表中创建索引,以便更加快速高效地查询数据。
  • 用户无法看到索引,它们只能被用来加速搜索/查询。

语法:

--在表上创建一个简单的索引。允许使用重复的值:
CREATE INDEX index_name
ON table_name (column_name)
--在表上创建一个唯一的索引。不允许使用重复的值
CREATE UNIQUE INDEX index_name
ON table_name (column_name)

实例:

1)在 “Persons” 表的 “LastName” 列上创建一个名为 “PIndex” 的索引:

CREATE INDEX PIndex
ON Persons (LastName)

2)如果您希望索引不止一个列,您可以在括号中列出这些列的名称,用逗号隔开:

CREATE INDEX PIndex
ON Persons (LastName, FirstName)

15.SQL drop

作用:

  • 通过使用 DROP 语句,可以轻松地删除索引、表和数据库。

语法:

-----DROP INDEX 语句用于删除表中的索引。
--MS Access
DROP INDEX index_name ON table_name
--DB2/Oracle 
DROP INDEX index_name
-- MS SQL Server
DROP INDEX table_name.index_name
--MySQL
ALTER TABLE table_name DROP INDEX index_name
----DROP TABLE 语句用于删除表。
DROP TABLE table_name
----DROP DATABASE 语句用于删除数据库。
--DROP DATABASE database_name
----只删除表中的数据,不删除表本身
TRUNCATE TABLE table_name 

16.SQL alter table 语句

作用:

  • ALTER TABLE 语句用于在已有的表中添加、删除或修改列

语法:

--在表中添加列
ALTER TABLE table_name
ADD column_name datatype
--删除表中的列
ALTER TABLE table_name
DROP COLUMN column_name
--改变表中列的数据类型
ALTER TABLE table_name
MODIFY COLUMN column_name datatype

17.SQL auto increment 字段

作用:

  • Auto-increment 会在新记录插入表中时生成一个唯一的数字。
  • 通常希望在每次插入新记录时,自动地创建主键字段的值

语法:

--MySQL
CREATE TABLE Persons
(
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (ID)
)
--SQL Server
CREATE TABLE Persons
(
ID int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
--Access
CREATE TABLE Persons
(
ID Integer PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
--Oracle 
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10

18.SQL 视图

作用:

  • 视图是基于 SQL 语句的结果集的可视化的表。
  • 视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。
  • 以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,也可以呈现数据,就像这些数据来自于某个单一的表一样。

语法:

CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
---注释:视图总是显示最新的数据!每当用户查询视图时,数据库引擎通过使用视图的 SQL 语句重建数据。

实例:

1)视图 “Current Product List” 会从 “Products” 表列出所有正在使用的产品(未停产的产品)。

--创建视图
CREATE VIEW [Current Product List] AS
SELECT ProductsID,ProductName
FROM Products
WHERE Discontinued=No
---查询视图
SELECT * FROM [Current Product List]

2)更新视图:

CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

3)删除视图

DROP VIEW view_name

19.SQL null值

作用:

  • NULL 值代表遗漏的未知数据。
  • 默认地,表的列可以存放 NULL 值。
  • 如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。
  • NULL 值的处理方式与其他值不同。
  • NULL 用作未知的或不适用的值的占位符。
  • 无法比较 NULL 和 0;它们是不等价的。

如何测试 NULL 值

  • 无法使用比较运算符来测试 NULL 值,比如 =、< 或 <>。
  • 必须使用 IS NULL 和 IS NOT NULL 操作符来测试null

实例:

1)选取在 “Address” 列中带有 NULL 值的记录:

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NULL

2)选取在 “Address” 列中不带有 NULL 值的记录

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NOT NULL

第三章 SQL函数

第一节 SQL date 函数

SQL Date 数据类型

MySQL 使用下列数据类型在数据库中存储日期或日期/时间值:

  • DATE - 格式:YYYY-MM-DD
  • DATETIME - 格式:YYYY-MM-DD HH:MM:SS
  • TIMESTAMP - 格式:YYYY-MM-DD HH:MM:SS
  • YEAR - 格式:YYYY 或 YY

SQL Server 使用下列数据类型在数据库中存储日期或日期/时间值:

  • DATE - 格式:YYYY-MM-DD
  • DATETIME - 格式:YYYY-MM-DD HH:MM:SS
  • SMALLDATETIME - 格式:YYYY-MM-DD HH:MM:SS
  • TIMESTAMP - 格式:唯一的数字
MySQL Date 函数

下面的表格列出了 MySQL 中最重要的内建日期函数:

函数描述
NOW()返回当前的日期和时间
CURDATE()返回当前的日期
CURTIME()返回当前的时间
DATE()提取日期或日期/时间表达式的日期部分
EXTRACT()返回日期/时间的单独部分
DATE_ADD()向日期添加指定的时间间隔
DATE_SUB()从日期减去指定的时间间隔
DATEDIFF()返回两个日期之间的天数
DATE_FORMAT()用不同的格式显示日期/时间
SQL Server Date 函数

下面的表格列出了 SQL Server 中最重要的内建日期函数:

函数描述
GETDATE()返回当前的日期和时间
DATEPART()返回日期/时间的单独部分
DATEADD()在日期中添加或减去指定的时间间隔
DATEDIFF()返回两个日期之间的时间
CONVERT()用不同的格式显示日期/时间

第二节 SQL null 函数

--SQL Server / MS Access
SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
FROM Products
--Oracle 没有 ISNULL() 函数。不过,我们可以使用 NVL() 函数达到相同的结果:
SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
FROM Products
--Mysql
SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
FROM Products
-或
SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
FROM Products

第三节 aggregate 函数

1.AVG() - 返回平均值

作用:

  • AVG() 函数返回数值列的平均值。

语法:

SELECT AVG(column_name) FROM table_name

演示:

1)从 “access_log” 表的 “count” 列获取平均值:

2)选择访问量高于平均访问量的 “site_id” 和 “count”:

2.COUNT() - 返回行数

作用:

  • COUNT() 函数返回匹配指定条件的行数。

语法:

--返回指定列的值的数目(NULL 不计入)
SELECT COUNT(column_name) FROM table_name;
--返回表中的记录数
SELECT COUNT(*) FROM table_name;
--返回指定列的不同值的数目:
SELECT COUNT(DISTINCT column_name) FROM table_name;

演示:

1)计算 “access_log” 表中 “site_id”=3 的总访问量:

2)计算 “access_log” 表中总记录数:

3)计算 “access_log” 表中不同 site_id 的记录数:

3.FIRST() - 返回第一个记录的值

作用:

  • FIRST() 函数返回指定的列中第一个记录的值。

语法:

--只有 MS Access 支持 FIRST() 函数。
SELECT FIRST(column_name) FROM table_name;
--SQL Server 
SELECT TOP 1 column_name FROM table_name
ORDER BY column_name ASC;
--MySQL
SELECT column_name FROM table_name
ORDER BY column_name ASC
LIMIT 1;
--Oracle
SELECT column_name FROM table_name
ORDER BY column_name ASC
WHERE ROWNUM <=1;

演示:

1)选取 “Websites” 表的 “name” 列中第一个记录的值:

4.LAST() - 返回最后一个记录的值

作用:

  • LAST() 函数返回指定的列中最后一个记录的值。

语法:

--MS Access 支持 LAST() 函数。
SELECT LAST(column_name) FROM table_name;
--SQL Server
SELECT TOP 1 column_name FROM table_name
ORDER BY column_name DESC;
--MySQL 
SELECT column_name FROM table_name
ORDER BY column_name DESC
LIMIT 1;
--Oracle 
SELECT column_name FROM table_name
ORDER BY column_name DESC
WHERE ROWNUM <=1;

演示:

1)选取 “Websites” 表的 “name” 列中最后一个记录的值:

5.MAX() - 返回最大值

作用:

  • MAX() 函数返回指定列的最大值。

语法:

SELECT MAX(column_name) FROM table_name;

演示:

1)从 “Websites” 表的 “alexa” 列获取最大值:

6.MIN() - 返回最小值

作用:

  • MIN() 函数返回指定列的最小值。

语法:

SELECT MIN(column_name) FROM table_name;

演示:

1)从 “Websites” 表的 “alexa” 列获取最小值:

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
name
ORDER BY column_name ASC
WHERE ROWNUM <=1;


**演示:**


1)选取 “Websites” 表的 “name” 列中第一个记录的值:


![](https://img-blog.csdnimg.cn/img_convert/ac01a717b4423bce883768742ccf3b2b.png)


#### 4.LAST() - 返回最后一个记录的值


**作用:**


* LAST() 函数返回指定的列中最后一个记录的值。


**语法:**



–MS Access 支持 LAST() 函数。
SELECT LAST(column_name) FROM table_name;
–SQL Server
SELECT TOP 1 column_name FROM table_name
ORDER BY column_name DESC;
–MySQL
SELECT column_name FROM table_name
ORDER BY column_name DESC
LIMIT 1;
–Oracle
SELECT column_name FROM table_name
ORDER BY column_name DESC
WHERE ROWNUM <=1;


**演示:**


1)选取 “Websites” 表的 “name” 列中最后一个记录的值:


![](https://img-blog.csdnimg.cn/img_convert/c0f163814277dc1bfae271a1a73e3c16.png)


#### 5.MAX() - 返回最大值


**作用:**


* MAX() 函数返回指定列的最大值。


**语法:**



SELECT MAX(column_name) FROM table_name;


**演示:**


1)从 “Websites” 表的 “alexa” 列获取最大值:


![](https://img-blog.csdnimg.cn/img_convert/0c3403333888f8a20f5fd9fa58e298df.png)


#### 6.MIN() - 返回最小值


**作用:**


* MIN() 函数返回指定列的最小值。


**语法:**



SELECT MIN(column_name) FROM table_name;


**演示:**


1)从 “Websites” 表的 “alexa” 列获取最小值:


**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)**
[外链图片转存中...(img-TMQqBvut-1713176938730)]

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
  • 30
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值