1、学生第一次课时,将笔记本带学生第一次课时,将笔记本带到课堂到课堂-演示软件安装演示软件安装概概 述述l学习目标:学习目标:掌握掌握Word文档的建立、编辑、格式化、保存、输出文档的建立、编辑、格式化、保存、输出的基本操作的基本操作熟悉熟悉Word模板的使用模板的使用掌握掌握Word表格的相关操作图形表格的相关操作图形了解在了解在Word中处理图片、图形的方法中处理图片、图形的方法了解样式、域的基本使用了解样式、域的基本使用 第三章第三章 主要内容主要内容l8.1 数据库数据库l8.2 SQL语句语句l3.3l3.4 输入文本内容输入文本内容“插入插入”菜单菜单l3.5 修改内容修改内容“编辑编
2、辑”菜单菜单l3.6 文档排版文档排版“格式格式”菜单菜单l3.7 Word对象的创建与设置对象的创建与设置l3.8 表格表格“表格表格”菜单菜单l3.9 打印输出打印输出l3.10 综合实例综合实例3.1 数据库数据库l3.1.1 数据库概念数据库概念l3.1.2 安装安装MYSQL数据库数据库l3.1.3 MySQL服务器启动与客户端的登录服务器启动与客户端的登录 3.1.1 3.1.1 数据库概念(了解)数据库概念(了解)数据库就是用来存储和管理数据的仓库!数据库就是用来存储和管理数据的仓库!数据库存储数据的优先:数据库存储数据的优先: l可存储大量数据;可存储大量数据;l方便检索;方便
3、检索;l保持数据的一致性、完整性;保持数据的一致性、完整性;l安全,可共享;安全,可共享;l通过组合分析,可产生新数据。通过组合分析,可产生新数据。数据库的发展历程数据库的发展历程 l没有数据库,使用磁盘文件存储数据;没有数据库,使用磁盘文件存储数据;l层次结构模型数据库;层次结构模型数据库;l网状结构模型数据库;网状结构模型数据库;l关系结构模型数据库:使用二维表格来存储数据;关系结构模型数据库:使用二维表格来存储数据;l关系关系-对象模型数据库;对象模型数据库;注意:注意:MySQL就是关系型数据库!就是关系型数据库!Java-面向对象;数据库面向对象;数据库-面向关系;二者之间有一个面向
4、关系;二者之间有一个映射。映射。常见数据库常见数据库 lOracle:市场使用率最高!业界霸主;:市场使用率最高!业界霸主;(1)“神喻神喻”-国外应用的名字;国外应用的名字;(2)甲骨文)甲骨文-在中国注册的名字。在中国注册的名字。lDB2:IBM;lSQL Server:微软;(课堂上,:微软;(课堂上,.net平台使用自己的东平台使用自己的东西)西)lSybase:赛尔斯;:赛尔斯;lMySQL:甲骨文;(起始时免费,新版本也开始收费,:甲骨文;(起始时免费,新版本也开始收费,目前用的目前用的5.5版本还是免费的)版本还是免费的)理解数据库理解数据库 我们现在所说的数据库泛指我们现在所说
5、的数据库泛指“关系型数据库管理系统关系型数据库管理系统(RDBMS - Relational database management system )”,即,即“数据库服务器数据库服务器”。 理解数据库理解数据库 当我们安装了数据库服务器后,就可以在数据库服务器当我们安装了数据库服务器后,就可以在数据库服务器中创建数据库,每个数据库中还可以包含多张表。中创建数据库,每个数据库中还可以包含多张表。 理解数据库理解数据库 数据库表就是一个多行多列的表格。在创建表时,需要数据库表就是一个多行多列的表格。在创建表时,需要指定表的列数,以及列名称,列类型等信息。而不用指指定表的列数,以及列名称,列类型等
6、信息。而不用指定表格的行数,行数是没有上限的。下面是定表格的行数,行数是没有上限的。下面是tab_student表的结构:表的结构: 理解数据库理解数据库 当把表格创建好了之后,就可以向表格中添加数据了。当把表格创建好了之后,就可以向表格中添加数据了。向表格添加数据是以行为单位的!下面是向表格添加数据是以行为单位的!下面是s_student表的表的记录:记录: 注意:大家要学会区分什么是表结构,什么是表记录。 应用程序与数据库应用程序与数据库 应用程序使用数据库完成对数据的存储!应用程序使用数据库完成对数据的存储! 应用程序与数据库应用程序与数据库 (1)数据库和应用程序(如)数据库和应用程序
7、(如Java)不在同一台机器上,)不在同一台机器上,远程访问数据库。例如家(应用程序)和仓库(专门存远程访问数据库。例如家(应用程序)和仓库(专门存放数据的,数据库)在两个地点。讲课时,为了方便数放数据的,数据库)在两个地点。讲课时,为了方便数据库和应用程序是在同一台机器上的。据库和应用程序是在同一台机器上的。(2)数据库和应用程序离得很远。远程数据库。如家和)数据库和应用程序离得很远。远程数据库。如家和仓库离得很远。仓库离得很远。3.1.2安装安装MySQL数据库数据库 l1、 安装安装MySQL l2、 MySQL目录结构目录结构 安装MySQLl安装参考:安装参考:MySQL安装图解安装
8、图解.doc l校验安装: MySQL安装图解安装图解.doc 重点内容:开启关闭服务器以及登录退出客户端。l卸载方法: MySQL安装图解安装图解.doc MySQL目录结构l参见:参见:MySQL安装目录介绍安装目录介绍.doc3.1.3 MySQL服务器启动与客户端的登录l服务器操作服务器操作开启服务器开启服务器(必须保证必须保证mysql为为windows服务服务):两种方法。两种方法。 验证方法:验证方法: 查看进程表中是否存在:查看进程表中是否存在:mysqld.exe进程进程(存在存在)l客户登操作客户登操作开始开始-运行运行- cmd1. 登录服务器:登录服务器:mysql -
9、uroot -p123 -hlocalhost -u:后面跟随用户名:后面跟随用户名 -p:后面跟随密码:后面跟随密码 -h:后面跟随:后面跟随IP,可以省略,也可以为,可以省略,也可以为-hlocalhost或者或者-h127.0.0.1,表示本机,表示本机IP 验证方法:验证方法: 查看进程表中是否存在:查看进程表中是否存在:mysql.exe进程进程(存在存在)2. 退出服务器:退出服务器:exit或或quit8.2 SQL语句语句l8.2.1 SQL概述l8.2.2 SQL 分类分类l8.2.3 DDL (用的不太多)(用的不太多)l8.2.4 DML(用的多)(用的多)l8.2.5
10、DCL(用的很少)(用的很少)l8.2.6 DQL (用的多)(用的多)SQL概述概述lSQL(Structured Query Language)是)是“结结构化查询语言构化查询语言”,它是对关系型数据库的操作,它是对关系型数据库的操作语言。它可以应用到所有关系型数据库中,例语言。它可以应用到所有关系型数据库中,例如:如:MySQL、Oracle、SQL Server等。等。 l通俗地讲, SQL 语言用于服务器端与客户端对话使用。即客户端使用SQL来操作服务器。 启动mysql.exe,连接服务器后,就可以使用sql来操作服务器了。 将来会使用Java程序连接服务器,然后使用sql来操作服
11、务器。SQL概述概述lSQL标准(例如SQL99,即1999年制定的标准,不断升级版本): 由国际标准化组织(ISO)制定的,对DBMS的统一操作方式(例如相同的语句可以操作:mysql、oracle、 SQL Server等,即这些数据库通用该语言)。lSQL方言 虽然SQL可以用在所有关系型数据库中 ,但很多数据库还会有一些自己独有的语法,这就称之为方言!例如limit语句只在MySQL中可以使用,其它数据库都不支持!当然,Oracle或SQL Server都有自己的方言。SQL概述概述语法要求lSQL语句可以单行或多行书写,以分号结尾(注意:不同的使用环境对是否具有分号的要求也不同);l
12、可以用空格和缩进来来增强语句的可读性;l关键字不区别大小写,建议使用大写;如:如:SELECT * FROM book;SQL语句分类语句分类1. DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等; 创建、删除、修改:库、表结构!2. DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据); 增、删、改:表记录3. DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;4. DQL*(Data Query Language):数据查询语言,用来查
13、询记录(数据)。本质上属于2的一部分。lddl:数据库或表的结构操作(重点)ldml:对表的记录进行更新(增、删、改)(重点)ldql:对表的记录的查询(重点,难点)ldcl:对用户的创建,及授权!(尽量不用使用root,创建其他普通用户并使用)DDL知识知识-数据库操作数据库操作1. 数据库操作l查看所有数据库:SHOW DATABASES;l切换(选择要操作的)数据库:USE 数据库名;l创建数据库:CREATE DATABASE IF NOT EXISTS mydb1 CHARSET=utf8l创建数据库,例如:CREATE DATABASE mydb1;,创建一个名为mydb1的数据库
14、。如果这个数据已经存在,那么会报错。例如CREATE DATABASE IF NOT EXISTS mydb1,在名为mydb1的数据库不存在时创建该库,这样可以避免报错。 l“CHARSET=utf8”选项可以省略,因为在安装MySql时,已经指定了符号集。如果不指定字符集,则默认使用utf8。DDL知识知识1. 数据库操作l删除数据库:DROP DATABASE IF EXISTS mydb1 删除数据库,例如:DROP DATABASE mydb1;,删除名为mydb1的数据库。如果这个数据库不存在,那么会报错。DROP DATABASE IF EXISTS mydb1,就算mydb1不
15、存在,也不会的报错。 l修改数据库编码:ALTER DATABASE mydb1 CHARACTER SET utf8; 修改数据库mydb1的编码为utf8。注意,在MySQL中所有的UTF-8编码都不能使用中间的“-”,即UTF-8要书写为UTF8。 DDL知识(软件知识(软件SQLyog)-数据类型数据类型2. 数据类型(参见“MySQL数据类型.doc”, MySQL 中数据类型后面括号内的数字通常表示实际数据的位数)MySQL与Java一样,也有数据类型。MySQL中数据类型主要应用在列上。lint:整型ldouble:浮点型,例如double(5,2)表示最多5位,其中必须有2位小
16、数,即最大值为999.99;ldecimal:浮点型,在表示钱方面使用该类型,因为不会出现精度缺失问题;DDL知识知识2. 数据类型lchar:固定长度字符串类型; char(255),数据的长度不足指定长度,补足到指定长度!如char(4),当数据长度为2时,会在后面添加2个空格补位。 注意:255表示字符串的长度或者255Byte,此时一个字符便为一个Byte。 适合于身份证号码、时间等固定长度场合的表示。lvarchar:可变长度字符串类型; varchar(65535),数据的长度不足指定长度,不补足到指定长度! 如zhangSan 。缺点:需要使用一个字节用来记录长度。当数据长度大于
17、255时,记录长度就需要2个字节了。 DDL知识知识ltext(对应“标准”里的clob类型):字符串类型;MySQL独有的类型。 很小-tinytext 小-text 中-mediumtext 大-longtext ,存储一本小说lblob:字节类型; 很小-tinyblob 小-blob 中-mediumblob 大-longblob ldate:日期类型,格式为:yyyy-MM-dd;ltime:时间类型,格式为:hh:mm:ssltimestamp:时间戳类型;包含时间和日期。DDL知识知识-表的操作表的操作1、创建表l语法如下:CREATE IF NOT EXISTS TABLE 表
18、名( 列名 列类型, 列名 列类型, . 列名 列类型);DDL知识知识-表的操作表的操作1、创建表例如,创建如下表:CREATE TABLE stu(sid CHAR(6),snameVARCHAR(20),ageINT,genderVARCHAR(10) ); 表的字段名称:学号、姓名、年龄和性别。DDL知识知识-表的操作表的操作又如,创建如下表(雇工表):CREATE TABLE emp(eidCHAR(6),enameVARCHAR(50),ageINT,genderVARCHAR(6),birthdayDATE,hiredateDATE,salaryDECIMAL(7,2),resu
19、meVARCHAR(1000);表的字段名称:工号、姓名、年龄、性别、生日、雇用日期、薪水、个人简历。DDL知识知识-表的操作表的操作2、查看当前数据库中所有表名称:SHOW TABLES;3、查看指定表的创建语句:SHOW CREATE TABLE 表名(了解); 如:SHOW CREATE TABLE emp;,查看emp表的创建语句; 4、查看表结构:DESC 表名;如:DESC emp;,查看emp表结构; 5、删除表:DROP TABLE 表名;如:DROP TABLE emp;,删除emp表; DDL知识知识-表的操作表的操作6、 修改表:前缀:ALTER TABLE 表名 修改之
20、添加列: ALTER TABLE 表名 ADD ( 列名 列类型, 列名 列类型, . 列名 列类型 ); 如:给stu表添加classname列: ALTER TABLE stu ADD ( classname varchar(100) ); DDL知识知识-表的操作表的操作6、 修改表: 修改之修改列类型(如果被修改的列已存在数据,那么新的类型可能会影响到已存在数据),语法如下: ALTER TABLE 表名 MODIFY 列名 列类型; 如:修改stu表的gender列类型为CHAR(2):ALTER TABLE stu MODIFY gender CHAR(2);DDL知识知识-表的操
21、作表的操作6、 修改表:修改之修改列名,语法如下: ALTER TABLE 表名 CHANGE 原列名 新列名 列类型;如:修改stu表的gender列名为sex:ALTER TABLE stu change gender sex CHAR(10); DDL知识知识-表的操作表的操作6、 修改表:修改之删除列,语法如下: ALTER TABLE 表名 DROP 列名;如:删除stu表的classname列:ALTER TABLE stu DROP classname; DDL知识知识-表的操作表的操作6、 修改表 修改表名称,语法如下:ALTER TABLE 原表名 RENAME TO 新表名
22、;如:修改stu表名称为student:ALTER TABLE stu RENAME TO student;DML知识知识-插入数据插入数据DML(数据操作语言,它是对表记录的操作(增、删、改)!)预备知识:DQL查询表记录:SELECT * FROM 表名;1. 插入数据INTERT INTO 表名(列名1,列名2, .) VALUES(列值1, 列值2, .); 在表名后给出要插入的列名,其他没有指定的列等同于插入null值。所以插入记录总是插入一行,不可能是半行。 在VALUES后给出列值,值的顺序和个数必须与前面指定的列对应。DML知识知识-插入数据插入数据例如:INSERT INTO
23、 stu(sid, sname,age,gender) VALUES(s_1001, zhangSan, 23, male); 注意:(1)在数据库中所有的字符串类型,必须使用单引,不能使用双引!(2)日期类型也要使用单引!又如:INSERT INTO stu(sid, sname) VALUES(s_1001, zhangSan);注意:因为没有插入age和gender列的数据,所以该条记录的age和gender值上为NULLDML知识知识-插入数据插入数据又如:INSERT INTO stu(sname,age,sid, gender) VALUES(wangwu, 23, s_1003,
24、 female); 注意:在VALUES后给出列值,值的顺序和个数必须与前面指定的列对应。DML知识知识-插入数据插入数据1. 插入数据INTERT INTO 表名 VALUES(列值1, 列值2); 没有给出要插入的列,那么表示插入所有列。 值的个数必须是该表列的个数。 值的顺序,必须与表创建时给出的列的顺序相同。 不建议使用此种方式。如:INSERT INTO stu VALUES(s_1002, liSi, 32, female); 注意:插入记录中尽可能不出现汉字。DML知识知识-修改数据修改数据2. 修改数据(一次可以同时修改表中的多条记录) UPDATE 表名 SET 列名1=列值
25、1, 列名2=列值2, . WHERE 条件说明:条件(条件可选的): 条件必须是一个boolean类型的值或表达式:UPDATE stu SET sname=zhangSanSan , age=32 , gender=male WHERE sid=s_1002 ; 运算符:=、!=(不等于)、 (不等于) 、=、30 AND gender=male;(2)UPDATE stu SET gender=female WHERE gender IS NULL;(3)UPDATE stu SET age=age+1 WHERE sname=liSi;注意:在注意:在SQL中赋值和等于都是用中赋值和等
26、于都是用“=”,根据上下,根据上下文进行判断具体含义。文进行判断具体含义。DML知识知识-修改数据修改数据例如:(4)UPDATE stu SET age=age+1 WHERE age=22 AND age 用户只能在指定的用户只能在指定的IP地址上登录地址上登录(2)CREATE USER 用户名用户名% IDENTIFIED BY 密码密码; 用户可以在任意用户可以在任意IP地址上登录地址上登录DCL知识知识-创建用户1. 创建用户创建用户(使用(使用root登录(此时权限最大),而后进行创建用户操作)登录(此时权限最大),而后进行创建用户操作) 例如:例如:(1)CREATE USER
27、 user1localhost IDENTIFIED BY 123; user1用户只能在用户只能在localhost这个这个IP登录登录mysql服务器服务器 验证方法:验证方法:mysql -uuser1 -p123或者或者mysql -uuser1 -p123 -hlocalhost 验证登录。验证登录。(2)CREATE USER user2% IDENTIFIED BY 123;user2用户可以在任何电脑上登录用户可以在任何电脑上登录mysql服务器。服务器。验证方法:验证方法:mysql -uuser2 -p123验证登录。验证登录。注意:注意:user1和和user2权限很有限
28、,还需授权。如:此时在权限很有限,还需授权。如:此时在user1或者或者user2登录的情况下,键入登录的情况下,键入show databases;命令,将显示不出命令,将显示不出mydb1数据库,即数据库,即user1或者或者user2没有对没有对mydb1数据库操作的权限。数据库操作的权限。DCL知识知识-给用户授权2.给用户授权给用户授权 (使用(使用root登录(此时权限最大),而后进行用户授权操登录(此时权限最大),而后进行用户授权操作)作)(1)GRANT 权限权限1, , 权限权限n ON 数据库数据库.* TO 用户名用户名IP地址地址 权限、用户、数据库权限、用户、数据库 给
29、用户分派在指定的数据库上的指定的权限给用户分派在指定的数据库上的指定的权限 例如例如:GRANT CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT ON mydb1.* TO user1localhost;l 给给user1用户分派在用户分派在mydb1数据库上的数据库上的create、alter、drop、insert、update、delete、select权限权限。l此时在此时在user1登录的情况下,键入登录的情况下,键入show databases;命令,将能够显命令,将能够显示出示出mydb1数据库,即数据库,即user1拥有了对拥有了对m
30、ydb1数据库操作的权限数据库操作的权限 同样可以进行同样可以进行select等操作。等操作。DCL知识知识-给用户授权2.给用户授权给用户授权 (使用(使用root登录(此时权限最大),而后进行登录(此时权限最大),而后进行用户授权操作)用户授权操作) (2)GRANT ALL ON 数据库数据库.* TO 用户名用户名IP地址地址; 给用户分派指定数据库上的所有权限给用户分派指定数据库上的所有权限。例如:例如:GRANT ALL ON mydb1.* TO user2localhost; l此时在此时在user2登录的情况下,键入登录的情况下,键入show databases;命令,命令,
31、将能够显示出将能够显示出mydb1数据库,即数据库,即user2拥有了对拥有了对mydb1数数据库操作的权限,同样可以进行据库操作的权限,同样可以进行select等操作。等操作。DCL知识知识- 撤销授权3. 撤销授权撤销授权 (使用(使用root登录(此时权限最大),而登录(此时权限最大),而后进行后进行撤销授权撤销授权操作)操作)REVOKE 权限权限1, , 权限权限n ON 数据库数据库.* FROM 用用户名户名IP地址地址; 撤消指定用户在指定数据库上的指定权限撤消指定用户在指定数据库上的指定权限 例如;例如;REVOKE CREATE,ALTER,DROP ON mydb1.*
32、FROM user1localhost; 撤消撤消user1用户在用户在mydb1数据库上的数据库上的create、alter、drop权限权限DCL知识知识- 撤销授权3. 撤销授权撤销授权 (使用(使用root登录(此时权限最大),而后进行登录(此时权限最大),而后进行撤撤销授权销授权操作)操作)例如例如:REVOKE delete ON mydb1.* FROM user1localhost; 验证方法验证方法:使用:使用user1登录登录,而后切换到,而后切换到mydb1数据库数据库,执,执行行delete操作将错误。具体如下:操作将错误。具体如下:(1)mysql -uuser1 -
33、p123(2) use mydb1;(3)delete from stu;DCL知识知识- 查看权限4. 查看权限查看权限 (使用(使用root登录(此时权限最大),而后进行登录(此时权限最大),而后进行查看权限查看权限操作)操作) SHOW GRANTS FOR 用户名用户名IP地址地址 查看指定用户的权限查看指定用户的权限如:如:SHOW GRANTS FOR user1localhost; DCL知识知识- 删除用户5. 删除用户删除用户 (使用(使用root登录(此时权限最大),而后进行登录(此时权限最大),而后进行删除用户删除用户操作)操作) DROP USER 用户名用户名IP地址
34、地址如:如:DROP USER user1localhost; 此时再用user1登录将出错。DQL就是数据查询语言,数据库执行就是数据查询语言,数据库执行DQL语句不会语句不会对数据进行改变,而是让数据库发送结果集给客对数据进行改变,而是让数据库发送结果集给客户端。户端。 创建学生表:stu 字段名称字段名称字段类型字段类型说明说明sidchar(6)学生学号学生学号snamevarchar(50)学生姓名学生姓名ageint学生年龄学生年龄gendervarchar(50)学生性别学生性别DQL知识知识- 准备工作DQL知识知识- 准备工作创建代码:CREATE TABLE stu (si
35、d CHAR(6),snameVARCHAR(50),ageINT,genderVARCHAR(50); DQL知识知识- 准备工作插入记录:lINSERT INTO stu VALUES(S_1001, liuYi, 35, male);lINSERT INTO stu VALUES(S_1002, chenEr, 15, female);lINSERT INTO stu VALUES(S_1003, zhangSan, 95, male);lINSERT INTO stu VALUES(S_1004, liSi, 65, female);lINSERT INTO stu VALUES(S_
36、1005, wangWu, 55, male);lINSERT INTO stu VALUES(S_1006, zhaoLiu, 75, female);lINSERT INTO stu VALUES(S_1007, sunQi, 25, male);lINSERT INTO stu VALUES(S_1008, zhouBa, 45, female);lINSERT INTO stu VALUES(S_1009, wuJiu, 85, male); lINSERT INTO stu VALUES(S_1010, zhengShi, 5, female);lINSERT INTO stu VA
37、LUES(S_1011, xxx, NULL, NULL); 创建雇员表:empDQL知识知识- 准备工作字段名称字段名称字段类型字段类型说明说明empnoint员工编号员工编号enamevarchar(50)员工姓名员工姓名jobvarchar(50)员工工作员工工作mgrint领导编号领导编号hiredatedate入职日期入职日期saldecimal(7,2)月薪月薪commdecimal(7,2)奖金奖金deptnoint部分编号部分编号DQL知识知识- 准备工作创建代码:CREATE TABLE emp(empnoINT,enameVARCHAR(50),jobVARCHAR(50)
38、,mgrINT,hiredateDATE,salDECIMAL(7,2),commdecimal(7,2),deptnoINT) ; DQL知识知识- 准备工作插入记录:lINSERT INTO emp VALUES (1009, zenganiu, chairman, NULL, 2001-11-17, 50000, NULL, 10);lINSERT INTO emp VALUES (1004, liubei, manager, 1009, 2001-04-02, 29750, NULL, 20);lINSERT INTO emp VALUES (1006, guanyu, manager
39、, 1009, 2001-05-01, 28500, NULL, 30);lINSERT INTO emp VALUES (1007, zhangfei, manager, 1009, 2001-09-01, 24500, NULL, 10);lINSERT INTO emp VALUES (1008, zhugeliang, analyst, 1004, 2007-04-19, 30000, NULL, 20);lINSERT INTO emp VALUES (1013, pangtong, analyst, 1004, 2001-12-03, 30000, NULL, 20);DQL知识知
40、识- 准备工作lINSERT INTO emp VALUES (1002, daiyisi, salesman, 1006, 2001-02-20, 16000, 3000, 30);lINSERT INTO emp VALUES (1003, yintianzheng, salesman, 1006, 2001-02-22, 12500, 5000, 30);lINSERT INTO emp VALUES (1005, xiexun, salesman, 1006, 2001-09-28, 12500, 14000, 30);lINSERT INTO emp VALUES (1010, we
41、iyixiao, salesman, 1006, 2001-09-08, 15000, 0, 30);lINSERT INTO emp VALUES (1012, chengpu, clerk, 1006, 2001-12-03, 9500, NULL, 30);lINSERT INTO emp VALUES (1014, huanggai, clerk, 1007, 2002-01-23, 13000, NULL, 10);lINSERT INTO emp VALUES (1011, zhoutai, clerk, 1008, 2007-05-23, 11000, NULL, 20);lIN
42、SERT INTO emp VALUES (1001, ganning, clerk, 1013, 2000-12-17, 8000, NULL, 20);创建部分表:dept DQL知识知识- 准备工作字段名称字段名称字段类型字段类型说明说明deptnoint部分编码dnamevarchar(50)部分名称locvarchar(50)部分所在地点DQL知识知识- 准备工作创建代码:CREATE TABLE dept(deptnoINT,dnamevarchar(50),locvarchar(50); DQL知识知识- 准备工作插入记录:lINSERT INTO dept VALUES (10
43、, jiaoyanbu, beijing);lINSERT INTO dept VALUES (20, xuegongbu, shanghai);lINSERT INTO dept VALUES (30, xiaoshoubu, guangzhou);lINSERT INTO dept VALUES (40, caiwubu, wuhan);DQL知识知识-基本查询基本查询一、 基本查询1. 字段(列)控制1) 查询所有列 SELECT * FROM 表名; 如:SELECT * FROM emp; - 其中“*”表示查询所有列DQL知识知识-基本查询基本查询2) 查询指定列SELECT 列1
44、 , 列2, . 列N FROM 表名;如: SELECT empno, ename, sal, comm FROM emp;DQL知识知识-基本查询基本查询3) 完全重复的记录只一次 当查询结果中的多行记录一模一样时,只显示一行。一般查询所有列时很少会有这种情况,但只查询一列(或几列)时,这总可能就大了! SELECT DISTINCT * | 列1 , 列2, . 列N FROM 表名;SELECT DISTINCT job FROM emp; SELECT DISTINCT deptno FROM emp;l- 保查询员工表的部门编号,如果存在相同的部门只显示一次!l注意:该操作并不删除
45、数据库中的重复记录,只是查询。DQL知识知识-基本查询基本查询4) 列运算(调节ms-dos窗口宽度的方法:单击左上角图标-属性-布局-窗口大小-宽度) . 数量类型的列可以做加、减、乘、除运算 例如: SELECT *,sal FROM emp; SELECT *,sal*1.5 FROM emp; SELECT *,sal+comm FROM emp;注意:任何数据+NULL=NULL,处理方法见下页。 ename+100=100,此时ename值处理成0。DQL知识知识-基本查询基本查询.转换NULL值 有时需要把NULL转换成其它值,例如com+1000时,如果com列存在NULL值,
46、那么NULL+1000还是NULL,而我们这时希望把NULL处理为0来运算。SELECT *,sal+IFNULL(comm, 0) FROM emp;说明:IFNULL(comm, 0):如果comm中存在NULL值,那么当成0来运算。又如:select empno,ename,job,ifnull(mgr,boss),hiredate,sal,comm,deptno from emp;DQL知识知识-基本查询基本查询 .字符串类型可以做连续运算。lJava中字符串连接符号为+;lOracle中字符串连接符号为|;lMySQL中字符串连接符号为CONCAT ; 例如:SELECT CONCA
47、T($, sal) FROM emp;又如:select concat(ename,job) from emp;select concat(my name is ,ename, my job is ,job) from emp;DQL知识知识-基本查询基本查询 . 给列起别名 你也许已经注意到了,当使用列运算后,查询出的结果集中的列名称很不好看,这时我们需要给列名起个别名,这样在结果集中列名就显示别名了 SELECT *,sal+IFNULL(comm, 0) AS jiangjin FROM emp; - 其中AS可以省略又如: select concat(my name is ,ename
48、, my job is ,job) as descr from emp;DQL知识知识-基本查询基本查询 . 给列起别名 以下两者等价:select ename as name,job as work from emp;等价于:select ename name,job work from emp;问题: select empno,ename job,sal,comm from emp;是否有错,结果如何?DQL知识知识-基本查询基本查询2、 条件控制1)条件查询l与前面介绍的UPDATE和DELETE语句一样,SELECT语句也可以使用WHERE子句来控制记录。说明:条件必须是一个boole
49、an类型的值或表达式;运算符:=、!=(不等于)、 (不等于) 、=、 10000 AND comm IS NOT NULL;lSELECT empno,ename,sal FROM emp WHERE sal BETWEEN 20000 AND 30000;lSELECT empno,ename,job FROM emp WHERE job IN (chairman, manager);DQL知识知识-基本查询基本查询2) 模糊查询l当你想查询姓名中以“Z”开头,并且名字包含7个字符的员工时,就可以使用模糊查询: SELECT * FROM emp WHERE ename LIKE z_;l
50、 注意: 模糊查询需要使用运算符:LIKE,其中_匹配一个任意字符,注意,只匹配一个字符而不是多个。l SELECT * FROM emp WHERE ename LIKE _; 表示姓名由6个字符组成的员工。DQL知识知识-基本查询基本查询2 )模糊查询l如果想查询姓名中以“Z”开头的所有员工(姓名中字符个数任意),就要使用“%”了。 SELECT * FROM emp WHERE ename LIKE z%; 注意:其中%匹配0n个任意字符。l 查询姓名中包含“Z”的所有员工。 lSELECT * FROM emp WHERE ename LIKE %z%; 注意:千万不要认为上面语句是在
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。