1.数据增删改
2.单表查询
无条件查询
where 条件
group by
having
order by
limit
3.正则表达式
4.多表查询
笛卡尔积
内连接
外链接
5.子查询
#
一.数据的增删改
为什么不说查 因为查询语句 有很多细节 所以先从简单的说起
添加数据:
1.insert into table_name[column,[column2.....]] values(value1...)[,(value1...)];
如果表名后没制定字段 则插入的数据必须和表格结构顺序匹配 每一个字段都必须给出值 当然 数据类型也必须一致
如果在表名后制定了字段名 可以选择性的插入指定字段 插入的数据必须和前面声明的字段匹配
2.insert into table_name select *from another_table;
该方式用于插入另一个表的查询结果
要求查询出的结构必须与当前表结构相同
上述方法 into 都可以省略
删除数据:
delete from table_name [where condition];
没有条件则删除所有数据 逐条删除
truncate table table_name;
要删除全部数据最好的方式是重建表 他是直接删除文件
修改数据:
update table_name set column = value[,column2 = value2] [where condition]
可以一次性修改多个字段
没有条件则全部修改
二.单表查询
1.完整的查询语句语法
select distinct (* or 字段名 or 四则运算) from 表名
where 条件
group by 字段
having 条件
order by 排序
limit 控制从哪里开始显示以及 显示几条
以上是书写顺序,必须按照这个顺序来书写sql语句
书写顺序代表执行顺序吗?
并不是!
2.关键字的执行顺序
注意:书写顺序错误将报错
伪代码: 第一步找到对应的文件 def from(name): open (file) pass 第二步 读取并筛选数据 def where(条件): 读取每一行数据 判断是否满足条件 for line in file: if XXXxxx def group(): 将数据 按照某个字段进行分组 pass def having(): 对分组后的数据进行筛选 pass def distinct(): 对数据进行去重处理 pass def order(): 对数据进行排序 pass def limit() 选取一部分数据 pass def select() from() wher() group() having() distinct() order() limit() return data;
3.简单查询
上述的关键字大多数是可选的 必选的是哪些?
select distinct from 表名;
distinct是可选的 用于取出重复记录
只有当显示的所有列的数据都重复时才去除
当字段名太长获取不容易理解时 可使用as来取别名
1.*表示通配符 显示所有字段
2.可以指定任意个字段名
3.可以对字段的数据进行四则运算
4.聚合函数 接下来讲
准备数据:
create table stu(id int primary key auto_increment,name char(10),math float,english float);
insert into stu values(null,"赵云",90,30);
insert into stu values(null,"小乔",90,60);
insert into stu values(null,"小乔",90,60);
insert into stu values(null,"大乔",10,70);
insert into stu values(null,"李清照",100,100);
insert into stu values(null,"铁拐李",20,55