第一篇:浅谈SQL语言教学的一点体会
浅谈SQL语言教学的一点体会
【摘要】SQL语言是数据库原理、数据库应用等课程的核心内容,也是这些课程的重点及难点,本文结合SQL语言在实际工程中的应用,从教学内容取舍、教学过程等方面,提出了一些应对策略。
【关键词】数据库应用SQL语言教学教学内容
【基金项目】河北联合大学教改资助项目,项目编号Z1108-08。
【中图分类号】G64 【文献标识码】A 【文章编号】2095-3089(2014)06-0144-01
SQL(Structured Query Language)语言作为数据库的标准操作语言,在基于数据库的应用系统开发中应用十分广泛,SQL语言也是数据库应用、数据库原理、多种开发工具类课程以及毕业设计等实践环节均会涉及到的内容,并且是这些课程的重点及难点,学生能否掌握及熟练使用SQL语言,是能否进行数据库应用系统开发的基础和关键。尽管SQL语言具有高度结构化的特点,基本的SQL语句语法也并不复杂,通过教师的讲解绝大多数学生都能够理解,但是要弄懂全部的语法结构并将SQL语句灵活应用于实际项目,却让很多学生感到力不从心。本文针对SQL语言教学过程中遇到的一些实际问题,提出了解决方法和应对策略。
一、语法过于庞杂,令学生望而却步。
多数教材考虑到语法的完整性,会罗列出SQL语句的全部语法,使得看上去相当庞杂,学生很难搞清楚所有的语法构成成分,从而增加了学生的畏难情绪。
比如SQL语句中最常用的SELECT语句的语法如下:
[WITH ]
SELECT[ ALL | DISTINCT ]
[ TOP expression [ PERCENT ] [ WITH TIES ] ]
[ INTO new_table ]
[ FROM table_source ]
[ WHERE search_condition ]
[ GROUP BY group_by_expression]
[ HAVING search_condition]
[ ORDER BY order_expression [ ASC | DESC ] ]
::=
{*
| { table_name | view_name | table_alias }.*
|{column_name | [ ] expression | $IDENTITY|$ROWGUID} [ [ AS ] column_alias ]
| udt_column_name [ {.| :: } { { property_name | field_name } | method_name(argument [,...n])} ]
| column_alias = expression } [ ,…n ]
面对如此庞杂的语法,很多同学会望而却步。
笔者针对这个问题,提出如下的解决方法:
1.摒弃完整语法,通过简单的例子引入最简单的语法,培养成就感。
兴趣是最好的老师,而成就感能有效的提高学生的学习兴趣。所以在学习SQL语言的过程中,应该摒弃复杂的SQL语法,让学生很快并经常性的体验到成就感,树立起学生对学好SQL语言的信心。
例如通过查询学生基本信息的示例“SELECT 学号,姓名 FROM 学生表”入手,总结出最简单的SELECT语句语法为:
SELECT 列名1,列名2,…, 列名n FROM表名
然后通过逐步加深应用的需求来逐渐增加语法成分。而极少用到的语法成分,则可不讲解。完整的语法结构可以最后给出,并且只讲语法符号的含义,而不讲语法的含义,感兴趣的学生自己阅读相关参考手册了解具体含义,教师负责答疑。
2.能用中文表示的语法成分尽量用中文表示。
多数教材考虑到语法的规范性,或者是为了与MSDN保持一致,SQL语句采用全英文语法,使得部分英文不太好的学生产生抵触情绪。通过笔者实践,除了关键词外,尽量使用中文形式的语法,会更容易被学生接受。
二、学生不知道如何应用SQL语句解决实际问题。
通过教师讲解,多数学生都能掌握基本SQL语句的编写,但是多数同学不能将所学内容灵活应用于实际项目。比如学生能够理解函数、自连接等内容,但是给出实际问题时却不知道如何解决。针对这种问题,笔者结合多年的教学及工程经历,精心收集、设计了一些数据库应用的案例,比如超市的进销存系统、公司的财务管理系统、学校的学生成绩管理系统、网站的后台管理等,让学生将所学内容与工程实际紧密结合起来,着手处理和解决实际应用问题。
如:在进销存系统中,销售单表(产品编码, 产品名称, 销售单号, 数量,单价,金额),有类似表1的统计要求。
表1 销售情况统计表
产品编码:0001 产品名称:联想笔记本电脑
解1 使用内连接
select t1.*,(select sum(金额)from销售单表where 产品编码=t1.产品编码 and 销售单号<=t1.销售单号)
from 销售单表t1 where 产品编码=‘0001’
解2 使用标量函数
create function uf_sum(@产品编码 char(20),@销售单号 char(20))
returns decimal(12,2)
as
begin
declare @sum decimal(12,2)
select @sum=sum(金额)from 销售情况统计表 where 产品编码=@产品编码 and 销售单号<=@销售单号
return @sum
end
select t1.*,dbo.uf_sum(产品编码,销售单号)
from 销售情况统计表 t1 where 产品编码=‘0001’
三、教师讲得多,学生练得少。
1.多年来受多种因素的制约,课程评价基本上沿袭以理论考核为主,以闭卷为主。然而,在实际工程中强调的却是团队合作、强调充分利用互联网信息等现代化手段,因此课程考核方式应采取开放式考核、实际项目考核,加大上机考核的比重,实践性较强的知识点尽量放在上机操作上进行考核,重点测试学生的实践技能,把任务分解给学生,在上机时独立完成。
2.加大上机的比重,上机课时不少于三分之一,甚至可以达到50%。
针对上述问题提出的解决方案,经过教学实践检验,提高了学生解决实践问题的能力,收到了较好的教学效果。
第二篇:sql语言
11.2.2 数据定义命令
1.CreateTable命令
Create Table <表名>(<列名1><数据类型1>[<列级完整性约束1>][,<列名2>] <数据类型2>[<列级完整性约束2>][,……][,<列名n>] <数据类型n>[<列级完整性约束n>][<表级完整性约束n>]); 语句功能:创建一个以<表名>为名的、以指定的列属性定义的表结构。
2.Alter Table命令
Alter Table<表名>
[ ADD <新列名> <数据类型> [ 完整性约束 ] ]
[ DROP <完整性约束名> ]
[ MODIFY <列名> <数据类型> ];
语句功能:修改以<表名>为名的表结构。
3.Drop命令
Drop Table <表名>
语句功能:删除以<表名>为名的表。
11.2.3 数据查询命令 SELECT
语法形式为:
SELECT [ALL|DISTINCT] 目标列FROM 表(或查询)
[WHERE 条件表达式]
[GROUP BY 列名1 HAVING 过滤表达式]
[ORDER BY 列名2[ASC|DESC]]
功能
根据WHERE子句中的表达式,从指定的表或视图中找出满足条件的记录,按目标列显示数据GROUP BY子句按列名1的值进行分组,每一组产生一条记录,HAVING短语对组进行输出过滤
ORDER BY子句按列名2 对查询结果的值进行排序
1.SELECT语句示例
例11.1查询所有学生的基本情况
SELECT学号,姓名,性别,出生日期,专业
FROM Student;
例11.2查询所有男生的信息记录。
SELECT *
FROM student
WHERE 性别=“男”;
例11.1查询所有的专业,查询结果中不出现重复的记录。
SELECT DISTINCT 专业 FROM Student ;
例11.4 查询学生的人数和平均年龄
SELECT Count(*)AS 人数,Avg(Year(Date())-Year(出生年月))AS平均年龄 FROM Student ; 例85 查询计算机专业学生的学号、姓名和专业
SELECT 学号,姓名,专业 FROM Student WHERE 专业=“计算机” ;
例11.6显示所有非计算机专业学生的学号、姓名和年龄
SELECT 学号, 姓名, Year(Date())-Year(出生年月)AS 年龄
FROM StudentWHERE 专业<>“计算机” ;
例11.7 查询1981年(包括1981年)以前出生的女生姓名和出生年月。
SELECT 姓名,出生年月 FROM Student
WHERE 出生年月 < #1/1/1982# AND 性别=“女” ;
例11.8 查询选修了1号课程的学生的学号及其成绩,查询结果按分数降序排列。
Select 学号,成绩Fromsc
Where课程号= “1”
Order By 成绩 DESC;
例11.9查询选修了2门(包括2门)以上课程的学生的学号和课程数
SELECT 学号, Count(*)AS 课程数 FROM Sc
GROUP BY 学号HAVING Count(*)>=2 ;
例11.10查询所有课程的成绩在70分以上的学生的学号
SELECT 学号 FROM ScGROUP BY 学号
HAVING Min(成绩)>=70 ;
例11.11 查询所有学生的学号、姓名、课程和成绩
SELECT Student.学号,Student.姓名,Sc.课程, Sc.成绩
使用内连接格式
SELECT Student.学号,Student.姓名,Sc.课程,Sc.成绩
2.ORDER BY、GROUP BY、HAVING子句示例
例11.12 对学生成绩表,统计每人的平均分和课程数,按学号递减排序
SELECT学号, COUNT(课程号)AS 课程数, AVG(成绩)AS平均成绩
FROM sc
学号
ORDER BY学号DESC;
例11.13查询选修了2门(包括2门)以上课程、最低成绩在60分以上的学生的学号、课程数和最低分 SELECT 学号, Min(成绩)AS 成绩之Min, Count(课程)AS 课程之Count FROM ScGROUP BY Sc.学号
HAVING(((Min(成绩))>=60)AND((Count(课程))>2));
3、多表连接查询SELECT语句
WHERE 条件,在两表中有相同的属性值
例11.14 查询所有学生的学号、姓名、课程和成绩
SELECT Student.学号,Student.姓名,Sc.课程, Sc.成绩
FROM Student,Sc WHERE Student.学号 = Sc.学号;
4.嵌套查询
在SQL中,将一个SELECT语句查询块嵌套在另一个SELECT语句的WHERE子句或HAVING子句中称为嵌套查询
例11.15 查询没有学过大学计算机基础的学生的学号、姓名和专业
SELECT Student.学号, Student.姓名, Student.专业
FROM Student
(SELECT Sc.学号
FROM Sc
WHERE Sc.课程=“大学计算机基础”);
嵌套查询示例
例11.16 查询与“邓倩梅”在同一个专业的学生的学号和姓名
SELECT Student.学号, Student.姓名
FROM Student
WHERE
FROM Student
11.2.4SQL中的数据更新命令
结构化查询语言SQL是操作关系数据库的工业标准语言
在SQL中,常用的语句有两类:
数据查询语句 SELECT
数据更新命令 INSERT、UPDATE、DELETE
INSERT语句用于数据插入 其语法格式为:
插入一条记录
INSERT INTO 表名 [(字段1,…,字段n)] VALUES(值1,…,值n)
插入查询的结果
INSERT INTO 表名(字段1,…,字段n)VALUES 子查询
数据更新-INSERT语句实例
例11.17向表Students中插入一条记录
Insert Into student(学号, 姓名, 出生日期,性别, 专业)VALUES(“20031011”, “陈伟”,男“, ”化学“)
注意:
字符型常量用 单引号 或 双引号 括起来
逻辑型字段的值是 True/False、Yes/No 或 On/Off
日期的表示形式为 MM/DD/YY 或 MM/DD/YYYY
数据更新-DELETE语句
DELETE语句用于数据删除其语法格式为:
DELETE FROM 表 [WHERE 条件]
注意: WHERE子句缺省,则删除表中所有的记录(表还在)
例11.18 删除表Students中所有学号为990301的记录
DELETE FROM Students WHERE 学号=“990301”
例11.19 删除表Sc中成绩低于70分的记录
DELETE FROM Sc WHERE 成绩<70
数据更新-UPDATE语句
UPDATE语句用于数据修改其语法格式为:
UPDATE 表 SET 字段1=表达式1, …,字段n=表达式n [WHERE 条件]
注意: WHERE子句缺省,则修改表中所有的记录
例11.20 将表Student中学生王涛的姓名改为王宝 #12/28/80#,”
UPDATE Students SET 姓名=“王宝” WHERE 姓名=“王涛”
UPDATE语句一次只能对一个表进行修改
SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准。包括数据定义、数据操纵、数据查询和数据控制四个方面,共9个命令。
SQL语言使用使用数据定义语言(Data Definition Language,简称DDL)实现数据定义功能。1、创建数据表
【命令格式】
CREATETABLE<表名> [free]
(<字段名1><数据类型>[(<宽度>[,<小数位数>]),<字段名2>…])
【功能】定义(也称创建)一个表结构。
【命令格式】
CREATETABLE<表名> [free]
(<字段名1><数据类型>[(<宽度>[,<小数位数>]),[NULL|NOTNULL]<字段名2>…])
【功能】定义(也称创建)一个表结构。
【命令格式】
CREATETABLE<表名> [free]
(<字段名1><数据类型>[(<宽度>[,<小数位数>]),[NULL|NOTNULL]
[CHECK<表达式>[error<提示信息]
<字段名2>…])
【功能】定义(也称创建)一个表结构。
【命令格式】
CREATETABLE<表名> [free]
(<字段名1><数据类型>[(<宽度>[,<小数位数>]),[NULL|NOTNULL]
[CHECK<表达式>[error<提示信息]
[DEFAULT<表达式>]
<字段名2>…])
【功能】定义(也称创建)一个表结构。
【命令格式】
CREATETABLE<表名> [free]
(<字段名1><数据类型>[(<宽度>[,<小数位数>]),[NULL|NOTNULL]
[CHECK<表达式>[error<提示信息]
[DEFAULT<表达式>]
[PRIMARY KEY/UNIQUE]
<字段名2>…])
【功能】定义(也称创建)一个表结构。
【例11-1】创建一个表STUD(学生信息表),它由以下字段组成:学号(C,8);姓名(C,8);性别(C,2);出生年月(D);入校总分(N,3);三好生(L);特长(M);照片(G)。
CREATE TABLESTUD
(学号C(8),姓名C(8),性别 C(2),出生年月 D, 入校总分 N(3),;三好生 L,特长 M,照片 G)
【例11-2】创建一个表STUD(学生信息表),它由以下字段组成:学号(C,8);姓名(C,8);性别(C,2);出生年月(D);入校总分(N,3)。
并要求:学号为主键并不能为空值;姓名也不允许为空值,性别字段必须是“男”或者“女”;出生年月取值范围在1970到1990年之间。
CREATE TABLESTUD
(学号C(8)PRIMARY KEYNOT NULL,;
姓名C(8),;性别C(2),;出生年月 D,;入校总分 N(3))
【例11-2】创建一个表STUD(学生信息表),它由以下字段组成:学号(C,8);姓名(C,8);性别(C,2);出生年月(D);入校总分(N,3)。
并要求:学号为主键并不能为空值;姓名也不允许为空值,性别字段必须是“男”或者“女”;出生年月取值范围在1970到1990年之间。
CREATE TABLESTUD
(学号C(8)PRIMARY KEYNOT NULL,;
姓名C(8), NOT NULL;性别C(2),;出生年月 D,;入校总分 N(3))
【例11-2】创建一个表STUD(学生信息表),它由以下字段组成:学号(C,8);姓名(C,8);性别(C,2);出生年月(D);入校总分(N,3)。
并要求:学号为主键并不能为空值;姓名也不允许为空值,性别字段必须是“男”或者“女”;出生年月取值范围在1970到1990年之间。
CREATE TABLESTUD
(学号C(8)PRIMARY KEYNOT NULL,;
姓名C(8), NOT NULL;
性别C(2), DEFAULT=“男”CHECK 性别=“男”OR 性别 =“女” ERROR“性别必须是男或女”;出生年月 D,;入校总分 N(3))
【例11-2】创建一个表STUD(学生信息表),它由以下字段组成:学号(C,8);姓名(C,8);性别(C,2);出生年月(D);入校总分(N,3)。
并要求:学号为主键并不能为空值;姓名也不允许为空值,性别字段必须是“男”或者“女”;出生年月取值范围在1970到1990年之间。
CREATE TABLESTUD
(学号C(8)PRIMARY KEYNOT NULL,;
姓名C(8), NOT NULL;
性别C(2), DEFAULT=“男”CHECK 性别=“男”OR 性别;
=“女” ERROR“性别必须是男或女”;
出生年月 D, CHECK(出生年月)<={^1990-01-01} and 出生;
年月>={^1970-01-01},;
入校总分 N(3))
2、修改数据表
【命令格式1】
ALTER TABLE <表名>[ADD/ ALTER
[COLUMN] <新字段名><数据类型>[<宽度>[,<小数位数>]]
[NULL |NOTNULL]]
[CHECK<表达式>[error<提示信息>]]
[DEFAULT <表达式>]
[PRIMARY KEY/UNIQUE]]
【功能】修改表结构。、插入记录
【格式1】INSERTINTO<表名>[<字段名表>]VALUES(<表达式表>)
【格式2】INSERTINTO<表名>FROMARRAY<数组名>|FROMMEMVAR
【功能】在指定的表文件末尾追加一条记录。格式1用表达式表中的各表达式值赋值给<字段名表>中的相应的各字段。格式2用数组或内存变量的值赋值给表文件中各字段。
【说明】如果某些字段名在INTO子句中没有出现,则新记录在这些字段名上将取空值(或默认值)。但必须注意的是,在表定义说明了NOTNULL的字段名不能取空值。
<字段名表>:指定表文件中的字段,缺省时,按表文件字段的顺序依次赋值。
<表达式表>:指定要追加的记录各个字段的值。
【例11-6】在表文件STUD的末尾追加三条记录。
***用表达式方式追加第一条记录***
INSERTINTOSTUD
(学号,姓名,性别,班级名,系别代号);
VALUES
(“011110”,“李建国”,“男”,“计0121”,“01”)
DIMENSIONDATA[5]
DATA(1)=“011103”
DATA(2)=“李宁”
DATA(3)=“女”
DATA(4)=“电0134”
DATA(5)=“02”
INSERTINTOSTUDFROMARRAYDATA
第三篇:SQL语言
1.输出任意两个字符串变量的值(参考代码)
declare @v1 varchar(12),@V2 varchar(12)
set @v1='中国'
set @v2='你好!'
select @v1+@v2
2.为以下程序纠错
declare @v1 varchar(12),@V2 varchar(10)
set @v1='中国'
set @v2='你好!'
set @s='吗!'
select @v1+@v2+@s
3.运行以下代码,观察以下全局变量的功能
select 34@@connections 返回当前服务器的连接数目
select 1@@rowcount 返回上一条T-SQL语句影响的数据行数 select @@error返回上一条T-SQL语句执行后的错误号 select @@procid返回当前存储过程的ID号
select @@remserver 返回登录记录中远程服务器的名字 select @@spid返回当前服务器进程的ID标识
select @@version 返回当前SQL Server服务器的版本和处理器类型 select @@language 返回当前SQL Server服务器的语言
select @@connections
4.输入以下代码并理解其含意
bggin
if 3>5
select 'true'
else print 'false'
end
go
begin
if 'a'<'A'
select 'true'
else print 'false'
end
go
begin
if '张'>'李'
select 'true'
else print 'false'
end
go
begin
if getdate()>2008-10-10
print'true'
else print'false'
end
5.附加数据库student,并进行以下操作
use student
select * from xsda
以XSDa表为例,如果平均成绩高于75分,则显示“不错!”,否则,显示“加油呀!”。
declare @av1 char(12), @av2 char(12)
set @av1='不错!'
set @av2='加油!'
if(select avg(总学分)from xsda)>75
begin
select @av1
end
else
select @av2
编写一个程序,显示每一同学的成绩等级
select xh,zf,dj=
case
when zf>70 then '优秀'
when zf>65 then '良好'
when zf>=60 then '合格'
else '不合格'
end
from xsdn
6.求1-100偶数和(参考代码)
declare @i int,@s int/*定义变量*/
set @i=0/*变量赋初值*/
set @s=0
while @i<=100/*条件*/
begin
set @s=@s+@i/*累加求和*/
set @i=@i+2/*偶数*/
end
print @s
7.求10!
8.为以下程序纠错(求1-100的积)
declare @i int,@s int
set @i=0
set @s=0
while @i<=100 begin
set @s=@s*@iset @i=@i+2 end
print @s
第四篇:SQL 语言
SQL语言
create database student
on primary
(name=student_data1,filename='c:student_data1.mdf',size=10M,maxsize=100M,filegrowth=10%)
filegroupstudent_group分组
(name=student_data2,filename='c:student_data2.ndf',size=10M,maxsize=100M,filegrowth=10%)
log on
(name=student_log1,filename='c:student_data1.ldf',size=10M,maxsize=100M,filegrowth=10%)
create table xi
(系编号 char(2)primary key,系名varchar(20))主码
insert into xi values('01','物理系')
insert into xi values('02','化学系')
select *from xi查询
create table student
(学号 char(11)primary key,姓名varchar(10),民族 char(2)default'汉',出生日期datetime ,奖学金 money check(奖学金<=8000), 系编号 char(2)foreign key references xi(系编号))
默认值,约束,外码
insert into student values('20090214201','马帅', '汉','1990-1-8',1500, '01')
insert into student values('20100214202','周伊','回' ,'1989-2-4',500,'02')
update student set 出生日期='1911-3-1'where 学号 ='20100214201'
更新数据
select* from student/ 3
alter table student add 性别 char(2)check(性别='男'or 性别='女')
增加列
update student set 性别 ='男' where 学号 ='20090214201' update student set 性别 ='女' where 学号 ='20100214202' select student* from student where left(学号,4)=’2009’ 查询大三学生的详细信息
create table kc
(课程编号 char(2),课程名varchar(20))
alter table kc alter column 课程编号 char(2)not null 修改字段
alter table kc addconstraint pk_kcprimary key(课程编号)加主码(加主码的字段不能为空)
insert into kc values('01','语文')
insert into kc values('02','数学')
insert into kc values('03','英语')
update kc set课程名 ='历史学' where 课程编号= '05' execute sp_rename '课程编号','课程名','column'
改名
create table cj
(学号 char(11)foreign key references student(学号))alter table cj add 课程编号 char(2)
增加列
alter table cj add foreign key(课程编号)references kc(课程编号)
增加外码
alter table cj add 成绩varchar(3)
insert into cj values('20100214201','01','69')
insert into cj values('20100214201','02','90')
insert into cj values('20100214201','03','56')
insert into cj values('20100214202','01','26')
insert into cj values('20100214202','02','54')
insert into cj values('20100214202','03','89')
1.select student.*,课程名,成绩 ,系名 from student ,kc,cj ,xi where student.系编号 = xi.系编号and cj.学号=student.学号 and kc.课程编号=cj.课程编号 and student.学号='20100214202'
查询学号为20100214202的学生student表的全部内容和每门课的成绩及所在系
2.select 姓名,课程名,成绩,系名 from student,kc,cj,xi where student.学号 = cj.学号 and student.系编号=xi.系编号 and cj.课程编号= kc.课程编号 and month(getdate())=month(student.出生日期)and day(getdate())= day(student.出生日期)
查询今天过生日的学生的姓名每门课的成绩及系名
3.select student.学号,课程名,成绩,系名 from student,kc,cj,xi where student.学号=cj.学号 and kc.课程编号=cj.课程编号 and student.系编号=xi.系编号 and cj.学号 =student.学号 查看所有学生的学号的每门课的成绩及系名
4.Select count()as 学生数 from student ,xi where student.系编号=xi.系编号and xi.系名=’物理系’
查看物理系的学生数
5.Select student.姓名,avg(cj.成绩)as平均成绩 from student, cj where student.学号=cj.学号
查看所有学生的平均成绩
第五篇:SQL语言简介
SQL语言简介
㈠、什么是SQL语言
SQL(Structure Query Languge,结构化查询语言)是一种数据库专用的计算机语言,不管是Oracle、MS SQL、Access、MySQL或其他公司的数据库,也不管数据库建立在大型主机或个人计算机上,都可以使用SQL语言来访问和修改数据库的内容。虽然不同公司的数据库软件多多少少会增加一些专属的SQL语法,但大体上,它们还是遵循ASNI(美国国家标准协会)制定的SQL标准。因为SQL语言具有易学习及阅读等特性,所以SQL逐渐被各种数据库厂商采用,而成为一种共通的标准查询语言。只要你学会SQL,即可操作各种数据库如Visual Foxpro、Access、dBase等等。总之,SQL语言是各种数据库都可以使用的数据库查询语言。
SQL语言不仅仅具有查询数据库的功能,而且可以对数据库完成选取、增删、更新与跳转等各种操作。㈡、SQL语言的组成SQL语言是由命令(函数)、子句、运算符、加总函数及通配符等组成,分述如下:
1、命令
SQL的命令可分成数据定义语言与数据操作语言,数据定义语言可用来建立新的数据库、数据表、字段及索引等,本教程不予介绍;另一为数据操作语言,可用来建立查询表、排序、筛选数据、修改、增删等动作。数据定义语言命令常用的有选择、添加、删除和修改这四种:
⑴、命令:SELECT
中文意思:选择
说明:用于找出合乎条件的记录
⑵、命令:INSERT
中文意思:插入
说明:用于增加一笔记录或合并两个数据表
⑶、命令:UPDATE
中文意思:更新
说明:用于更正合乎条件的记录
⑷、命令:DELETE
中文意思:删除
说明:用于删除合乎条件的记录
2、子句
子句是用于设定命令要操作的对象(即参数),SQL所用的子句如下:
⑴、子句:FROM
中文意思:数据表
说明:用于指定数据表
⑵、子句:WHERE
中文意思:条件
说明:用于设定条件
⑶、GROUP BY
中文意思:分组(合并)
说明:用于设定分组
⑷、ORDER BY
中文意思:排序
说明:用于设定输出的顺序及字段
3、运算符
子句参数中的运算符使子句构成不同的语法格式,如“字段1='100'”、“字段1>'100'”等。运算符又分逻辑运算符与比较运算符。
◇逻辑运算符如下:
⑴、运算符:AND
中文意思:并且
说明:逻辑且
⑵、运算符:OR
中文意思:或者
说明:逻辑非
⑶、运算符:NOT
中文意思:取反
说明:逻辑非或逻辑反
◇比较运算符如下:
⑴、运算符:<说明:小于
⑵、运算符:≤说明:小于等于
⑶、运算符:≥说明:大于等于
⑷、运算符:>说明:大于
⑸、运算符:=说明:等于
⑹、运算符:<>说明:不等于
⑺、运算符:BETWEEN说明:用于设定范围中文意思:在...之间
⑻、运算符:LIKE说明:用于通配设定中文意思:如同
⑼、运算符:IN说明:用于集合设定中文意思:在...之内
4、加总函数
加总函数常常运用在命令的参数中,如:“SELECT SUM(数学),AVG(数学)FROM 成绩单”。⑴、加总函数:AVG
中文意思:平均
说明:用于求指定条件的平均
⑵、加总函数:COUNT
中文意思:数量
说明:用于求指定的数量
⑶、加总函数:SUM
中文意思:和
说明:用于求指定条件的和
⑷、加总函数:MAX
中文意思:最大值
说明:用于求指定条件的最大值
⑸、加总函数:MIN
中文意思:最小值
说明:用于求指定条件的最小值
5、通配符
⑴、通配符:%意义:任何长度的字符串(包括0)
⑵、通配符:_意义:下划线表示任何一个字符
⑶、通配符:[ ]意义:中括号表示某个范围内的一个字符
在下一讲将说明SQL语言是怎样把命令(函数)、子句、运算符、及加总函数等组合在一起的。