1、数据管理之往数据表中插入数据【insert】
关键字: insert into
values
1.1、一次插入一行数据到数据表
语法一:给所有的列赋值插入一条数据
INSERT INTO `表名` VALUES ('取值1','取值2','取值3',...'取值n');
注意:使用该方式要注意取值的个数与数据类型要与所有的列一一对应,少了、多了、错了都不行。
语法二:给指定列赋值插入一条数据
INSERT INTO `表名`(`列名1`,`列名2`,`列名3`,...`列名n`) VALUES ('取值1','取值2','取值3',...'取值n');
常见错误:
- 插入的字段取值与列名没有一一对应,列名多了,取值少了,或者列名少了,取值多了
- 列对应的数据类型与插入该列的取值的数据类型不一致
- 关键字使用错误
1.2、一次插入多行数据到数据表
语法一:
INSERT INTO `表名` VALUES('取值1','取值2','取值3',...'取值n'),('取值1','取值2','取值3',...'取值n'),...('取值1','取值2','取值3',...'取值n');
语法二:
INSERT INTO `表名`(`列名1`,`列名2`,`列名3`,...`列名n`) VALUES ('取值1','取值2','取值3',...'取值n'),('取值1','取值2','取值3',...'取值n'),...('取值1','取值2','取值3',...'取值n');
1.3、将SQL查询的结果数据插入到当前表中
语法一:
INSERT INTO `表名1`(`列名1`,`列名2`,`列名3`,...`列名n`) SELECT (`列名1`,`列名2`,`列名3`,...`列名n`) FROM `表名2`;
注意: 要插入数据的表中的这些列的数据类型与查询语句中查询出来的这些列的顺序、数据类型、个数完成一致才可以。
2、数据管理之修改数据表中的数据【update】
关键字: update set
where
语法一:修改数据表中所有行
UPDATE `表名1` SET `列名1`='VALUE_1',`列名2`='VALUE_2',`列名3`='VALUE_3',...`列名n`='VALUE_n';
注意: 如果不使用where查询条件过滤会修改当前数据表所有的数据行,一般不要这么干啦,会很麻烦的呢。
语法二:修改数据表中指定行
UPDATE `表名1` SET `列名1`='VALUE_1',`列名2`='VALUE_2',`列名3`='VALUE_3',...`列名n`='VALUE_n' WHERE `列名` =(关系运算符) 'value';
3、数据管理之删除数据表中的数据【delete】
关键字: delete from
where
语法一:删除数据表中所有行
DELETE FROM `表名` ;
语法二:清空数据表中的所有数据行
TRUNCATE TABLE `表名` ;
区别: delete from 清空所有的数据,但是主键如果使用过自增长,再次插入数据时,不会重置起始索引,会在已使用的最大索引基础上开始自增;truncate 清空表数据,保留表结构,也会重置自增长的起始索引从1开始。
语法三:删除数据表中指定行
DELETE FROM `表名` WHERE `列名` =(关系运算符) 'value';
4、数据管理之查询数据表中的数据【select】
关键字: select
from
where
4.1、基础查询–查询整个数据表
语法一:查询整个数据表
SELECT * FROM `表名`;
4.2、基础查询–查询数据表中的某些列
语法一:查询数据表中包含指定列的所有数据行
SELECT `列名1`,`列名2`,`列名3`,...`列名n` FROM `表名`;
4.3、基础查询–去重查询
重复数据的定义:两个或多个数据行中各个列字段的数据类型和取值全部都相同,即为重复数据行
语法一:查询整个数据表并去重
SELECT DISTINCT * FROM `表名`;
语法一:查询数据表中包含指定列的所有数据行并去重
SELECT DISTINCT `列名1`,`列名2`,`列名3`,...`列名n` FROM `表名`;
4.4、基础查询–查询固定值
语法一:
SELECT 1;
SELECT 'a', 'b', 1, 2, 5, 9;
SELECT 'HELLO', now();
SELECT 1+2;
SELECT 3+4*5, 6 + round(6.7) ;
4.5、基础查询–给列命名别名
语法一:
SELECT 1 AS `A`, 2 AS `B`;
SELECT 1 AS `d1`, 2+3 AS `d2`;
SELECT `username` AS `user`, `passwd` AS `pwd` FROM users;
4.6、基础查询–where过滤条件
语法一:
SELECT `列名1`,`列名2`,`列名3`,...`列名n` FROM `表名` WHERE `列名` 关系运算符 '取值';
SELECT `username` AS `user`, `passwd` AS `pwd` FROM users WHERE username = '张三';
算术运算符: +, - , *, / , %
关系运算符: <, >, <=, >=, =, !=, <>
逻辑运算符: and,or, not
4.7、基础查询–where过滤条件精确查询
语法一:
SELECT `列名1`,`列名2`,`列名3`,...`列名n` FROM `表名` WHERE `列名` = '取值';
SELECT `username` AS `user`, `passwd` AS `pwd` FROM users WHERE username = '张三';
4.8、基础查询–where过滤条件模糊查询
语法一:
--匹配单个字符
SELECT `列名1`,`列名2`,`列名3`,...`列名n` FROM `表名` WHERE `列名` like 'ad_';
SELECT `username` AS `user`,`passwd` AS `pwd` FROM users WHERE username like '张_';
语法二:
--匹配以张开头所有数据行
SELECT `列名1`,`列名2`,`列名3`,...`列名n` FROM `表名` WHERE `列名` like '张%';
--匹配以张结尾所有数据行
SELECT `列名1`,`列名2`,`列名3`,...`列名n` FROM `表名` WHERE `列名` like '%张';
--匹配取值中包含‘张’所有数据行
SELECT `列名1`,`列名2`,`列名3`,...`列名n` FROM `表名` WHERE `列名` like '%张%';
SELECT `username` AS `user`,`passwd` AS `pwd` FROM users WHERE username like '%张';
SELECT `username` AS `user`,`passwd` AS `pwd` FROM users WHERE username like '张%';
SELECT `username` AS `user`,`passwd` AS `pwd` FROM users WHERE username like '%张%';
4.9、基础查询–where过滤后查询结果排序
默认升序asc排序
语法一:
--匹配单个字符,查询结果升序排序
SELECT `列名1`,`列名2`,`列名3`,...`列名n` FROM `表名` WHERE `列名` like 'ad_' ORDER BY ASC;
--匹配单个字符,查询结果降序排序
SELECT `列名1`,`列名2`,`列名3`,...`列名n` FROM `表名` WHERE `列名` like 'ad_' ORDER BY DESC;
--匹配单个字符,查询结果升序排序
SELECT `username` AS `user`,`passwd` AS `pwd` FROM users WHERE username like '张%';
--匹配单个字符,查询结果降序排序
SELECT `username` AS `user`,`passwd` AS `pwd` FROM users WHERE username like '张%' ORDER BY DESC;
4.10、基础查询–where过滤后查询结果分页显示
语法一:
--查询整个表,并显示查询结果前5行
SELECT * FROM `表名` LIMIT 5; -
--查询整个表,并显示查询结果从第4行开始的5行
SELECT * FROM `表名` LIMIT 4,5;
--查询整个表,并显示查询结果从第4行开始的5行
SELECT * FROM `表名` LIMIT 5 OFFSET 4;
4.11、基础查询–聚合函数、分组查询
一般聚合函数都是结合分组查询来使用
常用的聚合函数:
COUNT() ----总个数
SUM() ----总和
MAX() ----最大值
MIN() ----最小值
AVG() ----平均值
MEDIAN ----中位值