您好,欢迎访问三七文档
1、数据库定义:数据库是“按照数据结构来组织、存储和管理数据的仓库”。2、数据库特点:数据的集合,数据之间相互关联;数据用综合方法组织,较小冗余,可共享;数据是独立、安全、可靠的;保证数据的一致性、完整性。3、数据库管理系统---(DBMS)是负责数据库管理、维护的系统软件;具有定义、操纵、查询、控制、通讯等功能。4、数据库系统---由硬件、软件、数据、用户四部分组成。即=数据库+DBMS+专门人员5、按照数据模型的特点数据库系统分成网状数据库、层次数据库和关系型数据库三类。一、认识数据库二、关系数据库(1)关系型数据库在关系型数据库中,数据分别存储在各个表中。每个表包含某个特定主题的数据。表是由一些列和行组成的。表中的每一列用于存储某种特性的数据。表中的每一行包含表中一项的相关信息。即:关系型数据结构把一些复杂的数据结构归结为简单的二元关系(即二维表格形式)。•关系型数据库—采用关系模型作为数据的组织方式。这种关系模型是用二维表来表现的。•记录—在二维表中,每一行数据叫一条记录。•字段—每一列都是不可再分的基本属性,字段有各种类型,如:字符型、数值型、日期型等•主键—又称主关键字,用来唯一确定一条记录的列,在列值中,不允许有重复数据。ID科目编码科目名称摘要凭证日期借方金额贷方金额1000110201银行存款….04-02-013045.00….1000210202银行存款….04-02-01….….1000320701代扣所得税….04-02-01….….字段名称表中的行列次序并不重要。主键完整一行,表示一条记录(二)关系数据库表的构成数据库表由表结构和表内容两部分组成。1、表结构是指组成数据表的字段及其字段属性(包括字段名、字段类型和字段宽度)注意:字段的唯一性,即一个表不能有相同的字段。数据的类型在数据库中有10种(文本型、数字型、备注型、日期/时间型、货币型、自动编号型、是/否型、OLE对象型、超链接型、查阅向导型),我们一般只使用文本型、日期/时间型和数字型。2、表内容是指表中的具体数据。3、创建数据表包括表结构的定义和数据的录入两部分,先定义表结构,然后再录入数据。(作简要介绍)二、关系数据库(2)三、表达式1、一般指由常量、变量、函数和运算符组成的式子为表达式,应特别注意的是单个常量、变量或函数亦可称作表达式。2、在程序执行中值恒为不变的量称为常量;值可以随时改变的量称为变量,如内存变量、字段名变量。字段是个多值变量(相当于数学中方程的X、Y),对应哪一行,值就是哪一个。四、运算符(1)(注意:必须是半角英文字符)1、算术运算符:名称乘方乘除整除取余(模运算)加减符号^*/\Mod+-注意:1、在算术表达式中乘号不能省略。2、“\”:整除符号,结果只包含整数部分,不包含小数部分,当使用时,带小数部分的操作将四舍五入为整数,但在结果中小数部分将被截取。例:17\2=83、“Mod”:该运算返回的是整数的余数。例:13Mod3将返回1四、运算符(2)(注意:必须是半角英文字符)2、关系运算符:名称大于大于等于小于小于等于等于不等于符号===3、逻辑运算符:名称非与或符号NOTAndor注意:逻辑运算符应用于多个条件的连接。例如:金额=100AND金额10000四、运算符(3)(注意:必须是半角英文字符)4、字符操作符:例如:‘Cheek’&48&‘abce’,结果’Cheek48abce’。‘Hello’+‘World’结果为“Helloworld”。此种情况与“&”的功能相同。而‘Cheek’+48+‘abce’,系统会给出出错。例:Left(确认日期,4)+‘-’+Substring(确认日期,5,2)+‘-’+Substring(确认日期,7,2)生成“2009-10-12”(假设确认日期为’20091012’)符号含义&用来强制两个表达式作为一个字符串+连接两个字符串。类型必须一致四、运算符(4)(注意:必须是半角英文字符)5、特殊运算符符号含义例子%通配符,表示零或多个字符‘张%’,'%待费’-通配符,表示任何一个字符‘a-’Is和NULL一起使用,确定某值是NULL还是NOTNULLISNULLBetween确定某值在给定范围内BETWEEN1AND5Like字符串匹配操作符LIKE’张%’In检查一个字段值是否属于一组值之中IN(’AC’,’or’,’at’)exists确定某字段是否有值,是ISNULL的反义词五、特殊运算符例子1、还清年月isnull,还款标志isnul,借书日期isnull.2、“成绩between80and89”等同于“成绩=80and成绩=89”3、科目编号LIKE‘110%’,科目名称like'%待费'4、“职称IN(’高级’,’中级’)”等同于“职称=‘高级’OR职称=‘中级’”where学号in(select学号from成绩where成绩60)5、Exists用于只能用于子查询,可以替代in,若匹配到结果,则退出内部查询,并将条件标志为true,传回全部结果资料例1:selecta.*fromtbawhereexists(select1fromtbwherename=a.name)exists返回真假当where后面的条件成立,则存在,否则。。。。例2:select*fromAwhereexists(select*fromBwhereA.a=B.a),exists表示,对于A中的每一个记录,如果在表B中有记录,其属性a的值与表A这个记录的属性a的值相同,则表A的这个记录是符合条件的记录,运算符优先级:算术运算符关系运算符逻辑运算符如:30+2045and12-36此表达式结果为假先计算30+20=50和12-3=9,再运算5045为真;96为假,最后:“真And假”的结果为假练习1、表示职称为教授或者性别为女的表达式为:职称=’教授’OR性别=’女’2、摘要第二个字是“费”的表达式为:摘要LIKE‘_费%‘3、查询姓‘张’的女同学的信息的表达式为:性别='女'AND姓名LIKE'张%‘4、查找出总账中12月份发生额大于1万的科目:会计月份=12AND(借方发生额10000OR贷方发生额10000)5、查大于2000的补助、津贴和奖金:(摘要like'%补%'or摘要like'%奖%'or摘要like'%津%')AND借方金额=20006、查询成绩为70—80分之间(不包括80):成绩=70and成绩807、查询”张兰“、”赵悦“、”王红“等人信息:姓名IN(”张兰“,”赵悦“,”王红“)六、常用函数(1)一、聚合函数:(书中P698)1、COUNT(*)统计记录个数例:Selectcount(*)As总记录数From凭证库COUNT(字段名)统计一字段(列)中值的个数,忽略NULL例:SELECTCount(学历)AS学历之计数,学历FROM管理员GROUPBY学历2、SUM(字段名)计算一字段(列)值的总和(此字段必须是数值型)例:Selectsum(借方金额)AS借方金额汇总from凭证库3、AVG(字段名)计算一字段(列)值的平均值(此字段必须是数值型)4、MAX(字段名)求一字段(列)值中的最大值5、MIN(字段名)求一字段(列)值中的最小值在这些函数后加上DISTINCT短语,可以用来除去指定字段中的重复值,但对于MAX和MIN而言,DISTINCT不起作用。函数SUM和AVG中,相应的字段必须是数值类型的。另外,除函数COUNT(*)外,其余函数都忽略空值,只处理非空值。假如某字段是空集,那么COUNT返回零,其他函数返回空值NULL。六、常用函数(2)二、日期函数:函数格式说明结果举例Year(日期)获取日期中的年数字类型Year(2006/12/3)=2006Month(日期)获取日期中的月数字类型Month(2006/12/3)=12Day(日期)获取日期中的日数字类型Month(200612/3)=3Date()获取系统当前日期日期类型Date()-30=‘2003-1-2’(如Date()2003/2/1)例:Select出生日期,year(date())-year(出生日期)as年龄from库名六、常用函数(3)三、字符串函数:(书中P701)1、LEFT(字符串,数值表达式)得到从字符串左边起至数值表达式指定的子字符串例1:科目编码=‘102010203’Left(科目编码,3)=‘102’Left(科目编码,5)=‘10201’例2:selectleft(科目编码,3)as一级科目编码别from凭证库2、Right(字符串,N)获取字符串右起N个字符例Right(‘abcdefg’,3)=‘efg’3、SUBSTRING(字符串,N,[M])获取字符串从第N个字符开始M个字符,(若省略M,则为到字符串末尾)例:SUBSTRING(‘abcdefg’,3)=‘cdefg’SUBSTRING(‘abcdefg’,3,2)=‘cd‘4、Ltrim(字符串)去掉字符串前后空格例:Ltrim(‘abcd‘)=‘abcd‘5、Rtrim(字符串)去掉字符串后面空格例:Rtrim(‘abcde‘)=‘abcde’6、Replace(字符串1,字符串2,字符串3)在字符串1中查找字符串2,找到后用字符串3替换。例:Replace(‘abcdefde’,’de’,’12’)=‘abc12f12’练习•查找出总账中12月份发生额大于60000的科目•查找出101科目中摘要中包含“费”的凭证。•查找出102科目中贷方金额大于20000元的凭证•把101科目明细账中所有月计的记录查找出来•查找出凭证库中摘要为空的分录,并且借方金额或者贷方金额大于1000元。七、关于SQL(1)SQL是结构化查询语言(StructuredQueryLanguage)的缩写,是关系数据库语言的国际工业标准,它具有语句结构简洁明了、功能强大等特点。利用SQL语言的SELECT查询语句可以实现各种类型的查询。1.查看SQL在图形化SQL查询分析器中设计查询文件时,系统会根据查询设计条件自动生成相应的SELECT语句。八、Select语句语法结构(单表)SELECT[ALL|DISTINCT|TOP(n)][表名.]字段表达式1[AS列名][,字段表达式2]…INTO新表名FROM表名1[,表名2]…[WHERE记录筛选条件][GROUPBY列名1[HAVING分组条件]][ORDERBY列名2[ASC|DESC]]包括重复记录,缺省为此取消重复记录*号表示全部字段字段所在的表名输出的列标题选取的记录数记录分组统计与GROUPBY结合指明分组条件结果排序字段列表子句:用于指定输出的字段、常量或表达式。INTO子句:用于将检索的结果存储到一个新的表中。FROM子句:用于指定在查询结果中所涉及的源表。WHERE子句:用于指定对记录的过滤条件。GROUPBY子句:其作用是对检索到的记录进行分组。(常用于汇总)HAVING子句:也用于指定对记录的过滤条件,但要与GROUPBY子句一起使用。RDERBY子句:用于对检索到的记录进行排序处理。八、SELECT语句参数说明八、SQL语法规则1.SQL语言不区别大小写,但建议SQL语言的关键字使用大写字母;2.括号内表示必填参数;3.[]中括号内表示可选填参数,但表名和字段名(含有系统关键字或数字时必须加[])的除外;4.…表示该语法元素可以重复;5.|表示将语法元素分开,但竖条并不是SQL语句的一部分;6.空格表示将语法元素分开;7.SQL语句中的标点符号及运算符必须使用英文半角字符,不能使用中文全角标点。8.所有字符型和日期型的值都要用单引号括起来。八、单表SQL语句举例(1)1、单表带条件查询例1:查询凭证库中现金业务的目录SELECT*FROM凭证库where科目名称=‘现金’例2:查询凭证库中现金和银行存款有业务发生的目录SELECT凭证日
本文标题:SQL语句讲解
链接地址:https://www.777doc.com/doc-1731083 .html