插入数据
指定字段及其值:INSERT INTO
table_name(col_name1,col_name2,……col_namen) VALUES
(value1,value2,……valuen);
不指定字段只列出字段值:INSERT INTO
table_name VALUES
(value1,value2,……,valuen);
向表中指定字段插入数据:INSERT INTO
table_name(col_name1,col_name2,……,col_namen) VALUES
(value1,value2,……,valuen);
同时插入多条数据:INSERT INTO
table_name(col_name1,col_name2,……,col_namen) VALUES
(value1,value2,……,valuen),
……
(value 1,value2,……,valuen);
修改数据
Alter
1:删除列
ALTER TABLE 【表名】 DROP
【列名】;
2:增加列
ALTER TABLE 【表名】 ADD
【列名】 INT NOT NULL COMMENT '注释说明'
3:修改列的类型信息
ALTER TABLE 【表名】 CHANGE
【旧列名】【新列名】 【数据类型】;
4: 修改列的数据类型
ALTER TABLE 【表名】 MODIFY
【列名】【新数据类型】;
5:重命名列
ALTER TABLE 【表名】 CHANGE
【旧列名】【新列名】【数据类型】;
6:重命名表
ALTER TABLE 【旧表名】 RENAME
【新表名】;
Rename table 【旧表名】 to 【新表名】;
7:删除表中主键
Alter TABLE 【表名字】 drop
primary key
Update
1:修改所有数据:UPDATE
table_name SET
col_name1=value1,col_name2=value2……,col_namen=valuen;
2:修改指定数据:UPDATE
table_name SET
col_name1=value1,col_name2=value2,……,col_namen=valuen WHERE
condition;
删除数据
删除所有数据:DELETE FROM
table_name;
删除指定数据:DELETE FROM
table_name WHERE
condition;
查询数据
查询所有字段:SELECT *
FROM table_name;
查询指定字段的数据:SELECT
col_name1[,col_name2,……,col_namen]
FROM
table_name;
使用WHERE子句对表中的记录进行筛选:SELECT {*|col_list}
FROM table_name WHERE
condition;
使用AND关键字查询:SELECT * FROM goods WHERE price>50 AND
id>3;
使用OR关键字查询:SELECT * FROM goods WHERE type='糖类' OR
type='书籍';
使用IN关键字查询:
SELECT {*|col_list} FROM table_name WHERE col_name IN (value1,value2,……valuen);
IN关键字还可以与NOT关键字配合使用:SELECT * FROM goods WHERE id NOT IN
(1,3);
查询字段值为NULL:SELECT {*|col_list} FROM table_name WHERE col_name IS NULL
;
IS NULL也可以和NOT关键字配合使用:SELECT * FROM goods WHERE num IS NOT
NULL;
DISTINCT关键字查询结果不重复:SELECT DISTINCT
col_list FROM table_name;
BETWEEN AND关键字:
SELECT {*|col_list} FROM table_name WHERE col_namea BETWEEN
value1 AND
value2;
使用LIKE关键字的查询:SELECT {*|col_list} FROM table_name WHERE
col_namea LIKE valueb
;
通配符 “_”
“%”
使用ORDER BY关键字:
SELECT {*|col_list} FROM table_name ORDER BY
col_namea [ASC升序|DESC降序]
;
使用LIMIT关键字来限制查询结果:
SELECT {*|col_list} FROM table_name LIMIT
[offset_start,]
row_count;
{callout color="#4d86ef"}
分组查询是将查询结果按照某个或多个字段进行分组,MySQL使用GROUP BY语句对数据进行分组。GROUP BY从字面上理解就是“根据(BY)一定的规则进行分组(GROUP)”。它的工作原理是按照一定的规则将一个数据集合划分成若干个小的区域,然后针对这些区域的数据进行处理,语法形式如下:
{/callout}
SELECT {*|col_list} aggregate_func FROM table_name GROUP BY col_namea [HAVING condition]
;
例:
执行SQL语句,将goods表中的记录按照type字段(商品类别)进行分组,并统计每组的数量,结果如下:
SELECT type
,count(*)
FROM goods GROUP BY
type;
将goods表中的记录按照type字段分组并统计每组的数量,然后只取商品数量大于1的分组,结果如下:
SELECT type
,count( * )
FROM goods GROUP BY
type HAVING
COUNT( * )>1;
WHERE
子句在进行分组操作之前用来选择记录,而HAVING子句在进行分组操作之后通过过滤来选择分组。HAVING
子句中的每个字段必须被包含在SELECT关键字后的字段列表中。HAVING
子句可以包含聚合函数,但WHERE子句不能。