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

创新的沈阳网站建设上海百度提升优化

创新的沈阳网站建设,上海百度提升优化,怎么找网站帮我做推广,两学一做网站 苏州我们学习数据库, 最重要的就是要学会对数据表表进行"增删查改"(CRUD).(C -- create, R -- retrieve, U -- update, D -- delete) 目录 一. "增"(create) 1. 普通新增 2. 指定列新增 3. 一次插入多行 4. 用insert插入时间 5. 小结 二. "查"…

我们学习数据库, 最重要的就是要学会对数据表表进行"增删查改"(CRUD).(C -- create, R -- retrieve, U -- update, D -- delete)

目录

一. "增"(create)

1. 普通新增

2. 指定列新增

 3. 一次插入多行

4. 用insert插入时间

5. 小结

二. "查"(retrieve)

1. 全列查询

2. 指定列查询

3. 查询时指定表达式 

4. 去重查询

5. 排序查询

6. 条件查询(查询中最关键的操作)

7. 分页查询

8. 小结

 三. "改"(update)

四. "删"(delete) 


一. "增"(create)

MySQL中, 新增元素的基本语法如下:

1. 普通新增

insert into 表名 values (值, 值, 值 ......);

例如:

注: MySQL中, 表示字符串使用单引号或者双引号都可以

注意:

(1) 这里值的个数和类型, 要和表结构相匹配.

 如上图, 列数和值的个数不匹配.

如上图, 明明第二列插入的int类型和表中定义的varchar类型不匹配, 为什么还能插入成功呢? 这里我们就不得不提到SQL语言的"弱类型"特性. 

SQL(结构化查询语言)通常被认为是一种“弱类型”或“动态类型”的语言. SQL可以在查询执行时自动进行数据类型转换. 例如在这里SQL就自动把int类型的3转换成了字符串类型. 但SQL并非在任何情况下都能将数据类型自动转换.

例如在这里SQL就无法将字符串类型的"李四"转换成int类型, 此时程序就会报错.

2. 指定列新增

insert into 表名(列名, 列名 ......) values(值, 值 ......);

(注意: 插入值的 个数, 类型, 顺序 要和前面指定的列名匹配).

 3. 一次插入多行

insert into 表名 values(值, 值 ...), (值, 值 ...), (值, 值 ...) ...;

每个括号表示一行.

还可以和"指定列新增"配合使用

例如:

4. 用insert插入时间

字符串的形式插入时间.

可以使用now()来插入当前时间. (注: now()获取的时间是字符串类型的).

5. 小结

(1) 普通新增: insert into 表名 values(值, 值, 值 ......);

(2) 指定列新增: insert into 表名(列名, 列名 ......) values(值, 值 ......);

(3) 一次插入多行: insert into 表名 values(值, 值 ...), (值, 值 ...), (值, 值 ...) ...;

(4) 用 insert 插入时间: 以字符串的形式插入时间, 获取当前时间使用now()

二. "查"(retrieve)

SQL中, "增删改"都很简单, "查"比较复杂. 本篇博客我们先介绍简单的"查"操作.

MySQL中, 新增元素的基本语法如下:

1. 全列查询

即查询出指定表的所有行和所有列.

select * from 表名;

(注意: *是通配符. 在这里, *代指所有列)

注意: select* 是一个非常危险的操作. 因为一旦表的规模非常大, 此时进行select*操作, 就会产生大量的硬盘io和网络io, 很可能会把硬盘/网卡的带宽"吃满", 造成"拥堵". 使得其他客户端在尝试访问数据库时, 访问操作就无法正常进行了.

2. 指定列查询

查询的时候, 手动指定列名, 查询出来的结果就是指定的列.

select 列名, 列名 from 表名;

3. 查询时指定表达式 

select 表达式(as 别名) from 表名;

这里的表达式: 可以是针对某个列的加减乘除, 也可以是针对多个列的加减乘除.

例如:  我们想把成绩表每个学生的语文成绩加10分后查询:

把每个学生的总分查询出来:

注意: 这里可以给chinese,math,english的和取一个别名sum.需要使用到"as".如下:

 也可以省略as,但是我们并不建议这样做, 因为这样很容易造成SQL语句表达含义不清晰.

注意: 查询操作(select)生成的表只是"临时表". 数据库本体(数据库服务器硬盘上的数据)不会发生任何改变.

4. 去重查询

去重的含义: 多个行的数据, 如果出现相同的, 就会只保留一份.

select distinct 列名 from 表名;

5. 排序查询

针对查询结果进行排序

... order by 列名;

注意: 如果排序中出现null, null会被视为最小值.

例如: 用数学成绩来排序

(默认是升序排列) 当然升序还是降序也可以手动指定. (asc -- 升序, desc -- 降序). (这里的asc是ascend的缩写, desc是descend的缩写).

也可以指定多个列排序, 排序规则为: 先使用第一列来排列, 如果第一列元素相同, 则使用第二列, 如果前两列都相同, 则使用第三列 ......

  ... order by 列名, 列名, 列名 ......

6. 条件查询(查询中最关键的操作)

查询过程中: 一行一行地遍历表, 根据筛选条件, 把每一行的数据代入到条件中, 满足就保留并显示, 不满足就跳过.

select 列名 from 表名 where 条件;

条件运算符:

>, >=, <, <= : 大于,大于等于, 小于,小于等于

= : 等于, 不支持null的比较 (例如: null = null 的结果为 null)

<=> : 等于, 支持null的比较 (例如: null <=> null 的结果为 true)

(注意: 只要有null参加的运算,结果都是null)

!= : 不等于

between a and b : 范围匹配, 闭区间[a, b]. 如果value值在[a, b]范围内, 就返回true.

例如: 

in (option1, option2 ......) : 如果是几个option中的任意一个, 则返回true.

例如:

is null : 是null

is not null : 不是null

like : 模糊匹配 (即: 不要求完全相等, 满足一些条件可以了) 此外还需要搭配通配符来使用. 

(%匹配0个或任意个字符, _匹配一个特定字符)

例如: 

and : 并且

or : 或者

not : 非(逻辑取反)

7. 分页查询

select 列名 from 表名 limit N (offset M):

N代表限制查询几条数据.

例如:

指定limit时, 还可以搭配offset来使用. offset表示从下标为几开始算limit.

例如:

8. 小结

(1) 全列查询: select * from 表名;

(2) 指定列查询: select 列名, 列名 from 表名;

(3) 查询时指定表达式: select 表达式(as 别名) from 表名;

(4) 去重查询: select distinct 列名 from 表名;

(5) 排序查询: ... order by 列名 desc/asc;

(6) 条件查询: select 列名 from 表名 where 条件;

(7) 分页查询: select 列名 from 表名 limit N (offset M):

 三. "改"(update)

使用update所完成的修改, 是真正在硬盘上完成了修改. 这样的修改, 是"持久有效"的.

基本语法:

update 表名 set 列名 = 值, 列名 = 值, 列名 = 值 ......;

注意:

(1) 这里还可以配合使用where, order by, limit 来对查询结果进行条件限制/排序/分页.

(2) 如果没有指定条件, 默认对所有列进行修改.

例如, 这里我们要把sunwukong的english成绩改为79:

 从上面结果我们可以看到:  "查询成功, 1行受到影响", "匹配到的行数:1 , 修改的行数:1, 警告: 0".

注意: 这里匹配到的行数和实际被修改的行数不一定相等, 要根据实际情况决定, 比如: 

这里虽然匹配到了9行, 但是只修改了6行. 因为只要有null参与的运算, 结果都是null, 无法修改.

注意: 这里写到的 chinese = chinese + 10  不能写成chinese += 10. 因为SQL语言中没有这样的语法. 

再例: 我们要把louxiang的id 6,成绩 99, 87, 74都记录下来

update是一个非常简单单操作, 关于update的操作, 大概就是这么多.

四. "删"(delete) 

基本语法: 

delete from 表名 where 条件 (order by / limit N).

注意:

(1) delete(删除)操作也是一个非常危险的操作, 在实际开发中, 要谨慎使用.

(2) 如果delete语句没有指定条件, 那么默认会删除表中所有数据.

(2) 注意辨析delete from 表名 和 drop table 表名 的区别: delete 只是删除表中数据, 但是表依然存在; drop 是连数据带表一块都删除了.

以上就是本篇博客的全部内容啦,如果喜欢小编的文章,可以点赞,评论,收藏~

http://www.hkea.cn/news/926522/

相关文章:

  • 网站设计公司(信科网络)潍坊网站定制模板建站
  • 番禺网站开发报价百度竞价排名软件
  • 做企业网站接单seo网站优化技术
  • 建设网站行业云网络推广理实一体化软件
  • 如何用自己公司网站做邮箱关键字是什么意思
  • 古典网站建设欣赏马鞍山网站seo
  • 商城网站建设报价方案免费建网站软件下载
  • 中国做美国酒店的网站好竞价托管收费标准
  • 网站开发与设计静态网页源代码站长之家app下载
  • 松原做网站app运营推广是干什么
  • 做简单的网站链接2024新闻热点摘抄
  • 百度网站站长环球网疫情最新
  • 颍上做网站西安seo网站关键词优化
  • 有没有兼职做设计的网站吗知名网络软文推广平台
  • 数据百度做网站好用吗米拓建站
  • 网站维护运营怎么做搜索引擎优化通常要注意的问题有
  • 圆梦科技专业网站建设恶意点击软件有哪些
  • 如何做vip电影解析网站竞价恶意点击器
  • 开发简单小程序公司深圳网站优化哪家好
  • 网站开发劣势搜索引擎排名优化
  • 桂林网站优化公司企业网络营销顾问
  • 上海外贸出口代理公司排名搜索引擎优化的主要工作有
  • 一般做企业网站需要什么资料广告咨询
  • 广州网站建设兼职网站为什么要做seo
  • 中企动力官网 网站怎么在平台上做推广
  • 教育培训网站建设方案广告宣传费用一般多少
  • 计算机网站设计论文营销排名seo
  • 源码资源国内专业seo公司
  • 丽水微信网站建设报价免费精准客源
  • 广东建设工程中标公示网站google搜索引擎优化