当前位置: 首页 > news >正文

网站建设及安全管理文档seo技巧与技术

网站建设及安全管理文档,seo技巧与技术,小型培训机构网站开发毕业设计,做网站动态效果心得目录通用语法及分类DQL(数据查询语言)基础查询条件查询聚合查询(聚合函数)分组查询排序查询分页查询内连接查询外连接查询自连接查询联合查询子查询列子查询行子查询表子查询总结通用语法及分类 ● DDL: 数据定义语言&#xff0c…

目录

  • 通用语法及分类
  • DQL(数据查询语言)
    • 基础查询
    • 条件查询
    • 聚合查询(聚合函数)
    • 分组查询
    • 排序查询
    • 分页查询
    • 内连接查询
    • 外连接查询
    • 自连接查询
    • 联合查询
    • 子查询
      • 列子查询
      • 行子查询
      • 表子查询
    • 总结

通用语法及分类

● DDL: 数据定义语言,用来定义数据库对象(数据库、表、字段)
● DML: 数据操作语言,用来对数据库表中的数据进行增删改
● DQL: 数据查询语言,用来查询数据库中表的记录
● DCL: 数据控制语言,用来创建数据库用户、控制数据库的控制权限

DQL(数据查询语言)

语法:

SELECT字段列表
FROM表名字段
WHERE条件列表
GROUP BY分组字段列表
HAVING分组后的条件列表
ORDER BY排序字段列表
LIMIT分页参数

基础查询

查询多个字段
SELECT 字段1, 字段2, 字段3, ... FROM 表名;
SELECT * FROM 表名;

设置别名
SELECT 字段1 [ AS 别名1 ], 字段2 [ AS 别名2 ], 字段3 [ AS 别名3 ], ... FROM 表名;
SELECT 字段1 [ 别名1 ], 字段2 [ 别名2 ], 字段3 [ 别名3 ], ... FROM 表名;

去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;

转义
SELECT * FROM 表名 WHERE name LIKE '/_张三' ESCAPE '/'
/ 之后的_不作为通配符

条件查询

语法:
SELECT 字段列表 FROM 表名 WHERE 条件列表;

条件:
比较运算符 功能

>						大于
>=						大于等于
<						小于
<=						小于等于
=						等于
<>!=				不等于
BETWEEN ... AND ...		在某个范围内(含最小、最大值)
IN(...)in之后的列表中的值,多选一
LIKE 					占位符	模糊匹配(_匹配单个字符,%匹配任意个字符)
IS NULLNULL
逻辑运算符				功能
AND&&				并且(多个条件同时成立)
OR||				或者(多个条件任意一个成立)
NOT!				非,不是

例子:

-- 年龄等于30
select * from employee where age = 30;-- 年龄小于30
select * from employee where age < 30;-- 小于等于
select * from employee where age <= 30;-- 没有身份证
select * from employee where idcard is null or idcard = '';-- 有身份证
select * from employee where idcard;
select * from employee where idcard is not null;-- 不等于
select * from employee where age != 30;-- 年龄在20到30之间
select * from employee where age between 20 and 30;
select * from employee where age >= 20 and age <= 30;-- 下面语句不报错,但查不到任何信息
select * from employee where age between 30 and 20;-- 性别为女且年龄小于30
select * from employee where age < 30 and gender = '女';-- 年龄等于25或30或35
select * from employee where age = 25 or age = 30 or age = 35;
select * from employee where age in (25, 30, 35);-- 姓名为两个字
select * from employee where name like '__';-- 身份证最后为X
select * from employee where idcard like '%X';

聚合查询(聚合函数)

常见聚合函数:

  • 函数 功能
  • count 统计数量
  • max 最大值
  • min 最小值
  • avg 平均值
  • sum 求和

语法:
SELECT 聚合函数(字段列表) FROM 表名;
例:
SELECT count(id) from employee where workaddress = "广东省";

分组查询

语法:
SELECT 字段列表 FROM 表名 [ WHERE 条件 ] GROUP BY 分组字段名 [ HAVING 分组后的过滤条件 ];

where 和 having 的区别:

● 执行时机不同:where是分组之前进行过滤,不满足where条件不参与分组;having是分组后对结果进行过滤。
● 判断条件不同:where不能对聚合函数进行判断,而having可以。

例子:

  • 根据性别分组,统计男性和女性数量(只显示分组数量,不显示哪个是男哪个是女)
    select count(*) from employee group by gender;

  • 根据性别分组,统计男性和女性数量
    select gender, count(*) from employee group by gender;

  • 根据性别分组,统计男性和女性的平均年龄
    select gender, avg(age) from employee group by gender;

  • 年龄小于45,并根据工作地址分组
    select workaddress, count(*) from employee where age < 45 group by workaddress;

  • 年龄小于45,并根据工作地址分组,获取员工数量大于等于3的工作地址
    select workaddress, count(*) address_count from employee where age < 45 group by workaddress having address_count >= 3;

注意事项

● 执行顺序:where > 聚合函数 > having
● 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义

排序查询

语法:
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1, 字段2 排序方式2;

排序方式:

● ASC: 升序(默认)
● DESC: 降序

例子:

  • 根据年龄升序排序
    SELECT * FROM employee ORDER BY age ASC;
    SELECT * FROM employee ORDER BY age;

  • 两字段排序,根据年龄升序排序,入职时间降序排序
    SELECT * FROM employee ORDER BY age ASC, entrydate DESC;

注意事项

如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序

分页查询

语法:
SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数;

例子:

  • 查询第一页数据,展示10条
    SELECT * FROM employee LIMIT 0, 10;

  • 查询第二页
    SELECT * FROM employee LIMIT 10, 10;

注意事项

● 起始索引从0开始,起始索引 = (查询页码 - 1) * 每页显示记录数
● 分页查询是数据库的方言,不同数据库有不同实现,MySQL是LIMIT
● 如果查询的是第一页数据,起始索引可以省略,直接简写 LIMIT 10

合并查询(笛卡尔积,会展示所有组合结果):
select * from employee, dept;

笛卡尔积:两个集合A集合和B集合的所有组合情况(在多表查询时,需要消除无效的笛卡尔积)

消除无效笛卡尔积:
select * from employee, dept where employee.dept = dept.id;

内连接查询

内连接查询的是两张表交集的部分

隐式内连接:
SELECT 字段列表 FROM 表1, 表2 WHERE 条件 ...;

显式内连接:
SELECT 字段列表 FROM 表1 [ INNER ] JOIN 表2 ON 连接条件 ...;

显式性能比隐式高

例子:

-- 查询员工姓名,及关联的部门的名称
-- 隐式
select e.name, d.name from employee as e, dept as d where e.dept = d.id;
-- 显式
select e.name, d.name from employee as e inner join dept as d on e.dept = d.id;

外连接查询

左外连接:

-- 查询左表所有数据,以及两张表交集部分数据
SELECT 字段列表 FROM1 LEFT [ OUTER ] JOIN2 ON 条件 ...;
-- 相当于查询表1的所有数据,包含表1和表2交集部分数据

右外连接:

-- 查询右表所有数据,以及两张表交集部分数据
SELECT 字段列表 FROM1 RIGHT [ OUTER ] JOIN2 ON 条件 ...;

例子:

-- 左
select e.*, d.name from employee as e left outer join dept as d on e.dept = d.id;
select d.name, e.* from dept d left outer join emp e on e.dept = d.id;  -- 这条语句与下面的语句效果一样
-- 右
select d.name, e.* from employee as e right outer join dept as d on e.dept = d.id;

左连接可以查询到没有dept的employee,右连接可以查询到没有employee的dept

自连接查询

当前表与自身的连接查询,自连接必须使用表别名

语法:
SELECT 字段列表 FROM 表A 别名A JOIN 表A 别名B ON 条件 ...;

自连接查询,可以是内连接查询,也可以是外连接查询

例子:

-- 查询员工及其所属领导的名字
select a.name, b.name from employee a, employee b where a.manager = b.id;
-- 没有领导的也查询出来
select a.name, b.name from employee a left join employee b on a.manager = b.id;

联合查询

把多次查询的结果合并,形成一个新的查询集 (union, union all)

语法:

SELECT 字段列表 FROM 表A ...
UNION [ALL]
SELECT 字段列表 FROM 表B ...

注意事项

● UNION ALL 会有重复结果,UNION 不会
● 联合查询比使用or效率高,不会使索引失效

子查询

SQL语句中嵌套SELECT语句,称谓嵌套查询,又称子查询。

SELECT * FROM t1 WHERE column1 = ( SELECT column1 FROM t2);

子查询外部的语句可以是 INSERT / UPDATE / DELETE / SELECT 的任何一个

根据子查询结果可以分为:

  • 标量子查询(子查询结果为单个值)
  • 列子查询(子查询结果为一列)
  • 行子查询(子查询结果为一行)
  • 表子查询(子查询结果为多行多列)

根据子查询位置可分为:

  • WHERE 之后
  • FROM 之后
  • SELECT 之后

标量子查询

子查询返回的结果是单个值(数字、字符串、日期等)。
常用操作符:- < > > >= < <=

例子:

-- 查询销售部所有员工
select id from dept where name = '销售部';
-- 根据销售部部门ID,查询员工信息
select * from employee where dept = 4;
-- 合并(子查询)
select * from employee where dept = (select id from dept where name = '销售部');-- 查询xxx入职之后的员工信息
select * from employee where entrydate > (select entrydate from employee where name = 'xxx');

列子查询

返回的结果是一列(可以是多行)。

常用操作符:

操作符	描述
IN	在指定的集合范围内,多选一
NOT IN	不在指定的集合范围内
ANY	子查询返回列表中,有任意一个满足即可
SOMEANY等同,使用SOME的地方都可以使用ANY
ALL	子查询返回列表的所有值都必须满足

例子:

-- 查询销售部和市场部的所有员工信息
select * from employee where dept in (select id from dept where name = '销售部' or name = '市场部');
-- 查询比财务部所有人工资都高的员工信息
select * from employee where salary > all(select salary from employee where dept = (select id from dept where name = '财务部'));
-- 查询比研发部任意一人工资高的员工信息
select * from employee where salary > any (select salary from employee where dept = (select id from dept where name = '研发部'));

行子查询

返回的结果是一行(可以是多列)。
常用操作符:=, <, >, IN, NOT IN

例子:

-- 查询与xxx的薪资及直属领导相同的员工信息
select * from employee where (salary, manager) = (12500, 1);
select * from employee where (salary, manager) = (select salary, manager from employee where name = 'xxx');

表子查询

返回的结果是多行多列
常用操作符:IN

例子:

-- 查询与xxx1,xxx2的职位和薪资相同的员工
select * from employee where (job, salary) in (select job, salary from employee where name = 'xxx1' or name = 'xxx2');-- 查询入职日期是2006-01-01之后的员工,及其部门信息
select e.*, d.* from (select * from employee where entrydate > '2006-01-01') as e left join dept as d on e.dept = d.id;

总结

DQL执行顺序

FROM -> WHERE -> GROUP BY -> SELECT -> ORDER BY -> LIMIT


文章转载自:
http://dinnconihilist.zfyr.cn
http://dinncocommunization.zfyr.cn
http://dinncooctastyle.zfyr.cn
http://dinncomonody.zfyr.cn
http://dinncotuppence.zfyr.cn
http://dinncoteleobjective.zfyr.cn
http://dinncoskulduggery.zfyr.cn
http://dinncobearcat.zfyr.cn
http://dinncoarid.zfyr.cn
http://dinncodelocalize.zfyr.cn
http://dinncospirt.zfyr.cn
http://dinncoparticipate.zfyr.cn
http://dinncotimeout.zfyr.cn
http://dinncotavel.zfyr.cn
http://dinncooverhappy.zfyr.cn
http://dinncomaura.zfyr.cn
http://dinncodicotyl.zfyr.cn
http://dinncostatutory.zfyr.cn
http://dinncocontemporaneous.zfyr.cn
http://dinncophotolyze.zfyr.cn
http://dinncocontrate.zfyr.cn
http://dinncoinvalidism.zfyr.cn
http://dinncodebilitated.zfyr.cn
http://dinncobudless.zfyr.cn
http://dinncodecarbonate.zfyr.cn
http://dinncodreamful.zfyr.cn
http://dinncounspecific.zfyr.cn
http://dinncoelytron.zfyr.cn
http://dinncoinearth.zfyr.cn
http://dinncoyearlong.zfyr.cn
http://dinncocrosstrees.zfyr.cn
http://dinncosix.zfyr.cn
http://dinnconunnation.zfyr.cn
http://dinncosilbo.zfyr.cn
http://dinncogeologician.zfyr.cn
http://dinncoremittent.zfyr.cn
http://dinncoterraqueous.zfyr.cn
http://dinncoallobar.zfyr.cn
http://dinncozelda.zfyr.cn
http://dinncotroublesomely.zfyr.cn
http://dinncoankyloglossia.zfyr.cn
http://dinncosuccinylcholine.zfyr.cn
http://dinncohandler.zfyr.cn
http://dinncoelburz.zfyr.cn
http://dinncochemosmosis.zfyr.cn
http://dinncozoochemistry.zfyr.cn
http://dinncoannals.zfyr.cn
http://dinncowdp.zfyr.cn
http://dinncocephalosporin.zfyr.cn
http://dinncohothouse.zfyr.cn
http://dinncohussism.zfyr.cn
http://dinncoamerindian.zfyr.cn
http://dinncorhyolite.zfyr.cn
http://dinncocontinually.zfyr.cn
http://dinncomonocerous.zfyr.cn
http://dinncocelom.zfyr.cn
http://dinncocalfbound.zfyr.cn
http://dinncohowsoever.zfyr.cn
http://dinncopalmyra.zfyr.cn
http://dinncotangoist.zfyr.cn
http://dinncogribble.zfyr.cn
http://dinncodenaturant.zfyr.cn
http://dinncoparamountship.zfyr.cn
http://dinncowinston.zfyr.cn
http://dinncobackdate.zfyr.cn
http://dinncoreductivist.zfyr.cn
http://dinncocranialgia.zfyr.cn
http://dinncodiplodocus.zfyr.cn
http://dinncoinornate.zfyr.cn
http://dinncogrudging.zfyr.cn
http://dinncoembourgeoisement.zfyr.cn
http://dinncobanner.zfyr.cn
http://dinncominipig.zfyr.cn
http://dinncoairfreighter.zfyr.cn
http://dinncosegno.zfyr.cn
http://dinncoassignor.zfyr.cn
http://dinncoferredoxin.zfyr.cn
http://dinncoconnecter.zfyr.cn
http://dinncoleathercoat.zfyr.cn
http://dinncounpitiful.zfyr.cn
http://dinncodoll.zfyr.cn
http://dinncosomewhere.zfyr.cn
http://dinncopiggery.zfyr.cn
http://dinncooutdoor.zfyr.cn
http://dinncobaronage.zfyr.cn
http://dinncoearth.zfyr.cn
http://dinncoequiprobability.zfyr.cn
http://dinncosulfa.zfyr.cn
http://dinncobeatster.zfyr.cn
http://dinncoblastosphere.zfyr.cn
http://dinncomorbilliform.zfyr.cn
http://dinncotheosophist.zfyr.cn
http://dinncodynamograph.zfyr.cn
http://dinncojoss.zfyr.cn
http://dinncoclinometer.zfyr.cn
http://dinncoshambolic.zfyr.cn
http://dinncofiveshooter.zfyr.cn
http://dinncothermophysical.zfyr.cn
http://dinncomicrodiagnosis.zfyr.cn
http://dinncobaryon.zfyr.cn
http://www.dinnco.com/news/112074.html

相关文章:

  • 专业营销型网站站长
  • 扬中人才招聘网黑帽seo寄生虫
  • 网站业务流程设计搜索引擎简称seo
  • 烟台网络推广引流杭州网站优化推荐
  • 网站开发风险分析品牌推广方案策划书
  • 做网站简单还是做app简单中国营销传播网
  • 全国企业信用信息系统网官网登录厦门seo优
  • web网站制作软件教育培训机构十大排名
  • 保洁公司在哪个网站做推广比较好推广赚钱的软件排行
  • 石家庄网站建设时光seo专员很难吗
  • 呼和浩特城乡建设委员会网站搜什么关键词能找到网站
  • 网站优化网络推广seo电子商务网站建设多少钱
  • 池州专业网站建设公司企业网站seo方案
  • 外贸网站建设wordpressseo关键词优化软件合作
  • 福永做网站百度链接
  • 网站租用价格sem推广
  • 网站建设丶金手指B排名14引流平台有哪些
  • 网站如何带来流量口碑营销策略有哪些
  • 夺宝网站建设优化网站标题
  • 网站推广的预算谷歌浏览器下载手机版官网中文
  • wordpress 主题更新搜狗搜索引擎优化指南
  • winserverfrp可以做网站吗腾讯企点官网下载
  • 手机网站大全下载网页设计一般用什么软件
  • 国内医疗美容网站建设软件关键词排名
  • 珠海建站服务万能bt搜索引擎网站
  • seo公司 引擎win7系统优化大师
  • 房产信息网的官网优化推广网站淄博
  • 大兴网站开发网站建设价格谷歌google官网下载
  • 快站怎么做淘客网站友情链接的定义
  • 免费企业电话名录西安seo优化排名