2023年6月21日发(作者:)

SQL必须掌握的基础知识

说明:SQL是操作数据库内容的,可以进行select查询检索,update修改,insert into添加,delete删除

以下内容举例,均参考下表:

新闻表:NEWS ,表里面的字段分别是:id(编号),leiid(分类),biaoti(标题),neirong,shijian,jishu(计数)

常用关键词含义的简单说明(不区分大小写)

SELECT ---------查询,检索数据库,从数据库表中检索数据行和列

INSERT --------添加数据,向数据库表添加新数据行

DELETE --------删除数据,从数据表中删除数据行

UPDATE --------更新数据库表中的数据

WHERE --------设置条件

以下内容都是在WHERE内使用

LIKE --------模糊查询

IN --------包含

BETWEEN --------在两者之间

TOP -----------前几条信息

LIMIT --------用于在MYSQL中设置显示的记录位置和数量

以上内容在WHERE内使用

ORDER BY --------设置排序规则,以下两个是它的两个规则

ASC --------排序规则为升序(默认),123456

DESC -------- 排序规则为降序,654321

SELECT 基本语句

主要被用来对数据库进行查询并返回符合用户查询标准的结果集。最基本的SELECT 语句格式为:

SELECT [ALL|DISTINCT] select_list

FROM table_list

[WHERE search_condition]

[GROUP BY group_by_expression]

[HAVING search_condition]

[ORDER BY order_list[ASC|DESC]]

其中[]内是可选内容,详细使用方法介绍如下:

[ALL|DISTINCT]:ALL显示表中满足条件的所有记录,DISTINCT删除查询结果中重复的记录,只返回满足条件的第一条记录。

[WHERE search_condition]:设置筛选条件,过滤掉不需要的记录。WHERE子句可以包含以下各种运算符:

1. 比较运算符(大小比较):>、>=、=、<、<=、<>、!>、!<

2. 范围运算符(表达式值是否在指定范围内):BETWEEN„„AND„„、NOT„

BETWEEN„„AND„„

3. 列表运算符(判断表达式是否为列表中指定的项):IN(项1,项2,„„)、NOT

IN(项1,项2,„„) 4.模糊判断符 (判断值是否与指定的字符匹配格式相符):LIKE、NOT LIKE

5.空值判断符 (判断表达式是否为空):IS NULL、IS NOT NULL

6.逻辑运算符 (用于多个条件的逻辑连接):NOT 、AND、OR

GROUP BY group_by_expression 根据group_by_expression 列中的值将结果集分成组。

HAVING search_condition 通常与GROUP BY配合使用,对结果集进行附加筛选。如果不使用GROUP BY子句,HAVING与WHERE的作用一样。HAVING与WHERE区别在于:WHERE子句搜索条件在进行分组操作之前应用,而HAVING搜索条件在进行分组之后应用。HAVING通常作为SQL语句的最后一句。

ORDER BY order_list[ASC|DESC] 排序

以下内容[ ]中括号里面是可选内容,书写时不用带[ ]中括号

select * 解释:*代表所有字段

from 数据表

where 条件表达式

order by 字段名 [ASC/DESC]

例如:显示数据库表NEWS里面分类等于1的所有内容,并进行倒序排列

答案如下:

Select * 注释:检索显示所有的字段

From NEWS 注释:来自表NEWS

Where leiid=1 注释:条件是分类leiid等于1

Order by id DESC 注释:排序进行倒序,654321的排列方法即为倒序。

select *

from 数据表

where 字段名 like %字段值%

order by 字段名 [ASC/DESC]

例如:在表单FORM1里有文本域titles输入框,查询新闻的表单,要求实现在数据库表NEWS中,显示满足查询条件的内容,并进行倒序排列。

答案如下:

先设置一个变量:aaa=(“titles”) 取得表单文本域titles传过来的值

select * 注释:检索显示所有字段

from NEWS 注释:来自表NEWS

where biaoti like %aaa% 注释:数据库字段biaoti包含变量aaa(AAA上面有解释),%所有字符

order by id DESC

select *

from 数据表

where 字段名in(值1,值2,值3)

select *

from 数据表

where 字段名between 值1 and 值2

在MYSQL中取得前10条记录不能用TOP,而用

select *

from 数据表

where 字段名=字段值 order by 字段名 [desc] limit 0,10

SELECT 多表的基本语句

FROM可以读取两个或多个表,当用到字段的时候,写法是表名.字段名,中间用句点链接,公式如下:

两个表或是多个表的联合

Select 表A.字段名1,表B.字段名1[,„„.]

From 表A,表B[,„„.]

Where表A.字段名1=表B.字段名1[AND/OR 表A.字段名2=表B.字段名2] [,„„.]

UPDATE 更新数据基本语句

只要是提到更新数据,就要用到UPDATE。以下是关于UPDATE的写法及实例

1. 更新数据记录

(1)update 数据表

set 字段名=字段值

where 条件表达式

(2)update 数据表

set 字段1=值1,字段2=值2„„字段n=值n

where 条件表达式

例子:update score set jishu=jishu+1 where id=1

DELETE 删除数据基本语句

只要是提到删除数据,就要用到delete。以下是关于DELETE的写法及实例

删除数据记录

(1)delete from 数据表

where 条件表达式

(2)delete from 数据表 (将数据表中所有记录删除)

例子:Delete from news where id=3101

INSERT INTO 添加数据基本语句

只要是提到添加数据,就要用到insert into。以下是关于insert into的写法及实例

添加数据记录

(1)insert into 数据表(字段1,字段2,字段3„)values(值1,值2,值3„)

(2)insert into 目标数据表 select * from 源数据表 (把源数据表的记录添加到目标数据表)

例子:

INSERT INTO news(biaoti,neirong) VALUES (‘学习编程’,’学习编程重要的是学会分析’)

Where id=1

聚合函数的用法

AVG([ALL|DISTINCT]字段名)得出一个表格栏平均值

COUNT([ALL|DISTINCT]*|字段名)对数据行数的统计或对某一栏有值的数据行数统计

MAX(字段名)取得一个表格栏最大值

MIN(字段名)取得一个表格栏最小值

SUM([ALL|DISTINCT]字段名)把数据栏的值相加

解释[ALL|DISTINCT]:ALL显示表中满足条件的所有记录,DISTINCT删除查询结果中重复的记录,只返回满足条件的第一条记录。

聚合函数用法举例如下:

1. 在FILM表中查询每个影院总的票款

Select sum(单价*卖出票数) as 票款,影院

From film

Group by 影院

2. 统计FILM中有几家影院

Select count(didtinct 影院) as 影院个数

From film

3. 统计片名为A1的影片在各影院平均卖出的票数

Select AVG(卖出票数) AS 平局卖出票数,影院

From film

Where 片名=”A1”

GROUP BY 影院

4. 统计片名为A1的影片在各个影院卖出票数的最大值。

Select AVG(卖出票数) AS卖出票数

From film

Where 片名=”A1”

2023年6月21日发(作者:)

SQL必须掌握的基础知识

说明:SQL是操作数据库内容的,可以进行select查询检索,update修改,insert into添加,delete删除

以下内容举例,均参考下表:

新闻表:NEWS ,表里面的字段分别是:id(编号),leiid(分类),biaoti(标题),neirong,shijian,jishu(计数)

常用关键词含义的简单说明(不区分大小写)

SELECT ---------查询,检索数据库,从数据库表中检索数据行和列

INSERT --------添加数据,向数据库表添加新数据行

DELETE --------删除数据,从数据表中删除数据行

UPDATE --------更新数据库表中的数据

WHERE --------设置条件

以下内容都是在WHERE内使用

LIKE --------模糊查询

IN --------包含

BETWEEN --------在两者之间

TOP -----------前几条信息

LIMIT --------用于在MYSQL中设置显示的记录位置和数量

以上内容在WHERE内使用

ORDER BY --------设置排序规则,以下两个是它的两个规则

ASC --------排序规则为升序(默认),123456

DESC -------- 排序规则为降序,654321

SELECT 基本语句

主要被用来对数据库进行查询并返回符合用户查询标准的结果集。最基本的SELECT 语句格式为:

SELECT [ALL|DISTINCT] select_list

FROM table_list

[WHERE search_condition]

[GROUP BY group_by_expression]

[HAVING search_condition]

[ORDER BY order_list[ASC|DESC]]

其中[]内是可选内容,详细使用方法介绍如下:

[ALL|DISTINCT]:ALL显示表中满足条件的所有记录,DISTINCT删除查询结果中重复的记录,只返回满足条件的第一条记录。

[WHERE search_condition]:设置筛选条件,过滤掉不需要的记录。WHERE子句可以包含以下各种运算符:

1. 比较运算符(大小比较):>、>=、=、<、<=、<>、!>、!<

2. 范围运算符(表达式值是否在指定范围内):BETWEEN„„AND„„、NOT„

BETWEEN„„AND„„

3. 列表运算符(判断表达式是否为列表中指定的项):IN(项1,项2,„„)、NOT

IN(项1,项2,„„) 4.模糊判断符 (判断值是否与指定的字符匹配格式相符):LIKE、NOT LIKE

5.空值判断符 (判断表达式是否为空):IS NULL、IS NOT NULL

6.逻辑运算符 (用于多个条件的逻辑连接):NOT 、AND、OR

GROUP BY group_by_expression 根据group_by_expression 列中的值将结果集分成组。

HAVING search_condition 通常与GROUP BY配合使用,对结果集进行附加筛选。如果不使用GROUP BY子句,HAVING与WHERE的作用一样。HAVING与WHERE区别在于:WHERE子句搜索条件在进行分组操作之前应用,而HAVING搜索条件在进行分组之后应用。HAVING通常作为SQL语句的最后一句。

ORDER BY order_list[ASC|DESC] 排序

以下内容[ ]中括号里面是可选内容,书写时不用带[ ]中括号

select * 解释:*代表所有字段

from 数据表

where 条件表达式

order by 字段名 [ASC/DESC]

例如:显示数据库表NEWS里面分类等于1的所有内容,并进行倒序排列

答案如下:

Select * 注释:检索显示所有的字段

From NEWS 注释:来自表NEWS

Where leiid=1 注释:条件是分类leiid等于1

Order by id DESC 注释:排序进行倒序,654321的排列方法即为倒序。

select *

from 数据表

where 字段名 like %字段值%

order by 字段名 [ASC/DESC]

例如:在表单FORM1里有文本域titles输入框,查询新闻的表单,要求实现在数据库表NEWS中,显示满足查询条件的内容,并进行倒序排列。

答案如下:

先设置一个变量:aaa=(“titles”) 取得表单文本域titles传过来的值

select * 注释:检索显示所有字段

from NEWS 注释:来自表NEWS

where biaoti like %aaa% 注释:数据库字段biaoti包含变量aaa(AAA上面有解释),%所有字符

order by id DESC

select *

from 数据表

where 字段名in(值1,值2,值3)

select *

from 数据表

where 字段名between 值1 and 值2

在MYSQL中取得前10条记录不能用TOP,而用

select *

from 数据表

where 字段名=字段值 order by 字段名 [desc] limit 0,10

SELECT 多表的基本语句

FROM可以读取两个或多个表,当用到字段的时候,写法是表名.字段名,中间用句点链接,公式如下:

两个表或是多个表的联合

Select 表A.字段名1,表B.字段名1[,„„.]

From 表A,表B[,„„.]

Where表A.字段名1=表B.字段名1[AND/OR 表A.字段名2=表B.字段名2] [,„„.]

UPDATE 更新数据基本语句

只要是提到更新数据,就要用到UPDATE。以下是关于UPDATE的写法及实例

1. 更新数据记录

(1)update 数据表

set 字段名=字段值

where 条件表达式

(2)update 数据表

set 字段1=值1,字段2=值2„„字段n=值n

where 条件表达式

例子:update score set jishu=jishu+1 where id=1

DELETE 删除数据基本语句

只要是提到删除数据,就要用到delete。以下是关于DELETE的写法及实例

删除数据记录

(1)delete from 数据表

where 条件表达式

(2)delete from 数据表 (将数据表中所有记录删除)

例子:Delete from news where id=3101

INSERT INTO 添加数据基本语句

只要是提到添加数据,就要用到insert into。以下是关于insert into的写法及实例

添加数据记录

(1)insert into 数据表(字段1,字段2,字段3„)values(值1,值2,值3„)

(2)insert into 目标数据表 select * from 源数据表 (把源数据表的记录添加到目标数据表)

例子:

INSERT INTO news(biaoti,neirong) VALUES (‘学习编程’,’学习编程重要的是学会分析’)

Where id=1

聚合函数的用法

AVG([ALL|DISTINCT]字段名)得出一个表格栏平均值

COUNT([ALL|DISTINCT]*|字段名)对数据行数的统计或对某一栏有值的数据行数统计

MAX(字段名)取得一个表格栏最大值

MIN(字段名)取得一个表格栏最小值

SUM([ALL|DISTINCT]字段名)把数据栏的值相加

解释[ALL|DISTINCT]:ALL显示表中满足条件的所有记录,DISTINCT删除查询结果中重复的记录,只返回满足条件的第一条记录。

聚合函数用法举例如下:

1. 在FILM表中查询每个影院总的票款

Select sum(单价*卖出票数) as 票款,影院

From film

Group by 影院

2. 统计FILM中有几家影院

Select count(didtinct 影院) as 影院个数

From film

3. 统计片名为A1的影片在各影院平均卖出的票数

Select AVG(卖出票数) AS 平局卖出票数,影院

From film

Where 片名=”A1”

GROUP BY 影院

4. 统计片名为A1的影片在各个影院卖出票数的最大值。

Select AVG(卖出票数) AS卖出票数

From film

Where 片名=”A1”