mysql的DML(数据操纵语言)

insert

第一种
insert into tablename 列名 values(列值);
第二种
insert into tablename set columnname=value,columnname=value;
第三种
insert into tablename (columnname1,columnname2) values(value1,value2);
  • 数字类型的值不需要用单引号引起来
  • 字符和日期类型苏剧需要用当年引号引起来
  • 输入值的顺序必须于在表中定义的顺序活着在表中后列出的顺序相同

update

更新表中的数据

update table name set column_name1=value1,column_name2=value2 where 子句

delete

delete from table [where子句] 
  • 不加where语句,删除所有记录
  • 加上where,删除带条件的语句

truncate

truncate table tablename;

和delete的区别

delete维护自增长的值,truncate另一个归零

delete可跟查询条件,truncate不可以

delete执行速度不快,truncate执行很快

select

select 字段名(*)
from tablename
where (条件)子句 
group by group_column
having condition_expression
order by sort_columns

where 子句中不可以使用别名作为查询条件

查询所有字段

select * from 表名

查询指定字段

select 列名  from 表名

查询不明确信息的字段

select 别名1,别名2 别名1*别名2 as 别名3 from 表名

用distinct关键字去重结果中的重复行查询字段

select distinct 列名  from 表名
#一般跟一个字段 复杂查询可以设置子集作为结果集查询

select查询原理**

根据列名取出字段放到缓存里边显示继续执行下一行,把相对应的数据查询出来。
单条件查询

select 列名 from 表名 where 列名=表名 or 列名<>表名

多条件查询(或者 or 并且 and)

select 列名 from 表名 where 列名=表名 

sql中的通配符

%(百分号) 0个或0个以上的字符
_(下划线) 代表的是1个字符

以字符串条件开头 的模糊查询(like)

select * from where like ''字符串%' 

在条件语句之间的查询(between…and…)

select 字段名 from 表名 where 字段名 between 条件1  and 条件

查询条件为空的条件


select 字段名 from 表名 where 列名 is null

now函数**

用于得到当前系统的时间

year函数

用来显示日期的年份

**concat 字符串连接

select 订单编号,产品编号,单价*(1-折扣)*数量 as 实际销售额 from 订单明细

简单函数(case…when…then)

case 列名 
whenthen 结果 
whenthen 结果
else default 
end as 别名

搜索函数

case 列名
when 条件范围 then 结果
when 条件范围 then 结果
and 条件范围 结果
else 结果
end as 别名
from 表名

用order by对表中信息进行排序

asc升序 desc降序

order by 列名  排序关键字
可以对多个字段进行排序
order by 可以使用别名进行排序
可以使用索引

limit找出前几个

select * from 订货明细 order by 单价*(1-折扣)*数量 as 订单金额 desc limit 1

limit两个参数 跳过多少取多少

select * from 表名 limit (page-1)*pagesize,pagesize;

聚合函数

  • sum 求和
  • average 平均值
  • max 最大值
  • min 最小值
  • count 计数

分组函数 group by**

having 过滤

select 性别,部门 count(*) from 员工  group by 部门 having 性别 ='女'

cast函数 类型转换**

多表连接查询

select 字段列表 from1 inner||left right join2 on1.字段=2.字段

select 字段列名 from1,表2 where1.字段=2.字段

内连接查询

select 字段列名 from1,表2 where1.字段=2.字段(可用)

外连接查询

select 字段列表 from1 inner||left right join2 on1.字段=2.字段(必用)

带any的子查询

select 类名 from 表名 where a>any(... or ...);

带all的子查询

select 类名 from 表名 where a>all(... and ...)

带some 的子查询

select 类名 from 表名 where a> some(... or ...)
union (过滤重复值)
union all(傻瓜拼接)
[sql语句1]
union 
[sql语句2]
[sql语句1]
union all
[sql语句2]

行列转换

select 列名1 from 表名
union select 列名2 from 表名
union select 列名 from  表名
group by 列名;

使用正则表达式查询

字段名 regexp '匹配方式'

其中,“属性名”表示需要查询的字段名称;“匹配方式”表示以哪种方式来匹配查询。“匹配方式”中有很多的模式匹配字符,它们分别表示不同的意思。下表列出了 REGEXP 操作符中常用的匹配方式。
在这里插入图片描述
** 字符^用来匹配以特定字符或字符串开头的记录。**

select 列名 from 表名 where 类名 regexp '^j';

**字符$用来匹配以特定字符或字符串结尾的记录。 **

select 列名 from 表名 where 类名 regexp 'y$';

字符.用来替代字符串中的任意一个字符。

select 列名 from 表名 where 类名 regexp 'a.y';

字符*+都可以匹配多个该符号之前的字符。不同的是,+表示至少一个字符,而*可以表示 0 个字符。

select 列名 from 表名 where 类名 regexp '^Th*';

正则表达式可以匹配字符串。当表中的记录包含这个字符串时,就可以将该记录查询出来。指定多个字符串时,需要用|隔开。只要匹配这些字符串中的任意一个即可。

select 列名 from 表名 where 类名 regexp 'an'
使用方括号`[ ]`可以将需要查询的字符组成一个字符集合。只要记录中包含方括号中的任意字符,该记录就会被查询出来。例如,通过“[abc]”可以查询包含 a、b 和 c 等 3 个字母中任意一个的记录。 
```sql
select 列名 from 表名 where 类名 regexp '[io]';
```
 `[^字符集合]`用来匹配不在指定集合中的任何字符。 
 ```sql
 select 列名 from 表名 where 类名 regexp '[a-t]'
 ```
  `字符串{n,}`表示字符串连续出现 n 次;`字符串{n,m}`表示字符串连续出现至少 n 次,最多 m 次。 
  ```sql
  select 列名 from 表名 where 类名 regexp 'e(2,)'
  ```
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农先生eee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值