`
seawavecau
  • 浏览: 755566 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

SQL语言

阅读更多
SQL语言由命令、子句、运算和集合函数等构成。在SQL中,数据定义语言DDL(用来建立及定义数据表、字段以及索引等数据库结构)包含的命令有CREATE、DROP、ALTER;数据操纵语言DML(用来提供数据的查询、排序以及筛选数据等功能)包含的命令有SELECT、INSERT、UPDATE、DELETE。

一、SQL语句

(1)Select 查询语句
语法:SELECT [ALL|DISTINCT]  <目标列表达式> [AS 列名]
 [,<目标列表达式> [AS 列名] ...] FROM <表名> [,<表名>…]
[WHERE <条件表达式> [AND|OR  <条件表达式>...]
[GROUP BY 列名 [HAVING <条件表达式>]]
[ORDER BY 列名 [ASC | DESC]]
解释:[ALL|DISTINCT]   ALL:全部; DISTINCT:不包括重复行
<目标列表达式>  对字段可使用AVG、COUNT、SUM、MIN、MAX、运算符等
<条件表达式>  
查询条件  谓词
比较  =、>,<,>=,<=,!=,<>,
确定范围  BETWEEN AND、NOT BETWEEN AND
确定集合  IN、NOT IN
字符匹配  LIKE(“%”匹配任何长度,“_”匹配一个字符)、NOT LIKE
空值  IS NULL、IS NOT NULL
子查询  ANY、ALL、EXISTS
集合查询  UNION(并)、INTERSECT(交)、MINUS(差)
多重条件  AND、OR、NOT
<GROUP BY 列名>  对查询结果分组
[HAVING <条件表达式>]  分组筛选条件
[ORDER BY 列名 [ASC | DESC]]  对查询结果排序;ASC:升序 DESC:降序
例1: select student.sno as 学号, student.name as 姓名, course as 课程名, score as 成绩 from score,student where student.sid=score.sid and score.sid=:sid
例2:select student.sno as 学号, student.name as 姓名,AVG(score) as 平均分  from score,student where student.sid=score.sid and student.class=:class and (term=5 or term=6)  group by student.sno, student.name  having count(*)>0 order by 平均分 DESC
例3:select * from score where sid like '9634'
例4:select * from student where class in (select class from student where name='陈小小')

(2)INSERT插入语句
语法:INSERT INTO  <表名> [(<字段名1> [,<字段名2>, ...])]  VALUES (<常量1> [,<常量2>, ...])
语法:INSERT INTO  <表名> [(<字段名1> [,<字段名2>, ...])] 子查询
例子:INSERT INTO  借书表(rid,bookidx,bdate)VALUES (edit1.text,edit2.text,date)
例子:INSERT INTO score1(sno,name)  SELECT sno,name  FROM student  WHERE class=’9634’

(3)UPDATE-SQL
语法:UPDATE 〈表名〉
SET 列名1 = 常量表达式1[,列名2 = 常量表达式2 ...]
 WHERE <条件表达式> [AND|OR  <条件表达式>...]
例子:update score set credithour=4 where course='数据库'

(4)DELETE-SQL
语法:DELETE FROM〈表名〉[WHERE <条件表达式> [AND|OR  <条件表达式>...]]
例子:Delete from student where sid='003101'

(5)CREATE TABLE
CREATE TABLE | DBF TableName1 [NAME LongTableName] [FREE]
 (FieldName1 FieldType [(nFieldWidth [, nPrecision])]
   [NULL | NOT NULL]
   [CHECK lExpression1 [ERROR cMessageText1]]
   [DEFAULT eExpression1]
   [PRIMARY KEY | UNIQUE]
   [REFERENCES TableName2 [TAG TagName1]]
   [NOCPTRANS]
 [, FieldName2 ...]
   [, PRIMARY KEY eExpression2 TAG TagName2
|, UNIQUE eExpression3 TAG TagName3]
   [, FOREIGN KEY eExpression4 TAG TagName4 [NODUP]
     REFERENCES TableName3 [TAG TagName5]]
   [, CHECK lExpression2 [ERROR cMessageText2]])
| FROM ARRAY ArrayName

(6)ALTER TABLE
ALTER TABLE TableName1
 ADD | ALTER [COLUMN] FieldName1
   FieldType [(nFieldWidth [, nPrecision])]
   [NULL | NOT NULL]
   [CHECK lExpression1 [ERROR cMessageText1]]
   [DEFAULT eExpression1]
   [PRIMARY KEY | UNIQUE]
   [REFERENCES TableName2 [TAG TagName1]]
   [NOCPTRANS]

(7)DROP TABLE
DROP TABLE [路径名.]表名

(8)CREATE INDEX
CREATE INDEX index-name ON table-name(column[,column…])
例:CREATE INDEX uspa ON 口令表(user,password)

(9)DROP INDEX
DROP INDEX table-name.index-name|PRIMARY
例:DROP INDEX 口令表.uspa

二、在程序中使用静态SQL语句
    在程序设计阶段,将SQL命令文本作为TQuery组件的SQL属性值设置。

三、在程序中使用动态SQL语句
    动态SQL语句是指在SQL语句中包含有参数变量的SQL语句(如:select * from student where class=:class),在程序中可以为参数赋值。给参数赋值的方法有:

    1、利用参数编辑器为参数赋值
    选中TQuery组件,在对象监视器OI中点取Params项,在弹出的参数编辑窗口中设置参数的值。
例:SELECT bookidx AS 书号,藏书表.bookname AS 书名, bdate AS 借书日期  FROM 借书表,藏书表 where 借书表.bookidx=藏书表.bookidx and rid=:rid

    2、在程序运行中通过程序为参数赋值
  (1)根据参数在SQL语句中出现的顺序,使用TQuery的Params属性为参数赋值;

例:在借书表中插入一条记录
with  Query1 do
begin
   SQL.clear;
   SQL.add('Insert  Into  借书表(bookidx,rid,rdate)');
   SQl.add('Values(:bookidx,:rid,:rdate)');
   Params[0].AsString := bookidxEdit.Text;
   Params[1].AsString := ridEdit.Text;
   Params[2] .AsDate:=date;
   ExecSQL;
End;

(2)根据SQL语句中的参数名字,调用ParamByName方法为参数赋值;
ParamByName('bookidx').AsString := bookidxEdit.Text;
ParamByName('rid').AsString := ridEdit.Text;
ParamByName('rdate') .AsDate:=date;
ExecSQL;
有:AsString 、AsSmallInt 、AsInteger 、AsWord 、AsBoolean 、AsFloat 、AsCurrency 、AsBCD 、AsDate 、AsTime 、AsDateTime转换函数

3、使用数据源为参数赋值
    把TQuery的DataSource属性设置为另一个数据源(T DataSource名字),Delphi会把未赋值的参数与指定的数据源中的各字段相比较,并将匹配的字段的值赋给未赋值的参数,可实现主表—明细表应用。

四、对TQuery返回的数据集进行修改
    一般情况下,TQuery返回的数据集是只读的,不能修改;
    对不包含集操作(如:SUM、COUNT)的单表SELECT查询,设置TQuery的RequsetLive属性为True,则可修改TQuery返回的数据集。
sql 代码
  1.   
  2. var   
  3.   I: Integer;   
  4.   ListItem: string;   
  5. begin  
  6.   for I := 0 to Query1.ParamCount - 1 do   
  7.   begin  
  8.     ListItem := ListBox1.Items[I];   
  9.     case Query1.Params[I].DataType of  
  10.       ftString:   
  11.         Query1.Params[I].AsString := ListItem;   
  12.       ftSmallInt:   
  13.         Query1.Params[I].AsSmallInt := StrToIntDef(ListItem, 0);   
  14.       ftInteger:   
  15.         Query1.Params[I].AsInteger := StrToIntDef(ListItem, 0);   
  16.       ftWord:   
  17.         Query1.Params[I].AsWord := StrToIntDef(ListItem, 0);   
  18.       ftBoolean:   
  19.         begin  
  20.           if ListItem = 'Truethen  
  21.             Query1.Params[I].AsBoolean := True  
  22.           else  
  23.             Query1.Params[I].AsBoolean := False;   
  24.         end;   
  25.       ftFloat:   
  26.         Query1.Params[I].AsFloat := StrToFloat(ListItem);   
  27.       ftCurrency:   
  28.         Query1.Params[I].AsCurrency := StrToFloat(ListItem);   
  29.       ftBCD:   
  30.         Query1.Params[I].AsBCD := StrToCurr(ListItem);   
  31.       ftDate:   
  32.         Query1.Params[I].AsDate := StrToDate(ListItem);   
  33.       ftTime:   
  34.         Query1.Params[I].AsTime := StrToTime(ListItem);   
  35.       ftDateTime:   
  36.         Query1.Params[I].AsDateTime := StrToDateTime(ListItem);   
  37.     end;   
  38.   end;   
  39. end;   
分享到:
评论

相关推荐

    DM8 SQL语言使用手册.pdf

    DM8 SQL语言使用手册.pdf DM8 SQL语言使用手册是国产化数据库达梦SQL语言的使用指南,旨在帮助用户快速掌握DM_SQL语言的使用。下面是本手册中涉及的重要知识点: 1. 结构化查询语言DM_SQL简介 DM_SQL是一种基于...

    达梦数据库sql语句DM7_SQL语言使用手册.pdf

    达梦数据库DM7_SQL语言使用手册 达梦数据库DM7_SQL语言使用手册是达梦数据库管理系统的SQL语言使用指南,旨在帮助用户快速掌握DM_SQL语言的使用和应用。下面是从该手册中提取的重要知识点: 结构化查询语言DM_SQL...

    T-SQL语言基础 T-SQL语言基础

    T-SQL语言基础是SQL Server中的核心组成部分,用于管理和处理数据库中的数据。T-SQL扩展了标准SQL,提供了更多的功能和控制。 在T-SQL中,注释是开发者用来解释代码的重要工具。有两种类型的注释方式:单行注释使用...

    KingbaseES-SQL语言参考手册.pdf

    KingbaseES SQL语言参考手册是针对人大金仓数据库管理系统KingbaseES的一款详细指南,适用于对数据库管理和SQL语言感兴趣的读者。该手册旨在帮助用户理解和掌握如何使用SQL在KingbaseES中执行数据操作。 SQL...

    MICROSOFT SQL SERVER 2008技术内幕:T-SQL语言基础.pdf

    不过,我可以根据标题和描述提供的信息,以及对SQL Server 2008和T-SQL语言基础知识的理解,为您构建一份关于Microsoft SQL Server 2008中T-SQL语言基础知识的知识点概要。 Microsoft SQL Server 2008是微软公司...

    sql 语言中文手册

    这个“SQL语言中文手册”包含两个CHM格式的手册,分别是《SQL 参考手册》中文版和SQL语言操作速查手册,它们都是帮助用户理解和掌握SQL的重要资源。 一、SQL基础 SQL的基本功能包括数据查询、数据更新、数据插入和...

    达梦数据库V7_SQL语言使用手册.pdf

    达梦数据库V7_SQL语言使用手册.pdf 达梦数据库V7_SQL语言使用手册.pdf是达梦数据库V7版本的SQL语言使用手册,旨在帮助用户快速掌握DM_SQL语言的使用方法和技巧。该手册涵盖了DM_SQL语言的基本特点、保留字与标识符...

    Sql语言学习全套-给力推荐

    Sql语言学习全套-给力推荐 Sql语言学习全套-给力推荐 alterfunction.sql alterproc_alterfunc.sql createtable.sql CURSOR.sql cursor_declare_open.sql functions.sql insert work.sql insertdualdata.sql...

    Oracle--SQL语言.docx

    ### Oracle SQL语言知识点详解 #### 实验目标与背景 本次实验旨在帮助学习者掌握Oracle数据库中的SQL语言,重点是能够熟练地使用SQL进行数据查询、插入、修改和删除等基本操作。通过实际动手操作,加深对SQL语言的...

    SQL语言基础学习笔记

    SQL语言基础学习笔记 SQL,全称为“结构化查询语言”(Structured Query Language),是数据库管理系统的核心语言,用于管理和操作关系型数据库。SQL的特点包括: 1. **大小写不敏感**:SQL语句在实际执行时,对大...

    SQL语言参考大全(CHM版)

    《SQL语言参考大全》是一部全面深入讲解SQL语言的权威指南,尤其以CHM版的形式,为读者提供了方便快捷的电子查阅体验。SQL,全称Structured Query Language,即结构化查询语言,是用于管理关系数据库的标准语言。这...

    达梦数据库sql语言使用手册

    达梦数据库是国产数据库的杰出代表,其SQL语言使用手册详细介绍了DM_SQL语言的特点、支持的数据类型、表达式、运算符优先级、数据库模式以及具体的语法命令和操作示例,使用户能够熟练掌握并使用达梦数据库进行数据...

    SQL语言参考大全.rar

    《SQL语言参考大全》是一部全面深入讲解SQL语言的权威指南,涵盖了SQL的各个方面,旨在帮助读者熟练掌握数据库查询、管理及分析的技能。本参考大全不仅适用于初学者,也适合有一定经验的数据库管理员和开发人员作为...

    sql语言高级教程

    首先,"SQL基础"部分涵盖的是SQL语言的基本概念和语法,包括但不限于数据类型(如整数、字符串、日期/时间等)、数据操作(INSERT、UPDATE、DELETE)以及数据查询(SELECT语句)。你需要理解如何创建表,设置字段,...

    数据库 SQL语言编程基础

    【SQL语言编程基础】是数据库领域中的核心概念,它是一种标准化的查询语言,主要用于管理和操作关系型数据库。SQL,全称Structured Query Language,允许用户执行数据定义、查询、操纵和控制等一系列操作。在SQL ...

    最全SQL语言学习资料

    这个“最全SQL语言学习资料”包含了SQL语言的全面教程,是学习和提升SQL技能的理想资源。以下是对SQL语言核心知识点的详细阐述: 1. 数据库基础:SQL首先建立在数据库的概念之上,如关系型数据库,它由表格组成,每...

    SQL语言课件.rar

    在这个“SQL语言课件”中,我们将会深入探讨SQL的基础知识及其在实际应用中的各种技巧。 首先,从标题“SQL语言课件.rar”我们可以推测,这是一个关于SQL的压缩文件,里面可能包含了课程的幻灯片、指导文档或相关...

Global site tag (gtag.js) - Google Analytics