MySQL:基本操作与常用函数
基本操作
这里的基本操作为添加、修改、删除数据表中的记录。
INSERT语句
-- 通用INSERT:
INSERT INTO 表名 (字段1, 字段2, ...)
VALUES (值1, 值2, ...), (值1, 值2, ...) ;
-- MySQL方言版INSERT:
INSERT [INTO] 表名 SET 字段1=值1, 字段2=值2, ... ;
--使用IGNORE关键字可以忽略冲突记录(使用REPLACE IGNORE INTO则会覆盖冲突记录)
INSERT [IGONRE] INTO 表名 ...;
- 
插入时建议带上字段名,不然MySQL还需要额外查询表结构 
- 
VALUES中的值可以使用子查询的结果 
UPDATE语句
UPDATE [IGNORE] 表名
SET 字段1=值1, 字段2=值2, ...
[WHERE ...]
[ORDER BY ...]
[LIMIT ...];
- 
由于UPDATE语句先查询出记录再修改,ORDER BY 子句可以对查询到的数据先排序再修改,避免有些字段修改后与还未修改的记录产生冲突。 
- 
LIMIT 子句可以只筛选出首页的前几条数据,这里的LIMIT子句中只能有一个参数。 
使用表连接修改多张表的记录:
# 内连接:
UPDATE 表1 
JOIN 表2 [ON 条件]
SET 字段1=值1, 字段2=值2, ...;
# 外连接
UPDATE 表1 [LEFT/RIGHT] JOIN 表2
SET 字段1=值1, 字段2=值2, ...;
DELETE语句
DELETE [IGNORE] FROM 表名
[WHERE ...]
[ORDER BY ...]
[LIMIT ...];
使用表连接删除多张表的记录:
# 内连接
DELETE 表1, 表2 FROM 表1 JOIN 表2 ON 条件
[WHERE ...]
[ORDER BY ...]
[LIMIT ...];
# 外连接
DELETE 表1, 表2 FROM 表1 [LEFT/RIGHT] JOIN 表2 ON 条件...;
快速删除全部记录:
# 绕过事务机制删除,速度远超DELETE语句
TRUNCATE TABLE 表名;
常用内建函数
文本处理函数:
| 函 数 | 说 明 | 
|---|---|
| Left() | 返回串左边的字符 | 
| Length() | 返回串的长度 | 
| Locate() | 找出串的一个子串 | 
| Lower() | 将串转换为小写 | 
| LTrim() | 去掉串左边的空格 | 
| Right() | 返回串右边的字符 | 
| RTrim() | 去掉串右边的空格 | 
| Soundex() | 返回串的 SOUNDEX值 | 
| SubString() | 返回子串的字符 | 
| Upper() | 将串转换为大写 | 
日期处理:
| 函 数 | 说 明 | 
|---|---|
| AddDate() | 增加一个日期(天、周等) | 
| AddTime() | 增加一个时间(时、分等) | 
| CurDate() | 返回当前日期 | 
| CurTime() | 返回当前时间 | 
| Date() | 返回日期时间的日期部分 | 
| DateDiff() | 计算两个日期之差 | 
| Date_Add() | 高度灵活的日期运算函数 | 
| Date_Format() | 返回一个格式化的日期或时间串 | 
| Day() | 返回一个日期的天数部分 | 
| DayOfWeek() | 对于一个日期,返回对应的星期几 | 
| Hour() | 返回一个时间的小时部分 | 
| Minute() | 返回一个时间的分钟部分 | 
| Month() | 返回一个日期的月份部分 | 
| Now() | 返回当前日期和时间 | 
| Second() | 返回一个时间的秒部分 | 
| Time() | 返回一个日期时间的时间部分 | 
| Year() | 返回一个日期的年份部分 | 
数值处理:
| 函 数 | 说 明 | 
|---|---|
| Abs() | 返回一个数的绝对值 | 
| Cos() | 返回一个角度的余弦 | 
| Exp() | 返回一个数的指数值 | 
| Mod() | 返回除操作的余数 | 
| Pi() | 返回圆周率 | 
| Rand() | 返回一个随机数 | 
| Sin() | 返回一个角度的正弦 | 
| Sqrt() | 返回一个数的平方根 | 
| Tan() | 返回一个角度的正切 | 

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号