MySQL高级查询
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL高级查询相关的知识,希望对你有一定的参考价值。
修改表
修改表名
语法:
ALTER TABLE<旧表名> RENAME [TO] <新表名>;
添加字段
语法:
ALTER TABLE 表名 ADD 字段名 数据类型 [属性];
修改字段
语法:
ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性];
删除字段
语法:
ALTER TABLE 表名 DROP 字段名;
添加主外键
1.添加主键约束
语法:
ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段);
2.添加外键约束
语法:
ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (外键字段) REFERENCES 关 联表名(关联字段);
DML语句回顾
插入数据记录
1.插入单行数据
语法: INSERT INTO 表名 [(字段名列表)] VALUES (值列表);
2.插入多行数据
语法: INSERT INTO 新表 (字段名列表) VALUES (值列表1), (值列表2), ......, (值列表n);
3. 将查询结构插入到新表
语法1:
INSERT INTO 新表(字段1,字段2,......)
SELECT 字段1,字段2,......
FROM 原表;
语法2:
CREATE TABLE 新表 (SELECT 字段1,字段2, ........FROM 原表);
更新数据记录
语法:
UPDATE 表名 SET 字段1=值1,字段2=值2,........字段n=值n [WHERE 条件];
删除数据记录
语法: DELETE FROM 表名 [WHERE条件]; -------删除单条记录
语法: TRUNCATE TABLE 表名; ------删除全部记录
数据查询
DQL语句回顾
LIMIT子句
语法:
SELECT<字段名列表>
FROM<表名或视图>
[WHERE <查询条件>]
[GROUP BY <分组的字段名>]
[ORDER BY <排序的字段名> [ASC 或 DESC]]
[LIMIT [位置偏移量, ]行数];
常用函数
常用聚合函数:
函数名 |
作用 |
AVG() |
返回某字段的平均值 |
COUNT() |
返回某字段的行数 |
MAX() |
返回某字段的最大值 |
MIN( ) |
返回某字段的最小值 |
SUM( ) |
返回某字段的和 |
常用的字符串函数
函数名 |
作用 |
举例 |
CONCAT(str1,str2,...,strn) |
连接字符串str1,str2,...,strn为一个完整字符串 |
SELECT CONCAT(‘My’,’S’,’QL’); 返回:mysql |
INSERT(str,pos,len,newstr) |
将字符串str从pos位置开始,len个字符长的子串替换为字符串newstr |
SELECT INSERT(‘这是SQL SERVER数据库’,3,10,’MySQL’); 返回:这是MySQL数据库 |
LOWER(str) |
将字符串str中所有字符变为小写 |
|
UPPER(str) |
将字符串str中所有字符串变为大写 |
SELECT UPPER(‘MySQL’); 返回: MYSQL |
时间日期函数
函数名 |
作用 |
CURDATE() |
获取当前日期 |
CURTIME() |
获取当前时间 |
NOW() |
获取当前日期和时间 |
WEEK(date) |
返回日期date为一年的第几周 |
YEAR(date) |
返回日期date的年份 |
HOUR(time) |
返回时间Time的小时值 |
MINUTE(time) |
返回时间Time的分钟值 |
DATEDIFF(date1,date2) |
返回日期参数date1和date2之间相隔的天数 |
ADDDATE(date,n) |
计算日期参数date加上n天后的日期 |
数字函数
函数名 |
作用 |
CEIL(x) |
返回大于或等于数值x的最小整数 |
FLOOR(x) |
返回小于或等于数值x的最大整数 |
RAND() |
返回0~1间的随机数 |
以上是关于MySQL高级查询的主要内容,如果未能解决你的问题,请参考以下文章