您的位置:首页 > 数据库 > MySQL

MySQL增删改查语句

2011-09-13 21:10 246 查看
一、操作数据(查询)

1、DISTINCT

语法:SELECT [DISTINCT] 列名[, 列名]... FROM 表名

DISTINCT为过滤重复记录如果DISTINCT后面跟多列, 是过滤掉多列合并之后的重复

2、AS

语法:SELECT 列名 AS 别名 FROM 表名

给数据库起别名,起别名时AS可以省略,不会改变数据库中的值

3、WHERE

语法:SELECT 列名 FROM 表名 [WHERE 条件语句]

条件查询数据库中的记录

4、ORDER BY

语法:SELECT 列名 FROM 表名 ORDER BY 列名 ASC|DESC;

ORDER BY 指定排序的列名可以是表中的列名, 也可以是SELECT语句后面起的别名,ASC为升序, DESC为降序,ORDER BY应在查询语句的结尾

5、COUNT函数,SUM函数,AVG函数,MAX /MIN函数,GROUP BY

二、函数

1、时间函数

ADDTIME(原时间, 增加值) 在某个时间上增加一段时间

CURRENT_DATE() 当前日期

CURRENT_TIME() 当前时间

CURRENT_TIMESTAMP() 当前时间戳1970-2037会随着你的时间而改变

DATE(时间) 返回制定时间的日期部分

DATE_ADD(日期,INTERVAL 增加值类型) 在指定日期上对某个字段增加

DATE_SUB(日期,INTERVAL 减少值类型) 在指定日期上对某个字段减少

DATEDIFF(日期1, 日期2) 计算两个日期之间的差值

NOW() 当前时间

YEAR|MONTH|DATE|HOUR|MINUTE|SECOND(时间) 获取指定时间的某个字段

2、字符串函数

CHARSET(字符串) 返回字符串字符集

CONCAT(字符串1[, 字符串2]... ) 连接字符串

INSTR(字符串, 子字符串) 查找子字符串出现位置, 注意序号从1开始

UCASE(字符串) 将字符串转为大写

LCASE(字符串) 将字符串转为小写

LEFT(字符串, 长度) 从字符串左边取指定长度个字符

LENGTH(字符串) 计算字符串长度

REPLACE(字符串, 搜索字符串, 替换字符串) 将字符串中指定字符串替换为其他字符串

STRCMP(字符串1, 字符串2) 逐个字符比较两个字符串, 如果是包含关系, 则返回长度差值

SUBSTRING(字符串, 开始坐标[, 个数]) 从字符串中截取

LTRIM(字符串) 去掉左边空白

RTRIM(字符串) 去掉右边空白

TRIM(字符串) 去掉左右两边空白

3、数学函数

ABS(数字) 求绝对值

BIN(十进制数) 将十进制转换为二进制

HEX(十进制数) 将十进制转换为十六进制

CONV(数字, 原进制, 目标进制) 转换进制

CEILING(小数) 向上取整

FLOOR(小数) 向下取整

ROUND(小数) 四舍五入

FORMAT(小数, 保留位数) 保留小数位

LEAST(值,值[,值]...) 取最小值

GREATEST(值,值[,值]...) 取最大值

MOD(数字, 数字) 取余

RAND() 生成随机数, 14位小数, 0 <= n <= 1

三、表的约束

1、唯一的约束 unique

unique约束的字段在整张表中唯一, 不可重复, 不包括多个NULL

2、非空约束 not null

notnull约束的字段不能为空

3、主键约束 primary key

primarykey用来标识一个字段, 这个字段是非空且唯一的.

4、外键约束 foreign key

foreign key约束某一列的值是参照另外一列

四、表的设计

主要有:单独的实体,一对多,多对一,一对一,多对多

五、多表查询

1、连接查询

在多表连接查询的时候, 如果没有有效的连接条件, 所有表中的行会互相连接, 形成笛卡尔集.为了避免笛卡尔集, 可以再where后加入有效的连接条件

2、多表连接

多张表连接查询, 一张表外键引用另外一张表, 另外一张表再引用其他表.

3、自连接

自己和自己连接, 当前表的外键引用自己的主键.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: