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

上海私人网站建设萍缘网站建设工作

上海私人网站建设,萍缘网站建设工作,租车行网站模版,旅游网站设计说明一. 插入内容insert tips#xff1a; #xff08;一#xff09;SQL中 表示 字符串#xff0c;可以用 也可以用 C/C、Java中#xff0c; 表示字符#xff0c; 表示字符串SQL/Python/JS#xff0c;没有字符类型#xff0c;只有字符串#xff0c; 和 一SQL中 表示 字符串可以用 也可以用   C/C、Java中 表示字符 表示字符串SQL/Python/JS没有字符类型只有字符串 和  都可以用。 二在控制台中通过向上方向键可以切换输入的命令  三注如果要输入汉字需确保创建数据库的时候指定了字符集是 utf8 / gbk 等能支持中文的字符集否则 中文数据会出现报错。 四查看表的内容select * from 表名; 1.1 默认插入 insert into 表名(值, 值, 值......);列的个数和类型要和表的结构匹配 要点一输入的数据类型必须要与参数列表一致 要点二隐式转换问题 SQL中的类型系统和Java差异很大。上述插入的数据虽然 values  后面第一列写的是 字符串类型SQL 会尝试自动转成int‘100’ -- 100 第二列写的是整数类型会尝试自动转成int200--200 。     上述这样的转换就是 “隐式类型转换”对于Java来说是非常排斥的。比较支持隐式类型转换的称为 “弱类型系统”不太支持隐式类型转换的称为 “强类型系统”。注意此处并不绝对Java是“强类型系统”但也存在 自动装箱、自动拆箱的隐式操作而 C / SQL 隐式类型转换触发的情况会多一些     强类型和弱类型一般认为强类型要更好检查比较严格问题可以提前发现解决弱类型属于之前的探索尝试。     C属于 强类型 还是 弱类型 存在争议C兼容C的隐式转换类型但在现代的语法标准中有对于类型强度有了一定的加强了。 除此之外还有两个相关类型 动态类型程序运行过程中变量的类型是可以改变的Python , JS , Ruby , PHP....。优势非常灵活表达能力更强缺点程序在运行之前难以做很丰富的检查很多问题要执行到对应的代码才能发现。静态类型程序运行过程中变量的类型不能改变C/C , Java....     动态/静态 具体哪个好要结合实际情况。有的场景认为动态类型好比如 初创公司想尽快开发出产品原型非常适合动态类型有的场景认为静态类型更好比如 产品具有一定规模代码和业务也越来越复杂非常适合静态类型 失败的原因是 SQL 把 lisi 尝试转换成 int 失败了。 1.2 指定某些列插入数据 insert into 表名(列名, 列名, .....) values (值, 值, .....);  值的个数、类型、顺序等 要和 ( ) 中的列名相匹配。 NULL 在 SQL 中表示“空”这个单元格啥都没写  列名可以交换顺序但是要对应  1.3 一次插入多行  insert into 表名 values (值, 值, ....), (值, 值, ...), (值, 值, ...); 每个括号对应一行 也可以指定列一次插入多行  插入 3 条记录  1一次插入一行 2一次插入 3 行 MySQL 是一个 “客户端 - 服务器” 结构的程序数据库通常运行在服务器上服务器提供必要的硬件资源如CPU、内存、硬盘来存储数据库文件并通过数据库管理系统来管理这些数据。 客户端-服务器交互过程中交互次数越多整体开销就越大花的时间就越长。一个sql包含数据的多少不是主要矛盾除非数据差异太大了可能有明显影响如果只是差了几条区别是不大的。 1.4 insert 插入时间  有的时候插入的时间日期希望就是 “当前时刻”SQL 作为一个 编程语言也支持一些库函数。 now() -- 获取当前的日期时间 二. 查询数据select比较复杂 所有 select 操作都只是 针对查询结果得到“临时表”做出计算 / 调整 不会影响到硬盘上的原始数据。 2.1 全列查询  select * from 表名; 查询出这个表中的所有的行和所有的列 *  称为 “通配符”可以指代所有的列。 select * 是一个很危险的操作 如果表比较小select * 都无所谓一旦表非常的大千万 / 亿 级别的数据量此时进行 select 就会产生大量的 硬盘IO 和 网络IO 再次强调MySQL 是一个 “客户端 - 服务器” 结构的程序数据库通常运行在服务器上服务器提供必要的硬件资源如CPU、内存、硬盘来存储数据库文件并通过数据库管理系统来管理这些数据。硬盘 和 网卡读写速度都是存在上限的。一旦触发 大规模的 select * 意味着很可能就把你的 硬盘/网卡 带宽 吃满了堵车其他的客户端尝试访问数据库访问操作就无法正常进行了。如果针对 公司生产环境 进行select * 操作就很有可能使其他的用户访问数据库的时候出现访问失败的情况       硬盘本身存储空间是越来越便宜了但是硬盘的带宽访问速度并没有特别的质变尤其是 机械硬盘速度很多年都没有提升了。网络带宽 往往是比较稀缺的资源比硬盘带宽还贵计算机中最贵的资源 拓展常识——网络带宽  网络带宽是指在单位时间内网络能够传输的数据量。它通常用来衡量网络连接的最大传输能力以比特每秒bps为单位来表示。带宽的概念可以类比于高速公路的车道数车道越多通行能力越强。在网络中带宽越大理论上能够传输的数据量也就越多。     带宽与网速是两个相关但不同的概念。带宽是网络的最大传输能力而网速是实际的数据传输速率这个速率会受到网络拥堵、硬件性能等因素的影响。例如一个100Mbps的带宽意味着理论上每秒可以传输100兆比特的数据但实际网速可能会因为网络高峰时段的拥堵而降低。 上行带宽 指的是从个人或企业的网络设备如计算机、手机等发送数据到互联网或其他网络的能力。它决定了你可以多快地将数据上传到服务器或与其他网络用户共享信息。在家庭网络“共享带宽”中上行带宽通常比下行带宽要小因为用户通常下载的数据比上传的数据多。 下行带宽 指的是从互联网或其他网络接收数据到个人或企业的网络设备的能力。它决定了你可以多快地从互联网下载文件、观看视频或浏览网页。在大多数宽带服务中下行带宽通常比上行带宽要大以适应用户大量下载内容的需求。     如果你有一个提供100Mbps兆比特每秒下行带宽和10Mbps上行带宽的互联网连接那么理论上你可以在最理想的情况下每秒下载100兆比特的数据而上传的速度则为每秒10兆比特。   2.2 指定列查询  select 列名, 列名.... from 表名; 查询的时候手动指定列表得到的结果就是和列名关联的。 实际开发中一个表有十几列甚至几十列都是很有可能的。比如 当前只需要关注两列一共有20列使用指定列查询得到的数据量就比全列查询要少很多。 2.3 查询字段为表达式  select 表达式 from 表名; 基于列名进行 加减乘除 运算不会修改服务器 硬盘 上的数据只是把返回的结果进行了计算 如果20意味着有些成绩的结果就会超出约定的类型范围 decimal(3,1)为什么不会报错呢—— 表的类型是针对硬盘上存储的数据 进行的制约但是 当前是查询操作此处计算的结果是“临时表”的数据不会影响到 硬盘上的数据。 在一个表达式中还可以引入多个列参与运算逐行遍历表中的数据针对每一行把这三个列进行相加即可。 表达式查询只能针对 列和列 之间进行计算行和行 之间的运算后面会介绍到 “聚合查询”。  2.4 别名  select 表达式 as 别名 from 表名; 在表达式查询中如果表达式简单一眼就能看懂如果表达式比较复杂就需要通过给表达式取别名方便观察。 虽然 as 可以省略但是不建议省略以防看错  2.5 去重查询 select distinct 列名 from 表名; 去重的意思多个行的数据如果出现相同的值就只会保留一份。如果只选中一列直接触发去重如果是多列必须指定的每一列都要重复才能触发去重。 这里的去重都是针对 “临时表”硬盘上的数据没有任何影响 2.6 排序查询 select * from 表名 order by 列名; 默认为升序针对查询结果进行排序 排序 也是针对临时表进行排序不会对硬盘上的数据造成影响。查询的时候指定按照某个列进行排序也可以指定 升序 还是 降序。 注意 数据库 不会对于查询得到的结果集的顺序 做出任何承诺除非 SQL 中包含 order by如果不写 order by得到的结果的顺序是不可预期的.... 写代码就不能依赖这样的顺序 进行排序的时候select 后面写啥对于最终排序结果都没有影响 降序排序在 order by 列名 后面写上 desc 关键字。此处的 desc 不是 describe 的缩写而是 descent降序的缩写。 如果数学成绩相同排序顺序都是不可预期的 显示的升序排序在 order by 列名 后面写上 asc 关键字可省略。 order by 可以指定多个列来排序多个列之间使用 , 进行分割先按照第一列来排序如果第一列相同再按照第二列排序.....如果第一列均不相同那后面的列都用不上 2.7 条件查询 select * / 列名 / 表达式 / 去重 from 表名 where 条件;查询过程中指定筛选条件满足条件的记录就保留不满足条件的就跳过。 比较运算符 运算符说明, , , 大于大于等于小于小于等于等于NULL 不安全例如 NULLNULL 的结果是 NULL相当于FALSE(0)等于 NULL 安全例如 NULL NULL 的结果是 TRUE(1)!, 不等于 between a0 and a1范围匹配[a0,a1]如果 a0 value a1返回 TRUE(1)IN (option, ......)如果是option 中的任意一个返回 TRUE(1)IS NULL 是 NULL IS NOT NULL不是NULLLIKE模糊匹配。%表示任意多个包括0个任意字符_表示任意一个字符 一SQL 中null 是一个特殊值null 参与运算加减乘除...得到的结果还是 null。 二空值和空值之间是否认为是 “相同的”可能存在差别。使用 比较 null 是否相等 是不安全的因此不要直接使用 和 null 比较。 解决办法 使用 还可以比较两个列都是null的情况但是 is null 就不可以了。 三where后面的条件语句中不可以使用别名 显示 total 不在 表中 根据sql的执行过程进行解释 遍历表取出每一行把当前行带入到 where 条件根据条件的真假决定这一行是否要查询出来再根据 select 后面的列名 / 表达式进行 选择列/进行计算order by 进行排序  因此 在执行第二步的时候就会出现错误。  四between a0 and a1 的范围是 [ a0, a1 ]闭区间 编程中大部分谈到的 “区间” 都是 “前闭后开” 区间[ a, b )像Java标准库C标准库Python标准库大部分的设定都是“前闭后开”但是少数的情况下是有 闭区间的像 SQL 的between and Redis 针对列表 取子区间Linux shell 取子区间......前闭后开 最大的好处就是通过 b - a 得到区间的长度就不用思考 1 -1 这样的问题了。  五  六 like 模糊匹配不要求完全相等只要满足一定条件就可以了 此处还是需要搭配通配符描述这样的条件  %匹配 0 个 或者 任意个 任意的字符_匹配 1 个特定的字符  例如 查询姓名中 “孙” 开头 的记录 查询姓名中 “孙” 结尾 的记录 查询姓名中包含 “孙” 的记录 MySQL 中自带的模糊匹配功能 相对比较弱实际开发中会使用到更强大的字符串匹配工具正则表达式  逻辑运算符 运算符说明AND多个条件必须都为TRUE(1)结果才是TRUE(1)OR任意一个条件为TRUE(1),结果为TRUE(1)NOT条件为TRUE(1)结果为FALSE(O) 举例 遍历表的每个记录(每一行)把每一行的数据带入到条件中。如果条件成立这个记录就添加到结果集合中如果不成立就直接跳过。
http://www.dnsts.com.cn/news/191532.html

相关文章:

  • 做网站备案需要啥资料肉多各种地方做的网站
  • 温州网站制作怎么自己网站建设
  • 免费网站建设的关键词排名优化易下拉技巧
  • 贵州中小型营销型网站建设公司婚纱网站设计图
  • 邹城网站建设zc273500厦门网页制作厦门小程序app
  • 学校网站备案前置审批开发网站放大文字功能怎么写
  • 做平面设计的一般浏览什么网站wordpress删除主题
  • 如何给网站文字做超链接电子商务网站建设百度文库
  • 列表怎么做网站辽宁网站备案
  • 网站建设的学习方法机关网站建设总结
  • 重庆新闻第一眼seo优化的内容有哪些
  • 淘宝网站开始怎么做南通网站托管
  • 中国网站优化公司网站开发团队构成
  • 官方网站建设情况说明传奇手游网页版
  • 烟台网站制作效果wordpress获取作者
  • 淘宝价格网站建设室内设计师是干嘛的
  • 网站 文章 keywords 和主页keywords如何制作自己的网址链接
  • 网站开发e r图开封网站建设-中企动力
  • 犀牛云做的网站好不好产品网站别人是如何做优化的
  • 化妆品网站建设策略无线昆明官方网站
  • seo工资一般多少北京seo案例
  • 良乡网站建设西安市城乡建设网官方网站
  • 有哪些建设工程类网站北京画册设计公司
  • 设计网站卖钱怎样制作网页视频
  • 下载百度官方网站有哪些比较好的外贸网站
  • 建站之星网站 seo优化宁波手机网站开发公司
  • 人人站cms商丘做网站的公司有哪些
  • 网络公司网站开发使用WordPress快速建站视频
  • 虚拟货币交易网站建设宁波市住房和城乡建设局网站
  • 长沙网站制作电话网络营销的网站