您好,欢迎访问三七文档
SQL必知SQL数据库基础1.学习数据库,首先要了解什么是数据库?答:数据库是存储和管理数据的仓库,存放着大量数据的服务器;简单来说是本身可视为电子化的文件柜——存储电子数据图表额处所,用户可以对数据表中的数据进行新增、截取、更新、删除等操作。作用:数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分。2.数据库的架构分为三级模式和两级映射:第一层是物理数据层,它是数据库的最内层,这些数据是原始数据;第二层是概念数据层,它是数据库的中间层,是数据库的整体逻辑表示;第三层是用户数据层,它是用户所看到和使用的数据库,即逻辑记录的集合。数据库不同层次之间的联系是通过映射进行转换的,两级映射:内模式和外模式;映射——即同步的意思数据库——数据库架构3.数据库为什么要分层呢?1.上一层依赖下一层,如果测试下一层没有问题,那么问题就只有可能发现在本层了,便于发现和改正BUG。2.各个层次分工明确,将一个复杂问题简单拆分了;复杂问题简单化;3.便于系统维护与升级4.通过什么访问和处理数据库?答:通过DBMS访问和处理数据库的;5.什么是DBMS?答:DBMS是数据库软件的简称,数据库软件称为数据库管理系统和数据库;用于建立、使用、维护数据库;6.那么是直接使用数据库软件就可以访问和处理数据库吗?答:不是;虽然是通过数据库软件访问和处理数据库的,但是其中还需要最重要的媒介——SQL语句;数据库——数据库架构7.那什么是SQL语句呢?答:SQL指结构化查询语言(StructuredQueryLanguage),就是访问和处理数据库的计算机语言,使我们有能力访问数据库;SQL语句用于取回和更新数据库中的数据,配合数据库软件共同工作。8.那该怎么使用SQL语句去访问和操作数据库呢?答:这个时候就需要用到数据库软件(DBMS)程序;因为我们并不是直接访问数据库的,而是通过使用DBMS,访问数据库;使用DBMS对数据库进行统一的管理和控制,可以保证数据库的安全性和完整性。DBMS——SQL语句9.简单介绍下比较常见常用的数据库软件程序(DBMS):MYSQL——是由瑞典MySQLAB公司开发,目前属于Oracle旗下产品,也是一个关系型数据库管理系统;MYSQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器,是目前最受欢迎的开源SQL数据库管理系统。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。而一开始就是为了服务用户而设计的,目标专一清晰,实用性强。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余;SQLServer——SQLServer是Microsoft(微软)公司推出的关系型数据库管理系统;最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本;特点:数据承载量比较大,存储数据速度快,稳定性强,适用于中小型企业开发网站和办公系统常用的数据库。SQLserver目前有三个版本:SQLServer2000、SQLServer2005和SQLServer2008;Oracle——是甲骨文公司的一款关系数据库管理系统,是全球最大的信息管理软件及服务供应商,成立于1977年;目前甲骨文公司已成功收购SUN微系统公司(java),而甲骨文公司已被谷歌收购,现属谷歌公司;Oracle的具有强大的电子商务能力的解决方案,为企业提供高效率的扩展市场的手段,并提高工作效率和吸引更多的客户;处理速度快,非常快,安全级别高;DB2——是美国IBM公司开发的一套关系型数据库管理系统;DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器操作系统平台下。DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。1.每个表都有主键,而为什么要设置主键?主键的作用是什么?答:主键就是数据行的唯一标识,不会重复的列才能当主键;一个表可以没有主键,但是会非常难以处理,无论如何都要设置主键;主键有两种选用方案:业务主键和逻辑主键;推荐用逻辑主键(流水号处理,没有任何意义,完全给程序看的,业务人员不会看的数据)因为很难保证业务主键不会重复;主键可多选,但这并不推荐,因为会不利于搜索值;在表中每一行应有唯一标识自己的一列(或一组列),其值能够唯一标识表中每个行,便于以后的数据操纵和管理;也就说不容易发生重复的依据;这里就有业务类型和逻辑类型的区分了,一般推荐使用逻辑类型的,因为不容易发生重复。基本的SELECT语句检索数据1.简单使用select语句搭配from关键字;1.SELECT语句检索内容:•1.检索所有行和列:SELECT*FROM表名称•提示:星号(*)是选取所有列的快捷方式。•实例:希望从“Persons”表中选取所有的列,使用“*”取代列的名称;输入:SELECT*FROMPersons;输出:(显示“Persons”表所有列所有行)图解1.SELECT语句检索内容:2.检索部分行,多选行:实例:希望从“Persons”表中选取LastName和FirstName的列;输入:SELECTLastName,FirstNameFROMPersons;输出:LastName和FirstName的列内容列名之间用“,”分隔,最后一个不用排序检索数据1.使用ORDERBY子句对结果集进行排序;2.使用ORDERBY进行排序:1.按多个列排序例子中原始的表——实例:要求以字母顺序显示公司名称输入:SELECTCompany,OrderNumberFROMOrdersORDERBYCompany;输出:2.使用ORDERBY进行排序:升序例子中原始的表——实例:要求以逆字母顺序显示公司名称:输入:SELECTCompany,OrderNumberFROMOrdersORDERBYCompanyDESC;输出:2.使用ORDERBY进行排序:升序和降序例子中原始的表——实例:以逆字母顺序显示公司名称,并以数字顺序显示顺序号:输入:SELECTCompany,OrderNumberFROMOrdersORDERBYCompanyDESC,OrderNumberASC输出:过滤数据查找满足多个条件的行:使用where子句对其进行过滤WHERE子句用于提取那些满足指定标准的记录;2.过滤数据WHERE子句2.过滤数据WHERE子句例子中原始的表——实例:只希望选取居住在城市Beijing中的人输入:SELECT*FROMPersonsWHERECity='Beijing';输出:注意:单引号只支持文本值,数值是不需要使用引号的。SQLBETWEEN操作符操作符BETWEEN...AND会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。例子中原始的表——实例:需以字母顺序显示介于Adams(包括)和Carter(不包括)之间的人输入:SELECT*FROMPersonsWHERELastNameBETWEEN'Adams'AND'Carter';输出:SQLBETWEEN操作符+NOT操作符操作符BETWEEN...AND会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。例子中原始的表——实例:需使用上面的例子显示范围之外的人,输入:SELECT*FROMPersonsWHERELastNameNOTBETWEEN'Adams'AND'Carter'输出:SQL通配符:模糊查询在搜索数据库中的数据时,SQL通配符可以替代一个或多个字符。SQL通配符必须与LIKE运算符一起使用。在SQL中,可使用以下通配符:SQL通配符——使用%通配符LIKE操作符用于在WHERE子句中搜索列中的指定模式例子中原始的表——实例1:从上面的Persons表中选取居住在以Ne开始的城市里的人:输入:SELECT*FROMPersonsWHERECityLIKE'Ne%'输出:提示:%可用于定义通配符(模式中缺少的字母)。SQL通配符——使用%通配符LIKE操作符用于在WHERE子句中搜索列中的指定模式例子中原始的表——实例2:希望从Persons表中选取居住在包含lond的城市里的人:输入:SELECT*FROMPersonsWHERECityLIKE'%lond%'输出:提示:%可用于定义通配符(模式中缺少的字母)。SQL通配符——使用_通配符LIKE操作符用于在WHERE子句中搜索列中的指定模式例子中原始的表——实例1:从上面的Persons表中选取名字的第一个字符之后是eorge的人:输入:SELECT*FROMPersonsWHEREFirstNameLIKE'_eorge'输出:下划线通配符只匹配单个字符;SQL通配符——使用_通配符LIKE操作符用于在WHERE子句中搜索列中的指定模式例子中原始的表——实例2:从Persons表中选取的这条记录的姓氏以C开头,然后是一个任意字符,然后是r,然后是任意字符,然后是er:输入:SELECT*FROMPersonsWHERELastNameLIKE'C_r_er'输出:SQL通配符——使用[charlist]通配符LIKE操作符用于在WHERE子句中搜索列中的指定模式例子中原始的表——实例1:从上面的Persons表中选取居住的城市以A或L或N开头的人:输入:SELECT*FROMPersonsWHERECityLIKE'[ALN]%'输出:SQL通配符——使用[charlist]通配符LIKE操作符用于在WHERE子句中搜索列中的指定模式例子中原始的表——实例1:从上面的Persons表中选取居住的城市不以A或L或N开头的人:输入:SELECT*FROMPersonsWHERECityLIKE'[!ALN]%'输出:2.LIKE操作符LIKE操作符用于在WHERE子句中搜索列中的指定模式例子中原始的表——实例1:从上面的Persons表中选取居住在以N开始的城市里的人:输入:SELECT*FROMPersonsWHERECityLIKE'N%'输出:提示:%可用于定义通配符(模式中缺少的字母)。2.LIKE操作符LIKE操作符用于在WHERE子句中搜索列中的指定模式例子中原始的表——实例2:从Persons表中选取居住在以g结尾的城市里的人:输入:SELECT*FROMPersonsWHERECityLIKE'%g'输出:提示:%可用于定义通配符(模式中缺少的字母)。2.LIKE操作符,使用NOT关键字LIKE操作符用于在WHERE子句中搜索列中的指定模式例子中原始的表——实例4:可以从Persons表中选取居住在不包含lon的城市里的人:输入:SELECT*FROMPersonsWHERECityNOTLIKE'%lon%'输出:提示:%可用于定义通配符(模式中缺少的字母)。2.LIKE操作符——通配符LIKE操作符用于在WHERE子句中搜索列中的指定模式例子中原始的表——实例3:从“Persons”表中选取居住在包含“lon”的城市里的人:输入:SELECT*FROMPersonsWHERECityLIKE'%lon%'输出:提示:%可用于定义通配符(模式中缺少的字母)。SQLIN操作符IN操作符允许我们在WHERE子句中规定多个值。例子中原始的表——实例:从上表中选取姓氏为Adams和Carter的人:输入:SELECT*FROMPersonsWHERELastNameIN('Adams','Carter')输出:1.组合WHERE子句,使用操作符进行过滤;2.主要使用:AND操作符、OR操作符、AND操作符和OR操作符结合、IN操作符、NOT操作符;3.操作符(operator):用来联结或改变WHERE子句中的子句关键字,也称为逻辑操作符(logicaloperator)。高级数据过滤
本文标题:SQL初学PPT
链接地址:https://www.777doc.com/doc-4304834 .html