1.增加表记录
<1>插入一条记录:
insert [into] tab_name (field1,filed2,.......) values (value1,value2,.......);<2>插入多条记录:
insert [into] tab_name (field1,filed2,.......) values (value1,value2,.......),
(value1,value2,.......),
... ;<3>set插入:
insert [into] tab_name set 字段名=值
2.修改表记录
update tab_name set field1=value1,field2=value2,......[where 语句]
3.删除表记录
方式1:
deletefromtab_name [where ....]
方式2:
truncate table emp_new;/*如果不跟where语句则删除整张表中的数据
delete只能用来删除一行记录
delete语句只能删除表中的内容,不能删除表本身,想要删除表,用drop
TRUNCATE TABLE也可以删除表中的所有数据,词语句首先摧毁表,再新建表。此种方式删除的数据不能在
事务中恢复。*/
4.查询表记录
--查询语法:
SELECT*|field1,filed2 ... FROM tab_name
WHERE 条件
GROUP BY field
HAVING 筛选
ORDER BY field
LIMIT 限制条数--Mysql在执行sql语句时的执行顺序:-- from where select group by having order by
5.where字句
(1)过滤查询
--where字句中可以使用:--比较运算符:> < >= <= <> !=between80 and 100值在10到20之间in(80,90,100) 值是10或20或30
like'yuan%'
/*pattern可以是%或者_,
如果是%则表示任意多字符,此例如唐僧,唐国强
如果是_则表示一个字符唐_,只有唐僧符合。两个_则表示两个字符:__*/
--逻辑运算符
在多个条件直接可以使用逻辑运算符and or not
示例
--查询年纪大于24的员工
SELECT* FROM emp WHERE age>24;--查询教学部的男老师信息
SELECT* FROM emp WHERE dep="教学部" AND gender="male";
(2)order 排序
--语法:
select*|field1,field2... from tab_name order by field [Asc|Desc]-- Asc 升序、Desc 降序,其中asc为默认值 ORDER BY 子句应位于SELECT语句的结尾。
示例
--按年龄从高到低进行排序
SELECT*FROM emp ORDER BY age DESC ;--按工资从低到高进行排序
SELECT*FROM emp ORDER BY salary;
(3)group by 分组查询
GROUP BY 语句根据某个列对结果集进行分组。在分组的列上我们可以使用 COUNT, SUM, AVG等函数进行相关查询。
--语法:
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
(4)limit记录条数限制
SELECT * from ExamResult limit 1;
SELECT* from ExamResult limit 2,5; --跳过前两条显示接下来的五条纪录
SELECT* from ExamResult limit 2,2;
(5)正则表达式
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}';