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

怡清源企业网站建设可行性分析重庆有哪些建设公司

怡清源企业网站建设可行性分析,重庆有哪些建设公司,小程序网站建站模板,怎么登录微信小程序平台MySQL笔记#xff1a; https://blog.csdn.net/2301_80220607/category_12971838.html?spm1001.2014.3001.5482 前言#xff1a; 前面我们已经学习了表的基本操作类型比如创建删除等和表的约束问题#xff0c;今天我们来讲解一下我们通过表可以实现的对数据的各项处理功能…MySQL笔记 https://blog.csdn.net/2301_80220607/category_12971838.html?spm1001.2014.3001.5482 前言 前面我们已经学习了表的基本操作类型比如创建删除等和表的约束问题今天我们来讲解一下我们通过表可以实现的对数据的各项处理功能增删查改。 关于数据库的增删查改更准确点来讲应该叫CRUDCreate(创建)、Retrieve(读取)、Update(更新)、Delete(删除) 目录 1. Create 1.1 单行输入全列插入 1.2 多行输入指定列插入 1.3 插入或者更新 1.4 替换 2. Retrieve 2.1 全列查询 2.2 指定列查询 2.3 查询结果为表达式 2.4 为查询结果指定别名 2.5 结果去重 2.6 WHERE条件 2.7 对结果进行排序 2.8 筛选分页结果 3. Update 4. Delete 4.1 删除数据 4.2 截断表 5. 插入查询结果 6. 聚合函数 7. group by子句的使用 1. Create 这里Create创建实际上就是新增的意思对数据库新增数据的语法为 INSERT [INTO] table_name [(column [, column] ...)] VALUES (value_list) [, (value_list)] ... value_list: value, [, value] ... 下面我们来讲一下关于INSETRT新增数据的几种不同的用法 首先我们先创建这样一张表下面几个案例都是往这张表中插入数据 -----创建一张学生表------ create table student(- id int unsigned primary key auto_increment,- sn int not null unique,- name varchar(20) not null,- qq varchar(20)- );1.1 单行输入全列插入 - 插入两条记录value_list 数量必须和定义表的列的数量及顺序一致 -- 注意这里在插入的时候也可以不用指定id(当然那时候就需要明确插入数据到那些列了)那么mysql会使用默认 的值进行自增。 INSERT INTO students VALUES (100, 10000, 唐三藏, NULL); Query OK, 1 row affected (0.02 sec) INSERT INTO students VALUES (101, 10001, 孙悟空, 11111); Query OK, 1 row affected (0.02 sec)-- 查看插入结果 SELECT * FROM students; ------------------------------ | id | sn | name | qq | ------------------------------ | 100 | 10000 | 唐三藏 | NULL | | 101 | 10001 | 孙悟空 | 11111 | ------------------------------ 2 rows in set (0.00 sec) 1.2 多行输入指定列插入 - 插入两条记录value_list 数量必须和指定列数量及顺序一致 INSERT INTO students (id, sn, name) VALUES (102, 20001, 曹孟德), (103, 20002, 孙仲谋); Query OK, 2 rows affected (0.02 sec) Records: 2 Duplicates: 0 Warnings: 0-- 查看插入结果 SELECT * FROM students; ------------------------------ | id | sn | name | qq | ------------------------------ | 100 | 10000 | 唐三藏 | NULL | | 101 | 10001 | 孙悟空 | 11111 | | 102 | 20001 | 曹孟德 | NULL | | 103 | 20002 | 孙仲谋 | NULL | ------------------------------ 4 rows in set (0.00 sec) 1.3 插入或者更新 我们上面创建的学生表中id字段是关键字sn字段则有唯一性约束这两个字段都不能有重复情况出现但是如果有时候我们需要对表单中的数据进行更新比如当前我们表单中的数据为 我们现在插入这样一组数据 insert into students values(103,20002,孙仲谋,22222);我们会发现插入会失败失败的原因是主键冲突了已经存在一个主键值为103的数据但仔细观察我们插入的这个数据我们会发现我们仅仅是在原数据的基础上补上了qq号所以我们希望能有一个方法可以做到这样的效果 如果数据库中没有这个数据则直接插入如果已经存在了这个主键则对这组数据进行更新 相应的语法为 INSERT ... ON DUPLICATE KEY UPDATE column value [, column value] ... 再次插入上面那组数据 我们可以通过这个函数获取到受影响的行数 SELECT ROW_COUNT(); 1.4 替换 - 主键 或者 唯一键 没有冲突则直接插入 -- 主键 或者 唯一键 如果冲突则删除后再插入REPLACE INTO students (sn, name) VALUES (20001, 曹阿瞒); Query OK, 2 rows affected (0.00 sec)-- 1 row affected: 表中没有冲突数据数据被插入 -- 2 row affected: 表中有冲突数据删除后重新插入 2. Retrieve 语法 SELECT [DISTINCT] {* | {column [, column] ...} [FROM table_name] [WHERE ...] [ORDER BY column [ASC | DESC], ...] LIMIT ... 还以我们上面创建的表为例 2.1 全列查询 SELECT * FROM 表名; 2.2 指定列查询 我们可以指定我们要查询的列比如我们的示例的表中的字段有id、sn、name、qq我们可以指定要查看的列而且可以不用按照原有顺序 2.3 查询结果为表达式 表达式中不含字段 表达式也可以是sql中的一些函数 表达式中含字段 2.4 为查询结果指定别名 语法 SELECT column [AS] alias_name [...] FROM table_name; 2.5 结果去重 假设如图所示表中有多个数据都是名为曹操的我们仅想获得一个便需要进行去重 SELECT DISTINCT 列名 FROM 表名; 2.6 WHERE条件 比较运算符 逻辑运算符 运算符说明AND多个条件必须都为TRUE(1)结果才为TRUE(1)OR任意一个条件为TRUE(1)结果为TRUE(1)NOT条件为TRUE(1)结果为FALSE(0) 案例 查找name曹操的所有数据 查找qq’11111的所有数据 查找id号在100~110之间的数据 2.7 对结果进行排序 语法 -- ASC 为升序从小到大 -- DESC 为降序从大到小 -- 默认为 ASC SELECT ... FROM table_name [WHERE ...] ORDER BY column [ASC|DESC], [...]; ASC|DESC分别表示按升序和降序来排序的意思 案例 按学号降序来排所有学生 按学号升序来排所有数据 排升序时ASC可以省略不写因为排序时默认就是按升序来进行排列的 有时候还会出现多个判定情况的条件比如排名次时先按照数学排如果数学成绩一样就按英语排再一样就按语文排 -- 多字段排序排序优先级随书写顺序 SELECT name, math, english, chinese FROM exam_result ORDER BY math DESC, english, chinese; ---------------------------------- | name | math | english | chinese | ---------------------------------- 比特科技 | 唐三藏 | 98 | 56 | 67 | | 猪悟能 | 98 | 90 | 88 | | 刘玄德 | 85 | 45 | 55 | | 曹孟德 | 84 | 67 | 82 | | 孙悟空 | 78 | 77 | 87 | | 孙权 | 73 | 78 | 70 | | 宋公明 | 65 | 30 | 75 | ---------------------------------- 7 rows in set (0.00 sec) 2.8 筛选分页结果 语法 -- 起始下标为 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避免因为表中数据过大查询全表数据导致数据库卡死 limit 3: limit 0, 3: limit 3 offset 0: 3. Update 语法 UPDATE table_name SET column expr [, column expr ...] [WHERE ...] [ORDER BY ...] [LIMIT ...] 对查询到的结果进行列值更新 案例 将唐三藏的qq号改为12345 先查看一下原表中的数据 进行更改 update students set qq12345 where name唐三藏;更改后的数据 也可以同时对多列内容进行更新 补充 我们可以更新一个数据中的一个列也可以同时更新多个列同时也可以同时对多组数据乃至整个数据库进行更新 4. Delete 4.1 删除数据 语法 DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...] 案例 删除名为曹操的相关数据 -- 查看原数据 select * from students where name曹操; -------------------------- | id | sn | name | qq | -------------------------- | 103 | 20002 | 曹操 | NULL | | 104 | 20003 | 曹操 | NULL | | 105 | 20004 | 曹操 | NULL | -------------------------- 3 rows in set (0.00 sec)-- 删除数据 delete from students where name曹操; Query OK, 3 rows affected (0.00 sec)--查看删除后的数据 select * from students where name曹操; Empty set (0.00 sec)删除整张表的数据 DELETE FROM 表名; 删除整张表的操作需要十分谨慎建议先进行备份再进行删除操作如何备份在前面几篇讲过 4.2 截断表 语法 TRUNCATE [TABLE] table_name 注意这个操作更需要慎重 只能对整表进行操作不像DELETE那样可以对部份表进行操作实际上MySQL不对数据操作所以比DELETE更快但是TRUNCATE在删除数据的时候并不经过事务所以无法回滚会重置AUTO_INCREMENT选项补充在DELETE删除表项的时候如果一个字段被设为自增字段即使它前面的选项已经全部被删除但是它仍然不会从头开始而是继续在原基础上增加但是截断则不同它把原数据删除了之后自增字段也会从头开始进行增加 5. 插入查询结果 语法 INSERT INTO table_name [(column [, column ...])] SELECT ... 案例 题目删除表中的重复数据重复数据只留下一份 ---创建原数据表 CREATE TABLE duplicate_table (id int, name varchar(20)); ---插入数据 INSERT INTO duplicate_table VALUES (100, aaa), (100, aaa), (200, bbb), (200, bbb), (200, bbb), (300, ccc); 思路 ---创建一个空表 no_duplicate_table结构和上面那个表一样 CREATE TABLE no_duplicate_table LIKE duplicate_table; ---将 duplicate_table 的去重数据插入到 no_duplicate_table INSERT INTO no_duplicate_table SELECT DISTINCT * FROM duplicate_table; 此时我们就可以发现我们新创建的这个数据库就是我们要得到的数据库然后我们将这个数据库的名字改为原数据库的名duplicate_table原数据库改成其他名或者删除即可 6. 聚合函数 函数说明 COUNT([DISTINCT] expr) 返回查询到的数据的 数量 SUM([DISTINCT] expr) 返回查询到的数据的 总和不是数字没有意义 AVG([DISTINCT] expr) 返回查询到的数据的 平均值不是数字没有意义 MAX([DISTINCT] expr) 返回查询到的数据的 最大值不是数字没有意义 MIN([DISTINCT] expr) 返回查询到的数据的 最小值不是数字没有意义 案例 COUNT函数 统计班级中现在有多少名学生 select count(*) from students;SUM函数 统计学号之和 AVG函数 统计平均学号 select avg(id) 平均学号 from students;MAX函数 返回学号最大值 select max(id) from students;MIN函数 返回学号最小值 select min(id) from students;7. group by子句的使用 在select中使用group by可以对指定列进行分组查询 select column1, column2, .. from table group by column; 案例 准备工作创建一个雇员信息表 EMP员工表        DEPT部门表        SALGRADE工资等级表 如何显示每个部门的平均工资和最高工资 select deptno,avg(sal),max(sal) from EMP group by deptno; 显示每个部门的每种岗位的平均工资和最低工资 select avg(sal),min(sal),job, deptno from EMP group by deptno, job; 显示平均工资低于2000的部门和它的平均工资 统计每个部门的平均工资 select avg(sal) from EMP group by deptno having和group by配合使用对group by结果进行过滤 select avg(sal) as myavg from EMP group by deptno having myavg2000; --having经常和group by搭配使用作用是对分组进行筛选作用有些像where 感谢各位大佬观看创作不易还望各位大佬点赞支持
http://www.tj-hxxt.cn/news/233872.html

相关文章:

  • 网站制作布局中小企业网站营销
  • 自创字 网站广州营销推广公司
  • 可信网站验证服务中心如何给网站续费
  • 怎么用ftp修改网站图片做网站买过域名之后
  • 鲜花培训网站建设商城网站的seo优化改怎么做
  • 做一个商务平台网站的费用内蒙古建设厅安全资料网站
  • 安卓网站开发金华婺城建设局网站
  • 建设银行公积金网站提示udun公司变更地址流程
  • 企业建设企业网站的好处网站建设促销活动
  • 网页制作与网站建设策划书案例专业加速器产业园
  • 做网站送400电话石家庄seo网站优化
  • 四川整站优化专业的机构wordpress博客打开慢
  • 校园网站建设的必要性论文江都住房和建设局网站
  • 电脑如何做网站建网站 主机
  • 音乐网站数据库怎么做网站建设基础报告
  • p2p网站策划网图识别在线百度
  • 中国风网站模板做区块链的网站
  • 网站原文件怎么上传空间让手机变流畅的软件下载
  • 门户网站是如何做引流的新房网站建设公司
  • 中国建设银行辽宁分行网站如何做百度免费推广
  • 购物网站开发教程中文教育培训报名
  • 网站工程是干啥的可以做头像的网站有哪些
  • 百度一下就知道官方网站临沂网站建设方案书
  • 区块链网站开发text-indent:2em wordpress
  • vr看房网站开发费用网站开发工程师项目经验怎么写
  • 中学网站域名用什么用多语言网站建设费用
  • 网站建设公制度重庆必去的十大景点
  • php做直播类型的网站学院网站建设招标书
  • 云主机搭建asp网站有关外贸的网站有哪些
  • 个性化网站建设报价科技网站建设 开题报告