mysql insert into from_MySQL应知应会学习笔记

7c7b1a4a6d5e25218fcd5b62ae9ed7ac.png

检索数据

select

select 列名 from 表;

SQL语句不区分大小写

在处理SQL语句的时候,空格是忽略的。

LIMIT

限制结果 只会输出若干条,例如:SELECT 列名 FROM 表 LIMIT 5;

返回不多于5行,有助于性能提升。

LIMIT 5,5; 返回从行5开始的5行,新版本的LIMIT 5 OFFSET 5;

排序检索数据

ORDER BY

指定排序方向 默认升序ASC 如果要降序排列 DESC

一般情况下排序不区分大小写

使用ORDER BY 和 LIMIT 找出一列的最大值或最小值

过滤数据

使用WHERE子句

SELECT 列 FROM 表 WHERE 条件

支持 = <> != < <= >= BETWEEN

BETWEEN 常与 AND 连用

IN和OR

IN 和 OR 有相同的功能

但是IN具有如下优点:

  1. 当条件太长时,更加清楚直观
  2. 计算的次序更容易管理
  3. 一般比OR执行的更快
  4. 可以包含其他SELECT语句 (主要)

使用通配符进行过滤

LIKE "%XXX%"

搜索是区分大小写的

%可以匹配0个、一个、多个字符,但是不能匹配到NULL

下划线(_)通配符 只能匹配单个字符

正则表达式

REGEXP "正则表达式"

LIKE 和 REGEXP 的差别 LIKE 不能匹配到行内的内容 但是REGEXP可以匹配到行内的内容

正则表达式匹配不区分大小写

如果要区分大小写 需要使用BINARY关键字 如

WHERE 

进行OR匹配 如1000|200|300

匹配几个字符之一 [123] Ton 匹配1或2或3

匹配范围[1-3]

匹配特殊字符 '.'

定位符 ^ 文本的开始 $文本的结束

创建计算字段

拼接 将值联结到一起构成单个值

可以使用Concat()函数实现

RTrim()函数去掉值右边的所有空格

类似的还有LTrim() Trim()

AS 使用别名

使用数据处理函数

文本处理函数:

Upper()将文本转换为大写 对应的还有Lower()

Left() 返回串左边的字符

Length() 返回串的长度

Locate() 找到串的一个子串

SubString() 返回子串的字符

Soundex() 返回串的SOUNDEX值

SOUNDEX是一个将任意文本字符串转化为描述其语音表示的字母数字模式的算法

数值处理函数:

Abs() 返回一个数的绝对值

Cos () 返回一个角度的余弦

Exp 返回一个数的指数值

Mod 返回除操作的余弦

Pi 返回圆周率

Rand() 返回一个随机数

Sin() 返回一个角度的正弦

Sqrt() 返回一个数的平方根

Tan() 返回一个角度的正切

汇总数据

聚集函数

AVG() 返回某列的平均值 只能用于单列 忽略值为NULL的行

COUNT() 返回某列的行数 COUNT(*) 对所有行的数目 进行统计 COUNT(column) 对指定列中具有值的行进行计数,忽略NULL值。

MAX() 返回某列的最大值

MAX() 对文本数据进行计算时 返回最后一行

MIN () 返回某列的最小值 MIN ()对文本数据进行计算时 返回最前面一行

SUM() 返回某列的值的和

DISTINCT()

分组数据

GROUP BY

HAVING

HAVING和WHERE的差别

WHERE在数据分组前进行过滤

HAVING在数据分组后进行过滤

SELECT -> FROM -> WHERE -> GROUP BY ->HAVING -> ORDER BY -> LIMIT

使用子查询

SELECT 

建议格式化SQL

相关子查询 涉及到外部查询的子查询

联结表

Join

等值联结

SELECT 

笛卡儿积 由没有联结条件的表关系返回的结果是笛卡儿积

自联结

SELECT 

自然联结

外部联结

组合查询

UNION

必须由两条或者两条以上的SELECT语句构成

每个查询必须包含相同的列表达式或聚合函数

UNION会从查询结果中集中的自动去除了重复的行

全文本查询

两个最常使用的引擎为MyISAM和InnoDB,

前者支持全文本搜索,而后者不支持。

插入数据

INSERT

INSERT 

简单 但是并不安全 不建议使用

在表名后的括号里明确地给出列名是一种繁琐而安全的方式,建议使用

为了提升整体的性能

如果数据检索是重要的,就可以在INSERT 和 INTO 之间加入LOW_PRIORITY

提高INSERT的性能 因为MySQL用单条INSERT语句处理多个插入比使用多条INSERT语句快

更新和删除数据

UPDATE

由三部分组成

  1. 要更新的表
  2. 列名和他们的新值
  3. 确定要更新的行的过滤条件

DELECT

删除的是表的内容而不是表

如果要删除所有行 可使用TRUNCATE TABLE 语句

创建和操作表

创建表

CREATE 

引擎类型

InnoDB 是一个可靠的事务处理引擎,不支持全文本搜索

MEMORY 在功能上等同于MyISAM 但是数据存储在内存(不是磁盘),速度很快

MyISAM 是一个性能极高的引擎,支持全文本搜索,但不支持事务处理

删除表

DROP 

重命名表

RENAME 

使用视图

视图仅仅是用于查看存储在别处的数据的一种设施,视图本身不包含数据

CREATE 

使用存储过程

所谓的存储过程 就是为以后的使用而保存的一条或者多条MySQL语句的集合

主要有三个好处, 简单 安全 高性能

创建存储过程

CREATE 

使用存储过程

CALL 

删除类似表的删除

使用游标

只能用于存储过程

使用游标的步骤

  1. 在使用之前,必须声明或者定义它
  2. 一旦声明,必须打开游标以供使用
  3. 对填有数据的游标 根据需要取出各行
  4. 在结束游标的使用时,必须关闭游标
CREATE 

打开游标 OPEN

关闭游标 CLOSE

触发器

触发器是MySQL响应一下任意语句而自动执行的一条MySQL语句

支持 DELETE INSERT UPDATE

使用CREATE TRIGGER 创建

例如

GREATE 

事务处理

事务:指一组SQL语句

回退:指撤销指定SQL语句的过程

提交:指将未存储的SQL语句结果写入数据库表

保留点:指事务处理中设置的临时占位符

开始事务

START 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值