加快网站速度吗,微信营销系统,阳春做网站,石家庄高端网站建设第9章 SQL数据的查询操作 #x1f389;学习指引 数据库管理系统的一个最重要的功能就是提供数据查询。 数据查询不是简单返回数据库中存储的数据#xff0c;而是根据业务需求对数据进行筛选#xff0c;以及让数据以怎样的方式呈现。 本章将详细介绍SQL数据的查询操作。主要内…  第9章 SQL数据的查询操作 学习指引 数据库管理系统的一个最重要的功能就是提供数据查询。 数据查询不是简单返回数据库中存储的数据而是根据业务需求对数据进行筛选以及让数据以怎样的方式呈现。 本章将详细介绍SQL数据的查询操作。主要内容包括简单查询、条件查询、聚合函数查询、嵌套查询等。 9.1 数据的简单查询 一般来讲简单查询是指对一张表的查询操作使用关键字SELECT。 9.1.1 查看表中的全部数据 select查询记录最简单的形式是从一张表中检索所有记录使用星号“*”通配符实现。 select * from table_name 为了演示该查询我们在mydatabase数据库中创建一张员工表employee信息如下 员工表employee结构  字段名  字段说明  数据类型  主键  外键  非空  唯一  code  员工编号  int  是  否  是  是  name  员工姓名  varchar(50)  否  否  是  否  sex  员工性别  char(2)  否  否  否  否  deptcode  部门编码  int  否  否  是  否  job  职位  varchar(50)  否  否  是  否  salary  薪水  int  否  否  是  否  hiredate  入职日期  date  否  否  是  否  use mydatabase
create table employee
(code int primary key, --标明主键说明该字段既非空也唯一name varchar(20) not null,sex char(2),deptcode int not null,job varchar(50) not null,salary int not null 
)   创建好数据表后在表名上鼠标右键单击该表的“编辑前200行”快捷菜单命令进入编辑模式向表中录入一些记录值。     我们也可以通过SQL语句来添加记录,语句如下 insert into table_name
values(col_name1,col_name2,col_name3,...) 那么上面的数据我们就可以这样写 insert into employee
values(101,李宇恒,男,2,文员,3000),(102,王丽芬,女,3,销售员,2500),.....(112,尚琳琳,女,3,文员,3000) 员工编号103至111的数据信息我在此就省略不写了。 输入完成后全选执行即可添加完成。 当然向数据表内添加数据的语句规则远不止这样以后我们再后面章节详述。 数据有了下面开始我们的简单查询。 例从employee表中查询所有字段数据记录 select * from employee --前提是已在mydatabase数据库下如果不是需要提前切换   从结果中可以知晓使用星号“*”通配符时将返回所有数据记录数据记录按照定义表的顺序显示。 9.1.2 查看表中想要的数据 查询表中所有数据记录非常简单但是如果每次都要查询表中的所有记录就会影响查询效率尤其是在表中数据比较多的情况下这时就可以使用select语句来获取指定字段的数据信息语法如下 select column1,column2,...columnN from table_name 例从employee表中查找name、job、salary三列在“查询编辑器”窗口中输入 select name,job,salary from employee   注意SQL Server中的SQL语句是不区分大小写的因此select和SELECT的作用一致但是许多开发人员习惯将关键字使用大写而数据列和表名使用小写。  我们也应该养成一个良好的编程习惯这样写出来的代码更容易阅读和维护。  9.1.3 使用TOP查询表中的前几行 使用TOP关键字可以限制显示的结果数量帮助用户每次返回查询结果的前N行其语法格式如下 SELECT TOP [N|PERCENT] FROM table_name 各参数说明 N从查询结果集中返回的行数PERCENT从结果集中返回的百分比数目的行 例查询数据表employee中所有的记录但只显示前5条 SELECT TOP 5 * FROM employee   例查询数据表employee中前50%的记录 SELECT TOP 50 PERCENT * FROM employee   9.1.4 给查询结果中的列换个名称 在查询结果中看到的列标题就是数据表中的列名如果不是表的设计者别人很难理解其含义那么如何才能让别人很容易就能读懂呢在SQL Server中可以使用给列定义列名的方法来完成。 具体的方法有以下三种 9.1.4.1 使用AS关键字给列设置别名 在列名表达式后面跟一个AS关键字后再接一个字符串为表达式指定别名AS关键字也可以省略 SELECT col_name1 AS 别名1,col_name2 AS 别名2,...FROM table_name 各参数说明 col_name1为表中的字段名称别名为字段设置的别名单引号可以忽略 例查询employee表为name取别名为“员工姓名”salary取别名为“基本工资”语法如下 SELECT name AS 员工姓名,salary AS 基本工资 FROM employee   9.1.4.2 使用等号“”给列设置别名 在列名的前面使用等号“”为列表达式指定别名别名的单引号也可以忽略语法如下 SELECT 别名1col_name1,别名2col_name2,...FROM table_name 例查询employee表为name取别名为“员工姓名”salary取别名为“基本工资”语法如下 SELECT 员工姓名name,基本工资salary FROM employee   9.1.4.3 使用空格给列设置别名 语法如下 SELECT col_name1 别名1,col_name2 别名2,...FROM table_name 例查询employee表为name取别名为“员工姓名”salary取别名为“基本工资”语法如下 SELECT name 员工姓名,salary 基本工资 FROM employee   同样别名的单引号也可以忽略。 9.1.5 在查询时去除重复的结果 在查询时有时希望去除一些重复的数据方便查看。 这时只需要在SELECT语句后面加上DISTINCT关键字。 例查询employee表显示员工的工作职位并除去重复的信息语句如下 SELECT DISTINCT job 职务 FROM employee   结果只返回了7条值而且没有重复记录。 9.1.6 查询的列为表达式 在SELECT查询结果中可以根据需要使用算术运算符或逻辑运算符对查询的结果进行处理。 例查询employee表中所有员工的姓名与基本工资并对基本工资加上500元后再输出 SELECT name 员工姓名,salary 原工资,salary500 现工资 FROM employee   9.1.7 查询结果也能进行排序 对查询结果进行排序要使用ORDER BY语句并且可以指定排序方式具体语法如下 SELECT col_name1,col_name2,...FROM table_name ORDER BY col_name1 DESC|ASC,col_name2 DESC|ASC... 各参数说明 DESC降序排列ASC升序排序 例查询employee表中所有员工的基本工资并按照由高到低的顺序进行排序 SELECT * FROM employee ORDER BY salary DESC   提示  ORDER BY子句也可以对查询结果惊醒升序排列升序排列是默认的排序方式在使用ORDER BY 子句升序排列时可以使用ASC关键字也可忽略掉该关键字如下如所示