表的完整语法增,删,改,查( 子查询 ),常用函数

表的完整语法增删该查

表的完整 增 语法

1.所有数据按顺序插入
    insert [into] 表名 values (值1,……值n),[值1,……值n]

2.指定字段匹配插入,可以任意顺序           按规定字段顺序指定插入
    insert [into] 表名(字段1,字段3……字段n) values(值1,值3,……值n)

3,插入查询     按规定字段顺序指定插入
    insert [into] 新表名(字段1,字段3……字段n) select (字段1,字段3……字段n) from 原表名

表的完整 删 语法

会记录自增信息,操作日志记录,效率低
  delete from 表名 [条件]:  不加条件清空所有数据,会记录自增信息

重置自增信息
  truncate table 表名

表的完整 改 语法

update 表名 set 字段1=值1,[字段2=值2,……] [条件]       无条件,全部改掉,加条件,满足条件的改掉

表的完整 查 语法

select [distinct] 字段1 [as 别名],…… 字段n [as 别名] from [库名.]表名 from [
                                                                where  约束条件   +  比较运算符 | 区间运算符 | 逻辑运算符 | 相似运算符 | 正则匹配
                                                                group by  分组依据  + 聚合函数 | having
                                                                having  过滤条件 + 对分组后的帅选
                                                                order by  排序
                                                                limit(m,n)  限制显示的条数
                                                            ]

简单查询

select concat(area,"-",port) as '家乡' from emp

concat() 字符串拼接
distinct:去重前提:所查所有字段的综合结果完全相同,才认为是重复的,只保留重复中的一行数据
select distinct area from emp
select distinct area.port from emp   两行记录两个字段全重复才重复

where:约束条件  +  比较运算符

1.比较运算符
= | < | > | <= | >= | !=

2.区间运算符
between 10 and 20
in(10,20,30)

3.逻辑运算符
and | or | not

4.相似运算符
like '_owen%':模糊匹配字符串,_表示一个字符,%表示任意字符

5.正则匹配
select * from emp where name regexp '.*[0-9]+.*';
group by: 分组 + 聚合函数 
聚合函数:
    max():最大值
    min():最小值
    avg():平均值
    sum():和
    count():计数
    group_concat():组内字段拼接,用来查看组内其他字段

子查询:一个查询作为另外一个查询的结果

单例子查询:子查询语句的结果为一行数据,可以结合 = | < | > | <= | >= | != 运算符来完成父查询
select salary from emp where salary > 10; # => 作为子查询
select name, gender, area from emp where salary = (select salary from emp where salary > 10);
多行子查询:子查询语句结果为一行数据,可以结合 in | all | any 运算符来查询
in :任意单一值
all:全部值
any:任意多个值,子查询的每一个结果可以作为参考依据

select * from emp where salary < all(select max(salary) '最高薪资' from emp where dep='教学部' group by gender);
having 筛选:用在分组之后
select dep, avg(salary) '平均薪资' from emp group by dep having avg(salary) > 6;
order by排序:可以跟聚合函数一起用
升序 asc
降序 desc

select * from emp order by age desc;
limit 限制 :

select * from emp limit 6,5;
select * from emp order by salary desc limit 1;limit(m,n) 从 m+1 行显示 n 条


常用函数

concat(字段1,……字段n): 完成字段的拼接
concat_ws(x,字段1,……字段n):完成字段的拼接,x为连接符
lower():小写
upper():大写
ceil():向上取整
floor():向下取整
round():四舍五入







原文地址:https://www.cnblogs.com/liu--huan/p/10310745.html