好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

实用数据库查询——结构化查询语言SQL语法.doc

36页
  • 卖家[上传人]:206****923
  • 文档编号:41387489
  • 上传时间:2018-05-29
  • 文档格式:DOC
  • 文档大小:119KB
  • / 36 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 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对查询结果分组 [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 [( [,, ...])] VALUES ( [,, ...]) 语法:INSERT INTO [( [,, ...])] 子查询 例子: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] FieldName1FieldType [(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=:rid2、在程序运行中通过程序为参数赋值 (1)根据参数在 SQL 语句中出现的顺序,使用 TQuery 的 Params 属性为参数赋值;例:在借书表中插入一条记录 with Query1 do beginSQL.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 返回的数据集var I: Integer; ListItem: string; begin for I := 0 to Query1.ParamCount - 1 do beginListItem := ListBox1.Items[I];case Query1.Params[I].DataType offtString:Query1.Params[I].AsString := ListItem;ftSmallInt:Query1.Params[I].AsSmallInt := StrToIntDef(ListItem, 0);ftInteger:Query1.Params[I].AsInteger := StrToIntDef(ListItem, 0);ftWord:Query1.Params[I].AsWord := StrToIntDef(ListItem, 0);ftBoolean:beginif ListItem = 'True' thenQuery1.Params[I].AsBoolean := TrueelseQuery1.Params[I].AsBoolean := False;end;ftFloat:Query1.Params[I].AsFloat := StrToFloat(ListItem);ftCurrency:Query1.Params[I].AsCurrency := StrToFloat(ListItem);ftBCD:Query1.Params[I].AsBCD := StrToCurr(ListItem);ftDate:Query1.Params[I].AsDate := StrToDate(ListItem);ftTime:Query1.Params[I].AsTime := StrToTime(ListItem);ftDateTime:Query1.Params[I].AsDateTime := StrToDateTime(ListItem);end; end;end; 2003-11-25 9:59:00 查看评语??? 2003-11-25 10:06:20 运行期间对数据库表的 一、数据集表的打开与关闭 打开:设置数据集组件的 Active 属性为 True 或调用数据集组件的 Open 方法 关闭:设置数据集组件的 Active 属性为 False 或调用数据集组件的 Close 方法二、创建数据库应用程序 ?利用向导创建:使用 Database 菜单/Form Wizard 选项; ?创建主从表。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.