《SQL语句简介》PPT课件.ppt_第1页
《SQL语句简介》PPT课件.ppt_第2页
《SQL语句简介》PPT课件.ppt_第3页
《SQL语句简介》PPT课件.ppt_第4页
《SQL语句简介》PPT课件.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第17章 SQL语句简介,17.1 SQL 简介 17.2 数据表操作 17.3 添加、删除与修改记录 17.4 查询记录 17.5 在Java中用SQL语句操作实用举例,本章要点,了解什么是SQL语句 了解SQL语句关于表的操作 掌握SQL语句对于数据表中记录的操作 掌握SQL语句的查询命令,17.1 SQL 简介,结构化查询语言(SQL)是访问数据库的标准语言。通过SQL可以完成复杂的数据库操作,而不用考虑如何操作物理数据库的底层细节。 ANSI SQL语句按其基本功能可分为两种类型: 第一种:数据定义语言(DDL) 数据定义语言提供一系列的命令用以创建数据库对象,如创建、删除表、建立字段

2、及其属性、为表增加索引、创建表与表之间的连接关系等。 第二种:数据库操作语言(DML) SQL数据操作语言用于在表中检索记录、更新记录以及添加或删除记录。,17.2 数据表操作之一,5.2.1 SQL提供的常用数据类型 SQL语言中提供了大量的数据类型,下面是一些常用的数据类型: 1.数值型 INTEGER长整数(也可写成INT) SMALLINT短整数 REAL取决于机器精度的浮点数 DOUBLE PRECISION取决于机器精度的双精度浮点数 FLOAT(n)浮点数,精度至少为n位数字 NUMERIC(p,d)定点数,由p位数字(不包括符号、小数点)组成, 小数点后面有d位数字(也可写成D

3、ECIMAL(p,d)或DEC(p,d) 2.字符串型 CHAR(n)长度为n的定长字符串 VARCHAR(n)具有最大长度为n的变长字符串 3.时间型 DATE日期,包含年、月、日,形为YYYY-MM-DD TIME时间,包含一日的时、分、秒,形为HH:MM:SS 4.逻辑型 LOGICAL只有真(T)或假(F)的数据项 SQL允许对以上数据类型的数据进行比较操作,但算术操作只限于数值型。,17.2 数据表操作之二,5.2.2 基本表操作 1.创建表 基本表的创建可用Create语句来实现: CREATE TABLE 表名(字段名1 类型,字段名2 类型) 例如:创建班级表的具体代码如下:

4、CREATE TABLE 班级表(班级名称 char(30),人数 integer,班主任 char(10),教室 char(20) 2.删除表 删除表可使用Drop语句: DROP TABLE 表名,17.2 数据表操作之三,3.修改表 修改表一般是指对字段的添加、删除、修改操作,使用Alter语句。 添加: ALTER TABLE 表名 ADD COLUMN 字段名1 类型(长度),字段名2 类型(长度) 删除: ALTER TABLE 表名 DROPD COLUMN 字段名 修改: ALTER TABLE 表名 ALTER (字段名1 类型,字段名2 类型),17.2 数据表操作之四,例

5、5-1 在班级表中添加专业字段。 alter table 班级表 add column 专业 char(20) 例5-2 将班级表中专业字段的长度改为50。 alter table 班级表 alter 专业 char(50) 例5-3 删除专业字段。 alter table 班级表 drop 专业,17.3 添加、删除与修改记录,17.3.1 添加记录 SQL语言用INSERT语句向表中输入数据。其语法如下: INSERT INTO 表名字(字段1,字段2,字段3,) VALUES(数据1,数据2,数据3,) 若在输入记录时,每个字段均有内容,可省略表名后的字段名。 例17-4 在学生表中输入

6、一条记录 “010602006”,“田秀丽”,“8907653”,“450”,“济南市天桥区”,“82-03-23”,“女”,“01电子商务二班” insert into 学生表 values(010602006,田秀丽, 8907653,450,济南市天桥区,82-03-23,女,01电子商务二班),添加记录注意,括号内是输入的数据,各数据项用逗号分隔。 字符串和日期值必须用单引号括起来。 数值型数据不用括起。 数据顺序一定与字段顺序对应。 所有标点符号一律在半角状态下输入,添加记录注意,例17-5 在学生表中添加记录,“010602007”,“李刚”,“男”,其余字段为空。 insert

7、into 学生表(学号,姓名,性别) values(010602007,李刚,男) 括号内是输入的数据,各数据项用逗号分隔。 字符串和日期值必须用单引号括起来。 数值型数据不用括起。 数据顺序一定与字段顺序对应。 所有标点符号一律在半角状态下输入,17.3.2 删除记录,删除记录可使用DELETE语句,其语法如下: DELETE * FROM 表名 WHERE 条件 例17-6 删除学生表中李刚这条记录。 cs.Execute delete * from 学生表 where 姓名=李刚 例17-7 删除学生表中所有的女生。 cs.Execute delete * from 学生表 where

8、性别=女,17.3.3 修改记录,修改记录可使用UPDATE语句,其语法如下: UPDATE 表名称 SET 字段1=数据1,字段2=数据2 WHERE 条件 例5-8 将学生表中所有的家庭住址前加山东省。 cs.Execute update 学生表 set 家庭住址=山东省+家庭住址 例5-9 将学生表中田秀丽的入学成绩改为530,出生日期改为“83-02-01”。 cs.Execute update 学生表 set 入学成绩=530,出生日期=83-02-01 where 姓名=田秀丽,17.4 查询记录,SELECT查询的完整类型如下: SELECT 字段1,字段2,字段3(要显示的字段

9、列表) FORM 子句 WHERE 子句 GROUP BY 子句 HAVING 子句 ORDER BY 子句 其中括号内的子句可视需要选用,17.4.1 字段表的表示,在SELECT关键字之后指定字段名称作为查询对象,例如要查询学生表中的学号,则可写为: SELECT 学号 FORM 学生表 若要将查询范围扩大到整个数据表,则可以使用通配符“*”取代字段名称。如: SELECT * FROM 学生表 表示取出学生表中的所有记录。 若字段列表中要取出多个字段,各字段间用逗号隔开,如: SELECT 学号,姓名,入学成绩 FROM 学生表,17.4.2 条件子句 WHERE,在SELECT查询语句

10、中,可以运用WHERE子句指定某些条件,将所有符合条件的记录获取出来。语法如下: WHERE 条件表达式 WHERE子句可以包含任何逻辑运算,只要返回值为True或False即可。 比较运算符 逻辑运算符,17.4.2 条件子句 WHERE,通配符,特殊运算符,17.4.2 条件子句 WHERE举例之一,例17-10 查询学生表中所有的女同学 select * from 学生表 例5-11 查询学生表中学号前4位为“0105”的学生的学号、姓名和性别。 select 学号,姓名,性别 from 学生表 where left(学号,4)=0105 其中left(str,n)函数可从字符串str左

11、边取,取出n个字符,mid(str,n1,n2)函数可从字符str的第n1位开始取,取出n2个字符。 2.逻辑运算符 表5-3 逻辑运算符 逻辑运算符说明AND或(或者)OR与(并且)NOT非(否) 例5-12 查询学生表中01计算机一班入学成绩在350分以上的同学 select * from 学生表 where 班级=01计算机一班 and 入学成绩 350 例 5-13 查询学生表中81年以后出生的女同学或不是01计算机一班的同学。 select * from 学生表 where 班级01计算机一班 or 性别=女 and 出生日期 =#81-01-01# 注意,日期型的数据,与Acess

12、数据库连接时用# #括起来,与SQL Server连接时用单引号()号。 3.通配符 SQL语法还支持LIKE运算符,这个运算符接受表5-4所示的通配符。 表5-5 通配符 通配符意 义%任何长度的字符串(包括0)_(下划线)任何一个字符(中括号)某个范围内的一个字符例5-14 列出所有姓李的同学的姓名和家庭住址。 select 姓名,家庭住址 from 学生表 where 姓名 like 李% 注意,字符串的前后要加上单引号。 例5-15 列出电话号码开头在5-8之间的所有记录。 select * from 学生表 where 联系电话 like 5,8% 4.特殊运算符 SQL语句允许在W

13、HERE子句中使用特殊的运算符。表5-6列出这些特殊的运算符号。 表5-6 特殊运算符号 运算符号含 义BETWEEN定义一个区间范围IS NULL测试属性是否为空值IN检查一个属性是否属于一组值之中EXISTS检查某一个属性是否有值。实际上,EXISTS是IS NULL的反义词例5-16 列出入学成绩在300到360之间的同学。 select * from 学生表 where 入学成绩 between 300 and 360 例5-17 列出无联系电话的同学。 select * from 学生表 where 联系电话 is null 例5-18 列出李华明、孙日鹏、朱婷婷、刘娜的所有信息。

14、select * from 学生表 where 姓名 in (李华明,孙日鹏,朱婷婷, 刘娜),17.4.2 条件子句 WHERE举例之一,例17-10 查询学生表中所有的女同学 select * from 学生表 例17-11 查询学生表中学号前4位为“0105”的学生的学号、姓名和性别。 select 学号,姓名,性别 from 学生表 where left(学号,4)=0105 其中left(str,n)函数可从字符串str左边取,取出n个字符,mid(str,n1,n2)函数可从字符str的第n1位开始取,取出n2个字符。 例17-12 查询学生表中01计算机一班入学成绩在350分以上

15、的同学 select * from 学生表 where 班级=01计算机一班 and 入学成绩 350 例 17-13 查询学生表中81年以后出生的女同学或不是01计算机一班的同学。 select * from 学生表 where 班级01计算机一班 or 性别=女 and 出生日期 =#81-01-01# 注意:日期型的数据,与Acess数据库连接时用# #括起来,与SQL Server连接时用单引号()号。,17.4.2 条件子句 WHERE举例之二,例5-14 列出所有姓李的同学的姓名和家庭住址。 select 姓名,家庭住址 from 学生表 where 姓名 like 李% 注意,字

16、符串的前后要加上单引号。 例5-15 列出电话号码开头在5-8之间的所有记录。 select * from 学生表 where 联系电话 like 5,8% 例5-16 列出入学成绩在300到360之间的同学。 select * from 学生表 where 入学成绩 between 300 and 360 例5-17 列出无联系电话的同学。 select * from 学生表 where 联系电话 is null 例5-18 列出李华明、孙日鹏、朱婷婷、刘娜的所有信息。 select * from 学生表 where 姓名 in (李华明,孙日鹏,朱婷婷, 刘娜),17.4.3 数值函数,1

17、.COUNT,可用作计数器,计算满足某种条件的行数。 例5-19 统计总人数 select count(*) from 学生表 显示结果如下 Expr100011由于没有指定输出字段,故显示为Expr1000,若要指明输出字段,可将上句改写为 select count(*) as 总人数 from 学生表,2.MAX和MIN,显示入学成绩的最高分与最低分 select max(入学成绩) as 最高分,min(入学成绩) as 最低分 from 学生表 显示结果为:,3.AVG和SUM,可用来求出某字段的平均值及总和。 例5-21 统计入学成绩的总分和平均分 select avg(入学成绩)

18、as 平均分,sum(入学成绩) as 总分 from 学生表 显示结果为:,17.5 在Java中用SQL语句操作实用举例之一,录入数据: Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); String url = jdbc:odbc:stu01; Connection conn = DriverManager.getConnection(url); Statement stat = conn.createStatement(); String sql = insert into students values(20040001,张三s,男,18,04软件,82059393,济南); /String sql = insert into students values(20040001,张三s,男,18,04软件,82059393,济南); int rowCount =stat.executeUpdate(sql); 上述代码为向数据表中添加一行数据,17.5 在Java中用SQL语句

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论