基于TIPTOP系统的SQL基础教程
- 格式:pptx
- 大小:679.60 KB
- 文档页数:8
第一课简介SQL是英文Structured Query Language的缩写,意思为结构化查询语言。
SQL语言的主要功能就是同各种数据库建立联系,进行沟通。
按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。
SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。
目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准。
虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select, Insert, Update, Delete, Create, 以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。
下面,我们就来详细介绍一下SQL语言的基本知识。
在讲解之前先对关键字进行下说明:Column 指的是列,row 指的是行,tablename泛指数据表名,dbname泛指数据库名创建表格SQL语言中的create table语句被用来建立新的数据库表格。
create table语句的使用格式如下:create table tablename(column1 data type,column2 data type,column3 data type)如果用户希望在建立新表格时规定列的限制条件,可以使用可选的条件选项:create table tablename(column1 data type [constraint],column2 data type [constraint],column3 data type [constraint])举例如下:CREA TE TABLE BMDA[bmh] [varchar] (20) NOT NULL ,[bmmc] [varchar] (20) NULL ,[bmsx] [varchar] (2) NULL ,[sxmc] [varchar] (20) NULL ,[zkl] [decimal](3, 2) NULL ,[fzr] [varchar] (20) NULL ,[lxdh] [varchar] (50) NULL ,[czhm] [varchar] (50) NULL ,[dz] [varchar] (50) NULL ,[bz] [varchar] (100) NULL ,[bmpd] [varchar] (10) NULL ,[SSDL] [varchar] (20) NULL ,[dq] [varchar] (15) NULL ,[bmbz1] [varchar] (15) NULL ,[bmbz2] [varchar] (15) NULL ,[bmbz3] [varchar] (15) NULL ,[bmbz4] [varchar] (15) NULL ,[bmbz5] [varchar] (15) NULL ,[qdbh] [varchar] (10) NULL ,[xgrq] [datetime] NULL ,[default_xjzh] [varchar] (50) NULL ,[default_yhzh] [varchar] (50) NULL ,[sjfsbz] [int] NULL简单来说,创建新表格时,在关键词create table后面加入所要建立的表格的名称,然后在括号内顺次设定各列的名称,数据类型,以及可选的限制条件等。
SQL基础与常用技巧SQL(Structured Query Language)是一种用于管理和处理关系型数据库的语言。
它是数据库管理系统(DBMS)的核心组成部分,被广泛应用于数据管理和数据分析等领域。
本文将介绍SQL的基础知识和常用技巧。
一、SQL基础知识1.SQL语句的分类SQL语句可以分为五大类:数据查询语句(SELECT)、数据操纵语句(INSERT、UPDATE、DELETE)、数据定义语句(CREATE、ALTER、DROP)、事务控制语句(COMMIT、ROLLBACK、SAVEPOINT)和数据控制语句(GRANT、REVOKE)。
2.数据表的创建使用CREATETABLE语句可以创建数据表。
语法如下:```CREATE TABLE table_namecolumn1 datatype,column2 datatype,column3 datatype,...```3.插入数据使用INSERTINTO语句可以向数据表中插入数据。
语法如下:```INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);```4.更新数据使用UPDATE语句可以更新数据表中的数据。
语法如下:```UPDATE table_nameSET column1 = value1, column2 = value2, ...WHERE condition;```5.删除数据使用DELETE语句可以删除数据表中的数据。
语法如下:```DELETE FROM table_name WHERE condition;```6.查询数据使用SELECT语句可以查询数据表中的数据。
语法如下:```SELECT column1, column2, ...FROM table_nameWHERE condition;```7.排序数据使用ORDERBY语句可以对查询结果进行排序。
鼎新電腦股份有限公司 產品中心 VER6.50頁次壹. 系統操作...................................................... 1-1 貳. 如何新增使用者................................................ 2-1 參. 如何建置USERMENU.............................................. 3-1 肆. 多工廠環境介紹................................................ 4-1伍. 系統基本資料(一)系統參數設定作業(aoos010)................................ 5-1(二)公司名稱建立作業(p_zo)..................................... 5-2(三)部門資料維護作業(aooi030)................................ 5-3(四)員工資料維護作業(aooi040)................................ 5-4(五)區域資料維護作業(aooi100)...................................5-5(六)國別資料維護作業(aooi090)...................................5-6(七)單位資料維護作業(aooi101).................................5-7(八)單位換算資料維護作業(aooi102)...............................5-8(九)碼別代號說明資料維護作業(aooi080)...........................5-10(十)會計期間設定作業(aoos020)...................................5-12 (十一)週期期間產生作業(aoos030).................................5-13 (十二)稅別資料維護作業(aooi150).................................5-14 (十三)專案名稱資料維護作業(aooi200).............................5-15 (十四)交運資料維護作業(aooi160).................................5-16 (十五)幣別資料維護作業(aooi050).................................5-17 (十六)每月匯率維護作業(aooi060).................................5-18 (十七)每日匯率維護作業(aooi070).................................5-19陸、異常系統查詢作業一、編號連續檢查作業(aoou701)....................................6-1二、系統重要資料修改記錄查詢(aooq030)............................6-2三、程式使用率分析表(aoor010)..................................6-3頁次 柒、TRIGGER建置及啟動一、放置目錄區.................................................. 7-1二、Trigger啟動..................................................7-1三、檔案設定.....................................................7-2四、Trigger Log..................................................7-3附件系統功能鍵操作說明書一.基本按鍵SPACEBAR 在選擇功能選項時, 可以使用空白鍵來循環選擇功能選項FIRST 在選擇功能選項時, 可以直接按該選項的第一個字母直接CHARACTER 執行該功能, 如按A新增資料, Q查詢資料<ESC> 結束作業. 完成輸入或完成查詢條件輸入(QBE)<↑> 游標向上移動至上一個資料行。
SQL操作步骤如下:
语法分析:分析语句的语法是否符合规范,衡量语句中各表达式的意义。
语义分析:检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。
视图转换:将涉及视图的查询语句转换为相应的对基表查询语句。
表达式转换:将复杂的SQL表达式转换为较简单的等效连接表达式。
选择优化器:不同的优化器一般产生不同的“执行计划”。
选择连接方式:ORACLE有三种连接方式,对多表连接ORACLE 可选择适当的连接方式。
选择连接顺序:对多表连接ORACLE选择哪一对表先连接,选择这两表中哪个表做为源数据表。
选择数据的搜索路径:根据以上条件选择合适的数据搜索路径,如是选用全表搜索还是利用索引或是其他的方式。
以上SQL操作步骤仅供参考,不同的数据库系统可能有所不同,建议咨询专业人士获取更准确的信息。
SQL简单入门新手教程SQL(Structured Query Language)是用于管理关系数据库管理系统(RDBMS)的语言。
它是一种标准化的语言,用于与数据库进行交互并执行各种操作,例如插入、更新、删除和查询数据。
本教程将帮助你入门SQL,并了解如何使用它来创建和管理数据库。
让我们开始吧!第一步-安装数据库首先,你需要安装一个数据库管理系统(DBMS),如MySQL、Oracle或SQLite。
选择一个适合你的系统的DBMS并按照它的安装说明进行安装。
第二步-创建数据库在开始使用SQL之前,你需要创建一个数据库。
在大多数DBMS中,你可以使用以下命令创建数据库:CREATEDATABASE数据库名;例如,如果你想要创建一个名为“mydatabase”的数据库,你可以使用以下命令:CREATE DATABASE mydatabase;第三步-创建表格创建表格是存储数据的基本方式。
表格由行和列组成,行是记录,列是属性。
要创建表格,你可以使用以下命令:列1数据类型,列2数据类型,列3数据类型,...CREATE TABLE customersname VARCHAR(50),age INT,email VARCHAR(255)第四步-插入数据创建表格后,你可以向表格中插入数据。
要插入数据,你可以使用以下命令:INSERTINTO表格名(列1,列2,列3,...)VALUES(值1,值2,值3,...);例如,如果你要向“customers”表格中插入一条记录,可以使用以下命令:INSERT INTO customers (name, age, email)第五步-查询数据一旦你插入了数据,你可能想要从数据库中检索数据。
要查询数据,你可以使用以下命令:这将返回表格中的所有数据。
例如,如果你要查询“customers”表格中的所有记录,可以使用以下命令:SELECT * FROM customers;第六步-更新数据有时候你可能需要更新数据库中的数据。
入门级SQL数据库操作指南章节一:概述SQL数据库SQL数据库是一种结构化查询语言(Structured Query Language)的数据库管理系统,用于存储和管理数据。
其主要用途是处理大量数据,提供高效的数据访问和操作方法。
SQL数据库操作指南旨在帮助入门级用户快速熟悉SQL数据库,掌握常用的数据库操作技巧。
章节二:数据库的基本结构数据库由表(Tables)组成,每个表由列(Columns)和行(Rows)组成。
列定义了不同的数据类型,每一行包含了表中的一个记录。
在开始操作数据库之前,需要先创建数据库,创建表并定义每个表的列。
章节三:插入、查询和更新数据在SQL数据库中,可以通过INSERT命令插入新的数据到表中,通过SELECT命令查询数据,通过UPDATE命令更新数据。
用户可以根据具体需求构建相应的SQL语句,实现对数据的插入、查询和更新操作。
章节四:删除和修改表结构除了对数据的操作,用户还可以使用DELETE命令删除表中的数据,使用ALTER命令修改表的结构,例如添加新的列、删除列或者修改列的数据类型。
这些操作可以根据具体需求来实现对表结构的调整。
章节五:条件查询与排序在查询数据时,用户可以通过WHERE子句添加条件来限定查询结果的范围,例如查询年龄大于30岁的员工信息。
此外,还可以使用ORDER BY子句对查询结果进行排序,例如按照姓名的字母顺序升序或降序排列。
章节六:数据聚合与分组为了得到更有价值的数据分析结果,SQL数据库提供了一些聚合函数,如SUM、AVG、COUNT等,用户可以利用这些函数对数据进行聚合计算。
同时,用户还可以通过GROUP BY子句将数据分组,实现按照特定属性对数据进行分组统计。
章节七:连接和合并表当数据分散在不同的表中时,用户可以使用JOIN命令将多个表连接起来。
JOIN操作通过表中的共同列来建立关联,从而实现对多个表进行联合查询。
此外,还可以使用UNION命令将多个查询的结果合并为一个结果集。
1. CALL g_tc_qco.clear()FOR g_cnt = 1 TO g_apa.getLength() #單身 ARRAY 乾洗INITIALIZE g_apa[g_cnt].* TO NULLEND FOR两种对2.g_wc2 = "tc_cpq04 between TO_DATE('2017-03-01 00:00:00','YYYY-MM-DD HH24:MI:SS') and TO_DATE('2017-03-31 00:00:00','YYYY-MM-DD HH24:MI:SS')"3.construct 与 input区别construct:g_wc variable on field 所获得值,只会在g_wc中,变量无值input variable on field 所获得值,分布在变量中4.construct下获取列值get_fldbuf(field_list);返回多个值或一个值:可判断某列必填,但区分cl_set_comp_requied();int_flag当是0表示点击确定按钮,否则是1则是退出按钮sqlca.sqlcode非0时,sql语句出错了5.string定义变量,在oracle中用不了,必须以varchar(10)代替6.SELECT replace (q'<tc_ccz03='A002'>','tc_ccz01','tc_ccs02') FROM dual;(双引号的代替)7. SELECT to_char(tc_cpf02,'YYYYMM') INTO l_tc_cpf02 FROM tc_cpf_fileWHERE tc_cpf01 = g_tc_cpf.tc_cpf01LET l_y = l_tc_cpf02[1,4]IF l_tc_cpf02[5] = '0' THENLET l_m1=l_tc_cpf02[6]ELSELET l_m2=l_tc_cpf02[5,6]END IF8. LET g_apb.apb24 = cl_digcut(g_apb.apb24,t_azi.azi04) #No.CHI-6A0004 g_azi-->t_azi9.CASE WHEN sfaud02='Y' THEN 0 ELSE b.ima125 END,10.CALL cl_set_locale_frm_name("csfq054")11. CALL g_sfs.deleteElement(g_cnt) #清空查询的第一行为空的数据12. FOR g_cnt = 1 TO g_tc_cpl.getLength()13.UPDATE oga_file SET * = g_oga.* WHERE oga01 = g_oga.oga0114.CALL cl_set_act_visible("cancel", FALSE)与CALL cl_set_comp_visible("inaud06", FALSE) 区别15.cl_confirm('cxm-012')16. CALL cl_set_comp_font_color("img02", "red")17. LET g_wc4 = cl_replace_str(g_wc4,'oeb14t_1','oeb14t')CALL cl_replace_str(l_tmwc,'cpf29','tc_cpl06') RETURNING l_tmwc18.g_wo[1,5]='15111'19. DISPLAY "l_rpt_exp:",l_rpt_exp #No.FUN-77000220. PREPARE tem_progress FROM l_sqlEXECUTE tem_progress INTO l_progressCALL cl_progress_bar(l_progress)call cl_progressing('正在处理中...')CALL cl_close_progress_bar()21. IMPORT utilIMPORT osdefine l_array4 DYNAMIC ARRAY OF STRING,LET l_infos=base.StringTokenizer.createExt(l_str2,"|","",TRUE)LET l_cnt=l_infos.countTokens()WHILE l_infos.hasMoreTokens()LET i=i+1LET l_array3[i] =l_infos.nextToken()LET l_values=base.StringTokenizer.createExt(l_array3[i],";","",TRUE)CALL l_array4.clear()LET l_array4[1]=l_values.nextToken() 用不了22.select translate('黑框/二白/黑底','黑',' ') from dual; 替换 23. CALL cl_replace_str(l_cct10,"/",":") RETURNING l_cct10 24.FOREACH pp_oao USING g_oeb[g_cnt].oeb03,g_oeb[g_cnt].oea01 INTO l_oao04,l_oao06LET g_oeb[g_cnt].oao06 = g_oeb[g_cnt].oao06 CLIPPED,l_oao06 CLIPPEDEND FOREACH与execute into using25.matchs '[Ss]'---------26.EXECUTE tem_sa01 INTO l_ta_imd03 USING l_ogb.ogb09tem_sa01 是来自PREPARE tem_sa06 FROM l_sql,l_sql只存一个值主要理解:open cursor using-----fetch into .*可多列单值,是否上面也可into多列单值27. BEGIN WORK #NO:FUN-680010IF NOT i100_a_ins() THEN #FUN-710037ROLLBACK WORK #NO:FUN-680010CONTINUE WHILEELSECOMMIT WORK----什么时该用数据出错rollback,比如更新、新增、删除出错;数据更新成功后,需要commit work 28.oracle select column1 from (select column1 from tb1 order by column2 desc) where rownum=1 主要理解:括号中column2最大一条记录中column1值29. SELECT * INTO l_pmi.* FROM pmi_file WHERE pmi01 = p_pmi01(DEFINE l_pmi RECORD LIKE pmi_file.*)30.如果你某个字段为空,但是你想让这个字段显示0 nvl(字段名,0),31. CALL cl_digcut(sr.ogb13,6) RETURNING sr.ogb1332.#圖形顯示CALL cl_set_field_pic(g_tc_ccx.tc_ccx06,"","","","",g_tc_ccx.tc_ccxacti)33. LET g_wc2=cl_replace_str(g_wc,"oea","oha")34.Input Arraybefore input :只有第一次才会执行,换行或其它不会执行before row:每次换行都会执行35.call cl_init_qry_var() #清空g_qryparam.*let g_qryparam.form="q_gen" #定义查询程式let g_qryparam.default1=g_azb.azb01 #定义取消查询默认值call cl_create_qry() returning g_azb.azb01 #返回值最多只能三个注意点:在input/input array,但在construct需要加let g_qryparam.state="c" #定义目前状态特殊情况:let g_qryparam.where="azb03='arg1'" #定义特殊查询条件let g_qryparam.arg1=g_azc.azc01 #定义传入的变量最多只能传9个,并且p_qry中是:azc01 matches '[arg1]'36. LET g_row_count = 0LET g_curs_index = 0CALL cl_navigator_setting( g_curs_index, g_row_count ) #toolbar 工具栏按钮关闭37.创建临时表时DELETE FROM sub_tmpIF STATUS=-206 THEN#start CHI-6C0013 modify#CREATE TEMP TABLE sub_tmp(# tmp02 DEC(15,3)) # 替代轉出量CREATE TEMP TABLE sub_tmp(tmp01 VARCHAR(40),tmp03 VARCHAR(40), #No.TQC-970003tmp02 DECIMAL(15,3)) # 替代轉出量#end CHI-6C0013 modifyEND IF38. 取相片SELECT gcb09 INTO l_gcb09_1 FROM gca_file,gcb_fileWHERE gca01=l_cpf01#AND gca02=l_tc_adb10AND gca08='FLD'AND gca07=gcb01 AND gca08=gcb02 AND gca09=gcb03 AND gca10=gcb04 39.g_oog record likeg_oga record like oga_file.*,ogb01 like ogb_file.ogb01end record。
sql入门教程SQL是Structured Query Language的缩写,它是用于管理和操作关系型数据库的标准语言。
SQL具有简单易学、灵活性强、功能丰富等特点,广泛被应用于各种数据库管理系统(DBMS)中,如MySQL、Oracle、SQL Server等。
SQL入门教程主要包括以下几个方面:语法、数据定义语言(DDL)、数据操作语言(DML)、数据查询语言(DQL)以及数据控制语言(DCL)。
首先,我们需要掌握SQL的基本语法,包括大小写敏感、语句分隔符、注释等。
SQL语句通常以分号(;)作为语句的结束,注释可以使用“--”或“/* */”。
其次,DDL是用于创建和管理数据库、表、索引等对象的语言。
通过DDL语句,我们可以创建数据库和表,定义表的结构、约束和索引等。
常见的DDL语句有CREATE、ALTER和DROP等。
CREATE用于创建数据库和表,ALTER用于修改数据库和表的结构,DROP用于删除数据库和表。
接下来是DML,用于对数据库中的数据进行操作,包括插入、更新和删除数据。
插入数据使用INSERT语句,更新数据使用UPDATE语句,删除数据使用DELETE语句。
DML是SQL中最常用的部分,通过DML语句,我们可以实现数据的增删改操作。
DQL是用于查询数据库中的数据的语言,使用SELECT语句。
通过SELECT语句,我们可以根据条件查询数据库中的数据,并可以进行排序、分组、聚合等操作。
SELECT语句的结果可以是一个或多个表的数据,可以使用各种条件和逻辑运算符进行筛选。
最后是DCL,用于对数据库中的用户权限进行管理。
通过DCL语句,我们可以授权、撤销权限,管理用户的访问权限。
常用的DCL语句有GRANT、REVOKE和DENY等。
在学习SQL时,除了掌握以上几个方面的内容外,还需要实践和练习。
可以通过编写SQL语句来操作实际的数据库,进一步加深对SQL的理解和掌握。
同时,还可以利用一些在线SQL学习平台和教程来提升自己的SQL技能。
2014-12-26 TIPTOP单头单档程式结构定义变量Main函数_cs函数_menu菜单函数_a函数_i函数_q函数_fetch函数_show函数_u函数_x函数_r函数_copy函数_out函数_chkym检查日期函数1)定义变量定义数据库路径database ds定义全局变量文件路径globals "..."定义记录集变量Define 变量名Record like 表2)Main函数OPTIONS #改变系统预设值FORM LINE #窗口开始的位置MESSAGE LINE #信息提示的位置PROMPT LINE #提示信息的位置cl_user #检查用户帐号cl_setup #检查程式设置路径cl_used #记录程式使用时间定义水晶报表结构LET g_sql="字段.表.字段,..."cl_prt_temptable() #创建临时表记录水晶报表记录集插入记录LET g_sql="INSERT INTO ds_report ",l_table,CLIPPED ...OPEN WINDOW #打开窗口cl_ui_init() #设定程式初始化CALL _menu #打开菜单CLOSE WINDOW #关闭窗口cl_used3)_cs函数CLEAR FORM #清除屏幕CONSTRUCT BY NAME 变量名ON 字段变量名,... #取屏幕变量条件BEFORE CONSTRUCTcl_qbe_init()ON ACTION ...ON IDLE ...cl_on_idle()CONTINUE CONSTRUCTEND CONSTRUCT定义查询SQL语句定义游标记录集4)_menu菜单函数BEFORE MENUcl_navigator_setting() #上下记录数据移动ON ACTION ...ON IDLE ...cl_on_idleCONTINUE MENUEND MENU5)_a函数CLEAR FORM #清除屏幕cl_opmsg #定义程式操作类型WHILE TRUECALL _i #调用_i函数插入记录INSERT INTO 表V ALUES(屏幕变量名.*) #插入记录数据EXIT WHILEEND WHILE6)_i函数DISPLAY BY NAME 字段变量名,...INPUT BY NAME 字段变量名,... WITHOUT DEFAUTLSBEFORE INPUTAFTER FIELD ...ON ACTION ...ON IDLE ...cl_on_idle()CONTINUE INPUTEND INPUT7)_q函数cl_navigator_setting() #上下记录数据移动cl_opmsg #定义程式操作类型CALL _cs #调用查询函数定义游标记录集CALL _fetch #8)_fetch函数PROMPT ...ON IDLE ...cl_on_idleON ACTION ...END PROMPTcl_navigator_setting #上下笔记录移动SELECT * INTO 屏幕变量名.* FROM 表#读取记录数据给屏幕变量CALL _show #调用显示函数显示当前记录9)_show函数DISPLAY BY NAME 字段变量,...10)_u函数cl_opmsg #定义程式操作类型BEGIN WORK #打开工作区CALL _show #显示记录WHILE TRUECALL _i("u") #栏位修改UPDATE 表#更新记录数据EXIT WHILEEND WHILECOMMIT WORK #提交数据11)_x函数BEGIN WORK #打开工作区定义游标记录集CALL _show #显示记录cl_exp #询问是否设置无效UPDATE 表#更新记录COMMIT WORK #提交数据12)_r函数BEGIN WORK #打开工作区定义游标记录集CALL _show #显示记录cl_delete #询问是否要删除记录DELETE FROM 表#删除记录COMMIT WORK #提交数据13)_copy函数#复制函数INPUT 字段变量名,... FROM 字段变量名,...AFTER FIELD ...ON ACTION ...ON IDLE ...cl_on_idleCONTINUE INPUTEND INPUTDROP TABLE 临时表#删除临时表INTO TEMP 临时表#插入临时表UPDATE 表... #更新临时表的关键资料字段INSERT INTO 表SELECT * FROM 临时表#将临时表中的记录插入到正式表中...CALL _show #显示记录14)_out函数#报表输出函数cl_del_data #清空临时表中的记录cl_wait #等待显示定义游标记录集FOREACH 游标变量名INTO 屏幕变量名.* # 循环读取记录到屏幕变量... EXECUTE 插入预编译SQL变量USING 屏幕变量名.*END FOREACHCLOSE 游标记录集CALL cl_prt_cs3#2014-12-09 TIPTOP单身单档录入程式结构定义变量MAIN函数_menu菜单函数_q函数_b函数_b_askkey函数_b_fill函数_bp函数_set_entry函数_set_no_entry函数1)定义变量定义数据库路径database ds定义全局变量路径globals "..."定义动态数组变量Define 动态变量名ARRAY OF RECORD ...END RECORD2)MAIN函数OPTIONS #改变系统预设值FORM LINE #窗口开始的位置MESSAGE LINE #讯息显示的位置PROMPT LINE #提示讯息的位置cl_user #检查用户帐号cl_setup #检查程式路径cl_used #记录程式使用时间OPEN WIHDOW #打开窗口cl_ui_init #程式设定初始化CALL _menu #打开菜单CLOSE WINDOW #关闭窗口cl_used #记录程式使用时间3)_menu菜单函数WHILE TRUECASE g_action_choice..END CASEEND WHILE4)_q函数_askkey #调用_askkey函数,不明白为何这样做???5)_b函数cl_opmsg #定义程式操作类型cl_detail_input_auth("...") #检查单身是否有insert或是delete权限INPUT ARRAY 变量名WITHOUT DEFAULTS FROM 屏幕变量名.*A TTRIBUTE(COUNT=变量名,MAXCOUNT=变量名,UNBUFFERED,INSERT ROW =单身变量,DELETE ROW =单身变量,APPEND ROW=单身变量)BEFORE INPUTfgl_set_arr_curr() #此函数找不到不知何作用BEFORE ROWBEGIN WORK #工作区定义BEFORE INSERTAFTER INSERTINSER INTO ... V ALUES ... #插入记录COMMIT WORK #提交数据AFTER FIELD ...NEXT FIELD ...BEFORE DELETEDELETE FROM ... #删除记录COMMIT WORK #提交数据ON ROW CHANGEUPDATE ... #更新数据COMMIT WORK #提交数据AFTER ROWCOMMIT WORK #提交数据ON ACTION ...ON IDLE ...cl_on_idleCONTINUE INPUTEND INPUTCOMMIT WORK6)_askkey函数CLEAR FORM #清除窗口...CONSTRUCT 变量名ON 字段变量,... FROM 字段变量,...ON ACTION ...ON IDLE ...cl_on_idleCONTINUE CONSTRUCTEND CONSTRUCTCALL _b_fill填充函数7)_b_fill 填充函数LET g_sql="..." #定义SQL语句PREPARE 变量名FROM g_sql #预编译SQL语句DECLEAR 游标变量名CURSOR FOR 预编译变量名FOREACH 游标变量名INTO 动态数组变量名.*...END FOREACH8)_bp函数cl_set_act_setting #显示确定与退出按钮提示DISPLAY ARRAY 动态数组变量名TO 屏幕变量名.* ATTRIBUTE(COUNT=记录数变量名) BEFORE ROWcl_show_fld_cont #定义p_per档特殊格式栏位ON ACTION ...EXIT DISPLAYAFTER DISPLAYCONTINUE DISPLAYEND DISPLAY9)_set_entry与_set_no_entry函数cl_set_comp_entry() #设置栏位是否可以输入2014-12-09 TIPTOP查询式报表程式结构定义变量Main函数_cs函数_menu函数_q函数_b_fill函数_bp函数1)定义变量定义数据库路径database ds定义全局变量文件路径globals "..."定义动态数组Define 数组变量名DYNAMIC ARRAY OF RECORD...END RECORD 2)MAIN函数OPTIONS #改变系统预设置值FORM LINE #窗口开始位置MESSAGE LINE #讯息显示的位置PROMPT LINE #提示讯息的位置cl_suer #用户帐号的检查cl_setup #程式路径检查cl_used #程式使用时间记录OPEN WINDOW #窗口打开cl_ui_init #程式设定初始化CALL _menu #菜单显示CLOSE WINDOW #关闭窗口cl_used #记录程式使用时间3)_cs QBE查询函数CLEAR FORM #清空窗口...INITIALIZE tm.* TO NULL #清空条件变量值INPUT BY NAME 变量名WITHOUT DEFAULTSON ACTION ...ON IDLE ...cl_on_idle()CONTINUE INPUT...END INPUTCONSTRUCT 变量名ON 字段变量名,... FROM 字段变量名,...BEFORE CONSTRUCTcl_qbe_init()ON ACTION ...ON IDLE ...cl_on_idle()CONTINUE CONSTRUCTEND CONSTRUCTLET g_tw="..." #查询条件变量值组合4)_menu菜单函数WHILE TRUE_bp("G") #调用_bp函数CASE g_action_choice...END CASEEND WHILE5)_q函数cl_navigator_setting() #上下笔记录移动数据cl_opmsg #定义操作程式类型CALL _cs #调用查询函数CALL _b_fill #调用填充记录函数6)_b_fill填充函数LET g_sql="..." #查询SQL语句PREPARE 变量名FROM g_sql #预编译SQL语句DECLEAR 游标变量名CURSOR FOR 预编译变量名FOREACH 游标变量名INTO 动态数组变量名.*...END FOREACH7)_bp函数cl_set_act_setting("accept,cancle",FALSE) #显示确定与退出按钮DISPLAY ARRAY 动态数组变量名TO 动态数组变量名.* ATTRIBUTE(COUNT=记录变量名,UNBEFFERED)BEFORE DISPLAYcl_navigator_setting() #上下笔记录数据移动cl_show_fld_cont() #設定p_per內有特殊格式設定的欄位ON ACTION ...EXIT DISPLAYON IDLE ...cl_on_idle()CONTINUE DISPLAYAFTER FILEDCONTINUE DISPLAYcl_set_head_visible("","AUTO") #显示/隐藏单头元件END DISPLAY。
sql入门新手教程欢迎来到SQL入门新手教程,本教程将帮助你快速入门SQL 数据库语言,从而进行数据的管理和查询。
在本教程中,我们将以简明清晰的方式解释SQL的基本概念和常用语句。
1. 了解SQLSQL代表结构化查询语言(Structured Query Language),是一种用于与关系数据库进行交互的标准语言。
它允许用户从数据库中检索、插入、更新和删除数据。
2. 数据库的创建在使用SQL之前,您需要创建一个数据库。
使用以下语句创建一个新数据库:```CREATE DATABASE my_database;```这将创建一个名为"my_database"的新数据库。
3. 表的创建数据库中的数据存储在表中。
使用以下语句创建一个新表: ```CREATE TABLE my_table (id INT PRIMARY KEY,name VARCHAR(50),age INT```这将创建一个名为"my_table"的新表,其中包含id、name和age三个列。
4. 插入数据要向表中插入数据,使用INSERT INTO语句:```INSERT INTO my_table (id, name, age) VALUES (1, 'John', 25); INSERT INTO my_table (id, name, age) VALUES (2, 'Mary', 30);```这将向"my_table"表中插入两个新行。
5. 查询数据使用SELECT语句从表中检索数据:```SELECT * FROM my_table;```这将检索"my_table"表中的所有数据。
6. 更新数据使用UPDATE语句更新表中的数据:UPDATE my_table SET age = 26 WHERE id = 1;```这将更新id为1的行的age列为26。
TIPTOP教材----絕對經典TIPTOP MRP SYSTEMINFORMIX-4GLINFORMIX-SQLl 目錄:n TIPTOP總體架構圖n TIPTOP系統目錄架構n 各模組TABLE關聯架構圖n 幾個簡單的UNIX指令n 幾個重點系統檔z?_file的說明n INFORMIX-SQL基本語句n 新增程式執行前的參數設定n 系統程式cl_***及s_***及q_***.4gl功效n 程式撰寫范例4gl程式 :Informix 4gl主程式per程式 :Informix 4gl屏幕窗口代碼程式za程式 :Informix 4gl報表表關程式link程式 :infromix 4gl編譯連接文件n 結束語一:TIPTOP系統總體架構圖TIPTOP是基於UNIX平台,以INFORMIX作數據庫后台,用第四代語言INFORMIX-4GL編寫的一套完整的MRP系統.下圖為TIPTOP整體架購圖.二:系統目錄架構:l TIPTOP系統包含的模組1. 料件基本資料管理系統2. 產品結構(BOM)管理系統3. 庫存管理系統4. 採購管理系統5. 生產管理系統6. 成本會計系統7. 應付結報系統8. 應收帳款系統9. 工時收集系統10. 銷售管理系統11. MRPl 各事業單位的開發環境目錄:1. fcp 竟爭事實群2. fio 昆山廠3. fbm2 富弘4. fbm1 富准5. fcn 中央6. fit 資訊系統7. ftm 熱傳事業處,I/O車件8. fox 富金廠fdt1 DT1事業單位l 模組對應的系統目錄:1. aim 製造管理系統-庫存管理2.apm 製造管理系統-採購管理3.asf 製造管理系統-生產管理 4. axc 製造管理系統-成本會計 5. axm 銷售管理系統 6. axr 應收帳款系統7. axp 應付帳款系統 8. abm 產品結構管理系統9. axd 工時收集管理系統l 每個模組都包括以下一些子目錄:1. 4gl 存入INFORMIX 4GL源程序2. 4gi41 存放連接后的可執行文件3. 4go41 存放編譯后的目標文件 4. per 存放用VI編輯的螢幕文件 5. frm 存放編譯后的螢幕文件 6.sql 存放本模組要用的TABLE的CREATE,INDEX語句7. dc2 存放說明性的文件8. hlp 存放幫助文件9. link 存放連接文件10. za 存放報表表頭文件l 公用程式目錄1. sub 存放公用副程式s_*的組合程式2. lib 存放公用主程式cl_*的組合程式3. qry 存放公用查存程式q_*的組合程式三: 各模組TABLE關聯架構圖見附頁四: 幾個簡單的UNIX的指令掌握幾個簡單的常用的 UNIX 操作指令及VI編輯器文件,目錄操作命令VI文本編輯器pwd 顯示工作目錄ESC 命令模式cd 切換目錄i,a,I,A ,O,o 進入輸入模式Ls 查看目錄i,h,j,k 光標移動cat 顯示(合併)文件dd,dw,D,x 行,單詞,字符刪除mkdir 新建目錄:x 保存並退出rm 刪除文件:q!不存盤強制退出cp 拷貝文件:wY 編輯文件寫回磁盤pr 顯示文件U 撤銷一次改變passwd 更新用戶口令. 重複動作rmdir 刪除目錄Y 拉出行mv 文件移動P,p 粘貼行exit 結束登錄五: 幾個重點系統檔z?_file的說明1: za_file 報表標題檔4gl程式調用za_file時抓取load-za后的.za文件create table za_file(za01 char(10), 程式代號za02 smallint, 序號za03 char(1), 語言別(0/1/2) 0:中文1:英文za04 char(10), 備註za05 char(40) ); 標題內容create unique index za_01 on za_file (za01,za02,za03);2: zx_file 部門user帳號使用者檔4gl程式抓取下列欄位,check權限及是否為多工廠管理者create table zx_file(zx01 char(10), {使用者代號,(Login user name) }zx02 char(10), {使用者名稱 }zx03 char(6), {部門代號 }zx04 char(10), {權限類別 }zx05 char(10), {自定目錄編號 }zx06 char(1), {使用語言別(0.中文/1.英文) } zx07 char(1), {是否為多工廠使用者(Y/N) }zx08 char(10), {預設工廠編號 }zx09 char(10), {目前使用工廠編號 }zxuser char(10), {OWNER }zxgrup char(06), {GROUP }zxmodu char(10), {MODIFY USER }zxdate date ); {MODIFY DATE }create unique index zx_1 on zx_file (zx01); 3: zz_file 程式資料檔create table zz_file(zz01 char(10), {程式代號, (program code) } { Ex:pka0203 , pkb }zz02 char(36), {程式名稱 }zz02e char(36), {程式英文名稱 }zz03 char(1), {程式類別 }{ M:目錄程式類(Menu) }{ F:建檔程式類(Form) }{ T:異動程式類(Transaction) }{ P:處理程式類(Process ){ R:報表程式類(Report) }zz04 char(30), {基本提供執行功能 }{本程式所提供之基本執行功能 }{Ex:AQURCOB }{A:輸入,Q:QBE-查詢,U:更改,R:取消,C:複製, } {O:QBE-印表,B:單身處理 }zz05 char(1), {列印選擇條件否 }{本欄位僅對報表有效, 若設為 'Y', 則於報表} {結束時列印QBE選擇條件 }zz06 char(1), {報表檔附加檔名(1).out(2)變動 }{變動為列印次數 }zz07 smallint, {延後列印次數 }{本欄位將於報表延後列印時賦予為系統執行檔}{附加檔名,並自動更新之. }zz08 char(40), {UNIX 系統執行指令 }{ 例:fglgo $SYS/4gi/progcode }zz09 date, {設計日期 }zz10 char(4), {程式類別-1 }zz11 char(4), {程式類別-2 }zz12 char(4), {程式類別-3 }zz13 char(1), {可否於建檔作業更改索引欄位資料(KEY) } {(Y/N), 本欄位僅對建檔作業有效. }zz14 char(1), {是否於建檔作業查詢資料時顯示合乎條件筆數}{(Y/N), 本欄位僅對建檔作業有效. }zz15 char(1), {是否傳遞帳別(Y/N) (For agl system) } zz16 smallint, {目前報表列印次數 }{本欄位將於報表列印時賦予為報表檔附加檔名} {並自動更新之. }{Ex:若本欄位為43,則產生報表檔:sssrnnn.43r} zz17 smallint, {報表寬度 (79/132) }zz18 char(1), {基本使用者資料權限 }{設定使用者對非自己資料之(查詢/更改/取消)} {處理權限, 說明如下: }{ 查詢更改取消 }{處理權限, 說明如下: }{ 查詢更改取消 }{ 0: Y Y Y }{ 1: Y Y N }{ 2: Y N Y }{ 3: Y N N }{ 4: N N N }zz21 char(40), {固定列印條件 }zz22 char(1), {固定列印方式 }zz23 char(1), {ISOLA TION Mode }{1.Dirty read mitted read }zz24 char(1), {Default Wait seconds (0-9) }zz25 char(1), {Set explain on (Y/N) }zzuser char(10), {OWNER }zzgrup char(06), {GROUP }zzmodu char(10), {MODIFY USER }zzdate date {MODIFY DA TE });create unique index zz_01 on zz_file (zz01); 4: zt_file 檔案名稱檔create table zt_file(zt01 char(10), {檔案編號, (Table name) } { Ex:ima_file, zz_file }zt02 char(36), {檔案名稱 }zt02e char(36), {檔案英文名稱 }zt03 char(3), {系統別 }zt04 char(4), {使用別 }zt05 date, {產生日期 }zt06 char(10), {產生者 }zt07 char(01), {T/S建議 (Table/Synonym) }zt08 smallint, {No use }zt09 char(02), {檔案類別(P/M/T/S) }{ P:參數檔 }{ M:主檔 (M0:單頭 M1:單身) }{ T:異動檔 (T0:單頭 T1:單身) }{ S:統計檔 }zt10 char(01), {No use }zt11 char(01), {No use }zt12 char(01), {No use }zt13 char(01) {No use }); create unique index zt_01 on zt_file (zt01);5: zo_file 公司名稱資料檔6: ze_file 資料變更記錄檔7: zw_file 權限建立檔8: zy_file 權限設定檔五: Informix-SQL的幾個基本語法1. SELECT語句:從一個表或是多個表中提取資料語法:SELECT * FROM table_name WHERE xxxxxxxx and yyyyyyyWHERE為條件,以下相同2. UPDA TE語句:更改表對應欄位的內容語法:UPDA TE table_nameSET xxx01 = xWHERE xxxxxxxxx and yyyyyyyy3. DELETE語句:說明:從表中除資料語法:DELETE FROM table_nameWHERE xxxxxx and yyyyyyy4. INSERT語句:說明:新增資料到表語法:INSERT INTO table_name(xxxxxxxx) V ALUES(yyyyyyyy)六: 新增程式執行前的參數設定執行exe p_zz 出現下列畫面對新增程式作A 輸入選擇, 輸入設定參數對基本資料權限作如下說明:查詢修改放棄0 V V V1 V V2 V V3 V4七: 共用程式cl_*和s_*及q_*程式功效l cl_* 為共用程式當4GL程式調用公用程式cl_*時必須在link文件里加入其執行文件4go 所在目錄為u\tiptop\lib\4gl>舉例:cl_err 為共用程式庫,用來顯示錯誤訊息Input parameter: p_msg 錯誤訊息的附加說明err_code 錯誤訊息代碼(可為文字或數字)p_n 顯示錯誤訊息後是否應按(CR)繼續或停留秒數0:不必按(CR)繼續 1:按(CR)繼續1 :停留秒數cl_repcon 詢問特殊列印條件(1) 製表日期(2) 報表收受單位或人員(3) 選擇語言別(4) 是否後庭執行本作業及執行時間(5) 選擇列印方式(6) 列印份數cl_cmdask詢問使用者欲執行程式, 並執行之cl_wait顯示等待訊息cl_used計錄各程式實際被執行的狀況Input parameter: p_code - 程式代號time1 - 起始執行時間sw - 1:執行開始, RETURN TIME- 2:執行結束, INSERT (執行的狀況) TO zu_filecl_outnam(…wk?) returning l_name 賦于一個報表檔代號l_name 是返回值cl_wcshow顯示組合出的RDSQL指令於螢幕20,21,22,23行cl_shwtit顯示程式名稱(PROGRAM NAME)於螢幕第 n 行的中央Input parameter: p_row 顯示程式名稱行數p_len 螢墓寬度p_prog 程式代號cl_opmg顯示操作方法於第一,二行操作方法著重於FUNCTION鍵的使用Input parameter: p_op_type 操作型態,a:新增,u:更改,q:查詢b:單身處理,w:多欄查詢,p:列印條件選擇,cl_dsmark顯示 "鼎新電腦製作" 於螢幕左上角顯示使用客戶名稱螢幕中央顯示 Login使用者於螢幕右上角cl_foxmark顯示 "資訊科技處製作" 於螢幕左上角顯示使用客戶名稱螢幕中央顯示Login使用者於螢幕右上角l s_* 為副程式副程式因系統而異,但具有多個程式共通使用的程式,4gl調用副程式s_*時必須在link文件中加入其4go執行文件所在目錄為u\tiptop\sub\4gl>舉例:s_upimg庫存中更新img檔的副程式s_tlf將異動資料放入異動記錄檔中(製造管理)s_sayc將金額類數值轉換成中文字l q_* 查詢副程式4gl調用查詢程式q_*時必須在link文件中加入其4go執行文件所在目錄為u\tiptop\qry\4gl>舉例:q_ima料件資料查詢q_gef銷售系統單據性質查詢八: 程式撰寫(以報表程式faxcr180為例加以講解)1. Informix-4gl程式:任何一個獨立的informix-4gl程式必須包含一個主程式main(),程式執行都從main開始,在main程式中可以調用相應的其它4gl程式,比如公有程式,函數程式等,也可以直接調用function,調用公用程式或函數后,返回相應的信息或參數給主程式,最終以end main完成程式的執行.程式編譯格式:fglpc faxmr180 生成相應的執行代碼faxmr180.4go存放在當前目錄下r.c faxmr180 生成相應的執行代碼faxmr180.4go 會自動存放在4gl對應的4go41目錄下2. za文件:由於漢字在任何編程語言中都有不易識別的現象,Informix-4gl也不例外,也加上程式編寫員的編寫風格,大多不想把漢字放在程式的語句里,同時可以大大減少程式編譯時對漢字識別的所延擱的時間,程式設計師便把這些漢字歸總在za文件裏,Informix-4gl訪問時調用相應的編譯好后的za文件,不僅僅增加了程式的執行速度,也大大增加了程式的可讀性程式編譯格式:load-za faxmr180 編譯好后的za文件實際上是insert intoza_file(*),Informix-4gl調用時根據相應的條件提取za_file中的記錄.3. Link文件:任何一個應用系統,都有某些功能的獨立需求,簽於Informix-4gl在功能上有許多固有的特性,程式設計師把這些功能做成一個個的小程式,編譯好后放在固定的目錄裏,當informxi-4gl要用到這些功能時,程式便可直接調用這些小小的功能模塊,實現這些功能,大大地減少了程式的冗長,使程式的可讀性更好,也即省了應用系統的存貯空間,增快了的程式編寫的速度,當然也降低了軟件的成本.格式:ln xxxxxx > yyyyyyyy4. per文件:unix盡管現在也有其window-x的界面,但使用起來並不是很理想,許多程式設計師也以樂意接受命令操作符的形式來處理各種事務,shell也就是相當於ms-dos下的批處理,Informix-4gl在窗口界面的處理上有其自身的特點,它不支持圖形文件,因此看上去就感覺比較單調,但無論如何,Informix-4gl可以處理簡單的線條圖形,它以結構文件的形式面對用戶.編譯格式為:原文件為faxmr180.perform4gl faxcr180 生成窗口格式化文件faxcr180.frm放在當前目錄下r.f faxcr180 生成窗口格式化文件faxcr180.frm放在對應per之frm目錄下.frm文件可以在informix-4gl中以語句:OPEN WINDOW window_name A T 3,8 WITH FROM “.frm”打開。
sql 教程SQL(Structured Query Language)是一种用于管理关系数据库系统的标准化语言。
它可以用来执行各种任务,例如创建数据库和表、插入、更新和删除数据、查询数据库中的数据等。
SQL具有自己的语法和规则,可以通过使用关键字和特定的语句来执行各种操作。
以下是SQL的一些常见操作:1. 创建数据库:使用"CREATE DATABASE"语句来创建新的数据库。
例如,"CREATE DATABASE mydatabase;"将创建一个名为"mydatabase"的数据库。
2. 创建表:使用"CREATE TABLE"语句来创建新的表。
例如,"CREATE TABLE employees (id INT, name VARCHAR(50), age INT);"创建了一个名为"employees"的表,其中包含id、name和age列。
3. 插入数据:使用"INSERT INTO"语句将数据插入到表中。
例如,"INSERT INTO employees (id, name, age) VALUES (1,'John', 30);"向"employees"表插入了一条数据,包含id为1、name为'John'和age为30的值。
4. 更新数据:使用"UPDATE"语句来更新表中的数据。
例如,"UPDATE employees SET age = 35 WHERE id = 1;"将id为1的员工的年龄更新为35。
5. 删除数据:使用"DELETE FROM"语句来删除表中的数据。
例如,"DELETE FROM employees WHERE id = 1;"将删除id 为1的员工。
sql语句基础教程SQL(Structured Query Language)是一种用于管理关系型数据库的语言。
它被用于创建、插入、更新和查询数据库中的数据。
下面是 SQL 语句的基础教程:1.创建表格:使用 `CREATE TABLE` 语句可以创建一个新的表格,并定义字段和字段类型。
例如,创建一个包含 id、name 和 age 字段的表格:```CREATE TABLE studentsid INT PRIMARY KEY,name VARCHAR(50),age INT```2.插入数据:使用 `INSERT INTO` 语句可以向表格中插入数据。
例如,向`students` 表格中插入一条记录:```INSERT INTO students (id, name, age) VALUES (1, 'John', 20);```3.更新数据:使用 `UPDATE` 语句可以更新表格中的数据。
例如,更新`students` 表格中 id 为 1 的记录的年龄为 21:```UPDATE students SET age = 21 WHERE id = 1;```4.查询数据:使用`SELECT`语句可以从表格中查询数据并返回结果。
例如,查询所有学生的信息:```SELECT * FROM students;```5.删除数据:使用 `DELETE FROM` 语句可以从表格中删除数据。
例如,删除`students` 表格中 id 为 1 的记录:```DELETE FROM students WHERE id = 1;```6.排序数据:使用`ORDERBY`语句可以按指定的字段对查询结果进行排序。
例如,按年龄从小到大排序查询学生信息:```SELECT * FROM students ORDER BY age ASC;```7.过滤数据:使用`WHERE`语句可以过滤满足条件的数据。