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

网站运营推广难做吗网络推广软件哪个好

网站运营推广难做吗,网络推广软件哪个好,网站制作自学百度云,手机制作网站开发目录 表的增删查改Insert#xff08;插入#xff09;插入替换插入替换2 Retrieve#xff08;查找#xff09;SELECT 列全列查找指定列查询查询字段为表达式为查询结果指定别名结果去重 WHERE 条件order by子句筛选分页结果 Update#xff08;更新#xff09;delete#… 目录 表的增删查改Insert插入插入替换插入替换2 Retrieve查找SELECT 列全列查找指定列查询查询字段为表达式为查询结果指定别名结果去重 WHERE 条件order by子句筛选分页结果 Update更新delete删除删除数据截断表 插入查询结果聚合函数分组聚合group by子句的使用包含oracle 9i的经典测试表 表的增删查改 表的增删查改也可简写为CRUDCreate创建Retrieve读取Update更新Delete删除 Insert插入 语法 INSERT[INTO] table_name [(column [, column] ...)] VALUES (value_list) [, (value_list)]... value_list: value, [, value] .. 示例 也可以多列插入 插入替换 如果插入时已经存在了希望能更改原来的内容而不是直接报错拦截。 语法 INSERT ... ON DUPLICATE KEY UPDATE column value [, column value] ...示例 插入成功后会返回 2 rows affected这是什么意思呢 0 rows affected表中有冲突数据但冲突数据的值和update的值相等 1 rows affected表中没有冲突数据数据被插入 2 rows affected表中有冲突数据并且数据已经被更新 插入替换2 语法 REPLACE INTO table_name [(column [, column] ...)] VALUES (value_list) [, value_list]...replace的特点 没有冲突则直接插入 如果有冲突则删除后再插入。注意这里与替换不同。 示例 没有冲突则直接插入 有冲突则删除后再插入。 可以看到他的id变了说明不是直接替换而是删除后再插入。 Retrieve查找 语法 SELECT[DISTINCT] {* | {column [, column] ...}[FROM table_name][WHERE ...][ORDERBY column] [ASC | DESC], ...]LIMIT ...先创建一个表 SELECT 列 全列查找 通常情况下不建议使用 * 进行全列查询。因为 1。查询的列越多意味着需要传输的数据量越大 2。可能会影响到索引的使用。 示例 指定列查询 按照你的需求从表中拿出数据 示例 查询字段为表达式 select后面不仅能跟列属性也能跟表达式。 示例 为查询结果指定别名 有些时候我们查询到结果的时候想给列名字重命名。 示例 结果去重 示例 WHERE 条件 有些时候我们想根据我们的需求对结果进行筛选比如有需求筛选出成绩及格和成绩不及格的。就需要用where条件了where可以看做我们学C/C时的if语句。 比较运算符说明, , , 大于大于等于小于小于等于等于操作NULL时不安全例如NULLNULL的结果是NULL等于NULL安全例如NULL NULL结果是TRUE(1)!, 不等于BETWEEN a0 AND a1范围匹配[a0, a1], 如果a0 value a1, 返回TRUE(1)IN (option, …)如果是option中的任意一个返回TRUE(1)IS NULL是NULL 返回TRUE(1)IS NOT NULL不是NULL 返回TRUE(1)LIKE模糊匹配。%表示任意多个(包括0个)任意字符_表示任意一个字符 逻辑运算符说明AND多个条件必须都为TRUE(1)结果才是TRUE(1)OR任意一个条件为TRUE(1)结果为TRUE(1)NOT条件为TRUE(1)结果为FALSE(0) 示例 1.英语不及格的同学及英语成绩 ( 60 ) 2.语文成绩在[80, 90]分的同学及语文成绩 使用 AND 进行条件连接 使用 BETWEEN … AND …条件 3.数学成绩是58或者59或者98或者99分的同学及数学成绩 使用OR进行条件连接 使用IN条件 4.姓孙的同学及孙某同学 姓孙的同学 孙某同学 5.语文成绩好于英语成绩的同学 where后面可以跟表达式一个列可以和另一个列比较也可以和常数比较也可以和字符串比较也可以模糊匹配。 6.总分在200分以下的同学 之前不是说可以对列进行重命名吗那来试一下。 为什么报错了报错显示total未找到未知列。 这是因为select有执行顺序。select的执行顺序到底是怎么样的。 所以重命名并不能在where中被识别 7.语文成绩 大于 80并且不姓孙的同学 8.孙某同学否则要求总成绩 大于 200 并且 语文成绩 小于 数学成绩 并且 英语成绩 大于 80 order by子句 语法 --ASC 为升序从小到大 --DESC 为降序从大到小 --默认为 ASC SELECT ... FROM table_name [WHERE ...] ORDER BY column [ASC | DESC], [...];注意没有ORDER BY 子句的查询返回的顺序是未定义的永远不要依赖这个顺序 示例 1.同学及数学成绩按数学成绩升序显示 2.查询同学各门成绩依次按数学降序英语升序语文升序的方式显示 解析以数学降序来排序如果数学成绩相等则按照英语升序来排序如果英语成绩相等则按照语文升序来排序 3.查询同学及总分由高到低 之前讲过where后面不能使用别名为什么这里又能使用别名了 所以我们还需要搞清楚语句执行的顺序是怎么样的。 1.from 表名 2.where子句筛选条件 3.select筛选出需要哪些属性 4.order by排序 5.最后显示到屏幕 4.查询姓孙的同学或者姓曹的同学数学成绩结果按数学成绩由高到低显示 筛选分页结果 语法 -- 起始下标为 0-- 从 0 开始筛选 n 条结果 SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;-- 从 s 开始筛选 n 条结果 SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n;-- 从 s 开始筛选 n 条结果比第二种用法更明确建议使用 SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;建议对未知表进行查询时最好加一条 LIMIT 1避免因为表中数据过大查询全表数据导致数据库卡死 示例 按 id 进行分页每页 3 条记录 分别显示第 1、2、3 页 第 1 页 第 2 页 第 3 页 我们在平时在网页上鼠标点击页数在数据库层面就会被转换为以上操作。 Update更新 update的时候本质是先查询出数据再修改。也就是先把select替换update操作再进行修改。言外之意就是执行update的顺序是放在最后的。 语法 UPDATE table_name SET column expr [, column expr ...] [WHERE ...] [ORDER BY ...] [LIMIT ...]示例 1.将孙悟空同学的数学成绩变更为 80 分 查看原数据 数据更新 2.将曹孟德同学的数学成绩变更为60分语文成绩变更为70分 3.将总成绩倒数前三的 3 位同学的数学成绩加上 30 分 注意update搭配limit使用时只能如下操作因为UPDATE 语句本身不支持使用 ORDER BY 和 LIMIT 来指定更新的行因为数据库引擎不知道如何基于这些排序和限制条件来正确地应用更新。 4.将所有同学的语文成绩更新为原来的 2 倍 注意如果没有where子句的筛选一定要慎用update delete删除 语法 DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]删除数据 示例 1.删除孙悟空同学的考试成绩 2.删除整张表的数据 注意该操作要谨慎操作一定是确定了这些数据不要了才能删除。 可以看到删除了表的内容但表的结构还是auto_increment没有变仍然是4。 删除表中的数据还有一种做法 截断表 语法 TRUNCATE [TABLE] table_name示例 发现truncate使auto_increment重置了。 truncate的特点与delete的区别 1.只能对整表操作不能像DELETE一样正对部分数据操作。 2.比DELETE执行执行速度更快但是TRUNCATE在删除数据的时候并不经过真正的事务所以无法回滚。 3.会重置AUTO_INCREMENT项。 插入查询结果 语法 INSERT INTO table_name [(column [, column ...])] SELECT ...示例删除表中的重复记录重复的数据只能有一份 创建原数据表 这不就去重了吗这只是查找时的去重并没有影响原始表。 那要如何做呢 创建一个新表将查询到去重的结果再插入到新表中将要去重的表备份即重命名再将新表重命名为要去重表的名字。 1.创建和原表结构一样的表 2.把select的去重数据筛出来插入到新表 3.备份重命名 我们在上传10G文件到A目录的时候有两个方案 1。直接将10G文件传到A目录并且要保证原子性要让整个上传文件的过程保证他是原子态的传输状态这是非常慢的。 2。将10G文件预处理传输到临时目录下最后一步直接mv到A目录。只需保证最后一步mv是原子态即可。 第二种方案的操作是更推荐的因为第二种的方法更比第一种更轻量。 这也就是为什么我们数据去重的时候使用rename的方式而不是直接对原表进行操作因为采用原子性的时候rename的方式能使效率更高。 聚合函数 为什么叫聚合函数因为每一行函数执行出来的值相同所以能被聚合压缩。 比如 如果把 1 1 看做一个函数每一行执行出来的结果都为2因为很多行的结果都是一样的所以能被聚合压缩成一行。这就是聚合压缩。 函数说明COUNT([DISTINCT] expr)返回查询到的数据的数量SUM([DISTINCT] expr)返回查询到的数据的总和不是数字没有意义AVG([DISTINCT] expr)返回查询到的数据的平均值不是数字没有意义MAX([DISTINCT] expr)返回查询到的数据的最大值不是数字没有意义MIN([DISTINCT] expr)返回查询到的数据的最小值不是数字没有意义 示例 1.统计班级共有多少同学 使用 * 做统计 使用 表达式 做统计 2.统计数学成绩的个数 执行的顺序是先统计再去重 这样才能先去重再统计 3.统计数学成绩的总分 4.统计数学成绩平均分 5.统计数学平均分 我也想显示每个人的名字和数学成绩和平均数学成绩对比。 为什么报错了 对于每个人来说平均成绩是一样的所以平均成绩可以聚合。但是name对于每一个来说不是一样的所以name的记录不能够被压成一个记录所以没办法做聚合。那具体要如何做呢后面会讲。 分组聚合 分组是将某个属性记录相同的分为同一组。聚合函数针对的是组不是表组是表的划分。 分组的目的是为了进行分组之后方便进行聚合统计 group by子句的使用包含oracle 9i的经典测试表 语法 select column1, column2, ... from table group by column;准备工作创建一个雇员信息表来自oracle 9i的经典测试表 EMP员工表DEPT部门表SALGRADE工资和最高工资 DROP database IF EXISTS scott; CREATE database IF NOT EXISTS scott DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;USE scott;DROP TABLE IF EXISTS dept; CREATE TABLE dept (deptno int(2) unsigned zerofill NOT NULL COMMENT 部门编号,dname varchar(14) DEFAULT NULL COMMENT 部门名称,loc varchar(13) DEFAULT NULL COMMENT 部门所在地点 );DROP TABLE IF EXISTS emp; CREATE TABLE emp (empno int(6) unsigned zerofill NOT NULL COMMENT 雇员编号,ename varchar(10) DEFAULT NULL COMMENT 雇员姓名,job varchar(9) DEFAULT NULL COMMENT 雇员职位,mgr int(4) unsigned zerofill DEFAULT NULL COMMENT 雇员领导编号,hiredate datetime DEFAULT NULL COMMENT 雇佣时间,sal decimal(7,2) DEFAULT NULL COMMENT 工资月薪,comm decimal(7,2) DEFAULT NULL COMMENT 奖金,deptno int(2) unsigned zerofill DEFAULT NULL COMMENT 部门编号 );DROP TABLE IF EXISTS salgrade; CREATE TABLE salgrade (grade int(11) DEFAULT NULL COMMENT 等级,losal int(11) DEFAULT NULL COMMENT 此等级最低工资,hisal int(11) DEFAULT NULL COMMENT 此等级最高工资 );insert into dept (deptno, dname, loc) values (10, ACCOUNTING, NEW YORK); insert into dept (deptno, dname, loc) values (20, RESEARCH, DALLAS); insert into dept (deptno, dname, loc) values (30, SALES, CHICAGO); insert into dept (deptno, dname, loc) values (40, OPERATIONS, BOSTON);insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (7369, SMITH, CLERK, 7902, 1980-12-17, 800, null, 20);insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (7499, ALLEN, SALESMAN, 7698, 1981-02-20, 1600, 300, 30);insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (7521, WARD, SALESMAN, 7698, 1981-02-22, 1250, 500, 30);insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (7566, JONES, MANAGER, 7839, 1981-04-02, 2975, null, 20);insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (7654, MARTIN, SALESMAN, 7698, 1981-09-28, 1250, 1400, 30);insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (7698, BLAKE, MANAGER, 7839, 1981-05-01, 2850, null, 30);insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (7782, CLARK, MANAGER, 7839, 1981-06-09, 2450, null, 10);insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (7788, SCOTT, ANALYST, 7566, 1987-04-19, 3000, null, 20);insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (7839, KING, PRESIDENT, null, 1981-11-17, 5000, null, 10);insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (7844, TURNER, SALESMAN, 7698,1981-09-08, 1500, 0, 30);insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (7876, ADAMS, CLERK, 7788, 1987-05-23, 1100, null, 20);insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (7900, JAMES, CLERK, 7698, 1981-12-03, 950, null, 30);insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (7902, FORD, ANALYST, 7566, 1981-12-03, 3000, null, 20);insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (7934, MILLER, CLERK, 7782, 1982-01-23, 1300, null, 10);insert into salgrade (grade, losal, hisal) values (1, 700, 1200); insert into salgrade (grade, losal, hisal) values (2, 1201, 1400); insert into salgrade (grade, losal, hisal) values (3, 1401, 2000); insert into salgrade (grade, losal, hisal) values (4, 2001, 3000); insert into salgrade (grade, losal, hisal) values (5, 3001, 9999);直接粘贴复制即可 示例 1.显示每个部门的平均工资和最高工资 group by deptno将相同的deptno分为了一组组内的一定deptno一定是相同的所以可以被聚合压缩 2.显示每个部门的每种岗位的平均工资和最低工资。 group by deptno, job首先根据group by分为几个组再根据job将这几个组分为更多的组。 显示平均工资低于2000的部门和它的平均工资 having是对聚合后的统计数据再条件筛选。 having 和 where 的区别如何理解只是执行的顺序不同。 示例显示平均工资低于2000的部门和它的平均工资但SMITH员工不参与统计 执行顺序 1.from子句 2.where子句 3.group by子句 4.执行聚合函数重命名 5.having子句 6.select子句选择显示指定列 所以having和where的区别就是执行的顺序不同 总结 不要单纯的认为只有存入磁盘的表才叫表中间筛选出来的中途显示出来的表也叫表这些全部都是逻辑上的表。所以也可以总结出一句话“MySQL一切皆表”。
http://www.hkea.cn/news/14490750/

相关文章:

  • 在哪个网站做流动补胎的广告好建立企业网站方案
  • 古典风格中药医药企业网站模板源码flash个人网站动画
  • 广州购物网站开发php网站开发技巧
  • 电子商务网站建设过程报告导购网站如何做免费推广
  • 给个网站可以在线wordpress导航主题模板
  • win10 做网站服务器潜江资讯网官网
  • 网站建设 计入哪个科目wordpress开头
  • 蚌埠 网站制作济南建设档案大厦
  • 东莞网站建设曼哈顿信科wordpress页面文本编辑评论
  • 四川seo整站优化费用分类信息网
  • 小型企业类网站开发公司建设网站多少钱 2017
  • 手机网站 制作深圳 购物商城网站建设
  • 通州青岛网站建设知名网站建设制作
  • 网站建设招代理平台设计公司
  • 不合理的网站网站开发基本要求
  • 按颜色分类的网页设计欣赏网站wordpress 主题语言
  • html5 php网站源码下载上传文件后网站建设中
  • 中企动力 网站模板做360网站中保存的图片存在哪里的
  • 保山市住房和城乡建设局门户网站wordpress cpu占用高
  • 可以做内容的网站网站后台灰色
  • php 判断 $_get 然后跳转到相印的网站php网站开发软件是什么
  • 校园网站建设素材松原建设工程交易中心网站
  • 深圳网站建设专家域名访问网站怎么下载
  • 珠海网站建设那家好一个商务宣传怎么做网站合适
  • 网站整体建设方案设计seo快速排名软件网址
  • php网站开发技术题目小程序外包公司发展前景
  • 郴州微网站建设做网站代理怎么样
  • 深圳做网站乐云seo598四川建设人力资源网官网
  • 专业版装修用什么网站做导航条门户网站建设
  • seo网站建设时文章频率苏州高端企业网站建设