表记录的增删改查
---插入表记录 INSERT
-- 插入一条数据
INSERT [INTO] table_name (字段名称,...) VALUES(值,...);
---插入多条数据
INSERT [INTO] table_name (字段名称,...) VALUES(值,...),
(值,...),
...
(值,...);
---修改表记录 UPDATE
UPDATE table_name SET 字段=值,字段=值... WHERE 字句;
---删除表记录
DELETE FROM table_name [WHERE 字句];
/* 如果不跟where语句则删除整张表中的数据 delete只能用来删除一行记录 delete语句只能删除表中的内容,不能删除表本身,想要删除表,用drop TRUNCATE TABLE也可以删除表中的所有数据,此语句首先摧毁表,再新建表。此种方式删除的数据不能在 事务中恢复。*/
TRUNCATE TABLE table_name;
查询表记录(重点)
准备表和记录:
CREATE TABLE table_name (
字段名称 字段数据类型 [约束],
字段名称 字段数据类型 [约束],
...
字段名称 字段数据类型 [约束],
);
INSERT [INTO] table_name (字段名称,...) VALUES (值,...),
(值,...),
...
(值,...);
-- 查询语法:
SELECT *|field1,filed2 ... FROM table_name
WHERE 条件
GROUP BY field
HAVING 筛选
ORDER BY field
LIMIT 限制条数
简单查询
-- (1)select [distinct] *|field1,field2,...... from table_name -- 其中from指定从哪张表筛选,*表示查找所有列,也可以指定一个列
-- 表明确指定要查找的列,distinct用来剔除重复行。
-- (2)select 也可以使用表达式,并且可以使用: 字段 as 别名或者:字段 别名
注意:不加逗号的后果:
select name,JS from ExamResult;(√)
select name JS from ExamResult; -- what will happen?---->记得加逗号
使用where子句,进行过滤查询
where子句中可以使用:
-- 比较运算符:
> < >= <= <> != (后面两条都是表示不等于)
between 80 and 100 值在80到100之间
in(80,90,100) 值是80或90或100
like ‘yuan%‘
like ‘李___‘
/* %表示任意多字符 _则表示一个字符李_,两个_则表示两个字符:__ */
-- 逻辑运算符
在多个条件之间可以使用逻辑运算符 and or not
order by排序
指定排序的列,排序的列既可是表中的列名,也可以是select 语句后指定的别名。 select *|field1,field2... from tab_name order by field [Asc|Desc]
-- Asc 升序、Desc 降序,其中asc为默认值 ORDER BY 子句应位于SELECT语句的结尾。
group by分组查询
-- 注意,按分组条件分组后每一组只会显示第一条记录
-- group by字句,其后可以接多个列名,也可以跟having子句,对group by 的结果进行筛选。
/* having 和 where两者都可以对查询结果进行进一步的过滤,差别有: <1>where语句只能用在分组之前的筛选,having可以用在分组之后的筛选; <2>使用where语句的地方都可以用having进行替换 <3>having中可以用聚合函数,where中就不行。 */
-- GROUP_CONCAT() 函数
SELECT id,GROUP_CONCAT(name),GROUP_CONCAT(JS) from ExamResult GROUP BY id;
聚合函数
--<1> 统计表中所有记录 -- COUNT(列名):统计行的个数
-- SUM(列名):统计满足条件的行的内容和
-- AVG(列名):统计该列平均值
-- Max、Min:统计最大值和最小值
limit记录条数限制
SELECT * from ExamResult limit 1; SELECT * from ExamResult limit 2,5; -- 跳过前两条显示接下来的五条纪录 SELECT * from ExamResult limit 2,2;
正则表达式
SELECT * FROM employee WHERE emp_name REGEXP ‘^yu‘; SELECT * FROM employee WHERE emp_name REGEXP ‘yun$‘; SELECT * FROM employee WHERE emp_name REGEXP ‘m{2}‘;