接上一篇内容,不废话直接进入正题 SQL的分类SQL语言一般分为3种 1,数据定义语言即DDL(Data Definitoin Language):数据库管理系统提供了数据定义语言,定义数据库涉及的各种对象,定义数据的完整性约束,保密限制等约束。 2,数据操作语言即DML(Data Manipulation Language):数据库管理系统提供了操作语言实现对数据的操作。具体的操作就是增(insert )、删(delete)、改(update)、查(select) 3,数据库控制语言即DCL(Data Control Language):数据库管理系统提供了数据控制语言实现随数据库的控制,包含数据完整性控制、数据安全性控制和数据库的回复等。 下面我们主要介绍DML(数据操作语言)的增删改查第一,增删改查 之增 insert 语法; 基本语法结构:INSERT INTO 表名(列1,…… 列n) VALUES(值 1,…… 值 n); 表名后面跟的是要插入的列名,VALUES则是列名所对应的值 插入数据的注意点: 【1】插入的表名和值无论从类型,个数,位置都要完全匹配 【2】自动编号类型最好不在出现在insert语句中 【3】插入字段为空时: 文本类型可以用 ’ ’ 或null来表示为空, 其他类型都用null 【4】时间类型也可以认为是一个特殊的文本型,即可以 加’ ’,时间类型有数据时按文本型走 ’ ’, 如果表示空 间用null 第二,增删改查 之改 update 基本语法结构:update 表名 set列1 = 新值1, 列2 = 新值2, where expr; 注意:加粗的部分是在update使用时必须存在的。尤其是where条件,要修改那一行必须写明,不然会造成大面积的破坏数据。 第三,增删改查 之改 delete 基本语法结构:Delete from 表名 [where 条件]。这个和update一样需要注意加where条件 小扩展 truncate book和delete from book是一个结果? truncate和delete 之间区别? 这个问题面试会经常问到 相同点:都是删除数据,不删除结构 不同点: delete from table 删除所有数据 Truncate table 也是删除所有数据,但它会将 auto_increment调整为0,实际上是从1开始 不能加where。 第四,增删改查 之改 select select是数据库中用的做多的操作方式,也是数据库中的重点; 语法结构:Select 字段名称1,字段名称2,... from 表名 where条件以及 [五大子句]等等。 我们需要从数据库中差一张表时一般用:“Select * from 表名” 来查看表的全部数据 其中’ * ‘ 是通配符,代表所有字段名称。 当需求比较高,更加细化的时候。我们就需要在'Select * from 表名'后面加上where条件以及 [五大子句]。 select 5种子句介绍1,Where 条件查询。 2,group by 分组。 3,having 筛选。 4,order by 排序 。5,limit 限制结果条数 1,where expression 用法:expression为真,则该行取出 运用场合 各种条件查询场合,如按学号查学生,按价格查商品,按发布时间 查新闻等 where后面需要更一些比较运算符,如下图 除了比较运算符,有时候需要用到:like 模糊匹配 ,% 通配任意字符, _ 通配单一字符等词来限制。 例如: 2,group by 分组 在介绍group by前必须要先说说,统计函数;因为这两者是不可分割的。 常见的统计函数有 max : 求最大 。min : 求最小 。sum : 求总和 。avg : 求平均。 count:求总行数 只要SQL出现统计函数,就必须有group by的出现。 group by 的作用:把行按 【字段】 分组 语法:group by col1,col2,...colN 注意:最后一个分组字段不加逗号,否则报错 运用场合 常见于统计场合,如按栏目计算帖子数, · 统计每个人的平均成绩等。 例如: 要求:从ecs_goods表中列出各栏目最贵的价格 3,having 筛选 having的用法和where类似(只是类似),语法结构一样 区别:where针对表中的列发挥作用,查询数据,执行在select之前。having是针对已经查出来的结果进行再次的筛选,执行在select之后。 (1)例如:从ecs_goods表查询比市场价省钱200元以上的商品及该商品所省的钱。 (2)例如: 设有成绩表stu 如下: 姓名 科目 分数 张三 数学 90 张三 语文 50 张三 地理 40 李四 语文 55 李四 政治 45 王五 政治 30 要求:试查询两门及两门以上不及格同学的平均分 结果如下: select name ,avg(score) as ping,sum(score<60) as jg from stu group by having jg>2; 4,order by排序 Order by 排序功能 · 按一个或多个字段对查询结果进行排序 语法: order by 字段名称 desc / asc 其中desc降序 asc为降序 知识点的运用场合描述 各种排序场合,如新闻按点击量排序, 商品按价格排序等 默认排序:升续排列 Order by 排序功能 · 按一个或多个字段对查询结果进行排序 5,limit 限制条数 Limit 限制条数 · limit [offset,] N,限制结果取N条 用法: limit [偏移量,],取出条目 知识点的运用场合描述 分页应用中最为典型,如第1页取1-20条,第2页取21-40条 Limit 从第几条开始,列出几条记录 ,0代表第一条,1代表第二条 例如:列出前4条 以上5种子句是SQL中最常用到的,一定要熟练的掌握,学会在各种需求中灵活应用。 未完待续...... |
|