一、定义
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型 网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
二、语句
1.插入数据
- INSERT INTO 表名(列1,列2,列3)values(值1,值2,值3);
2.查询数据
- SELECT column_name,column_name FROM table_name;
3.查询不重复的列
- SELECT distinct Depart from systeam_teacher;
4.Update 替换数据
- update 表名称 set 列名称=新值 where 更新条件
将手机号为 13288097888 的姓名改为 “小明”,
update students set name=“小明”, age=19 where tel=“13288097888”; - 将所有人的年龄增加 1: update students set age=age+1;
5.从命令行中删除数据
DELETE FROM 表单名字 WHERE runoob_条件;
6.like 匹配/模糊匹配,会与 % 和 _ 结合使用
’%a’ //以a结尾的数据
’a%’ //以a开头的数据
’%a%’ //含有a的数据
’a’ //三位且中间字母是a的
’_a’ //两位且结尾字母是a的
’a_’ //两位且开头字母是a的
查询以 java 字段开头的信息。
例子:SELECT * FROM position WHERE name LIKE ‘java%’;
7.升序降序
SELECT * from 表单名字 ORDER BY 字段-列名 ASC;(升序)
SELECT * from 表单名字 ORDER BY 字段列明名 DESC;(降序)
8.查找:select * from table1 where field1 like ’%value1%’ (所有包含‘value1’这个模式的字符串)
9.排序:select * from table1 order by field1,field2 [desc]
10.求和:SELECT SUM(column_name) FROM table_name
11.平均:select avg(field1) as(取别名) avgvalue from table1
12.最大:SELECT MAX(column_name) FROM table_name
13.最小:SELECT MIN(column_name) FROM table_name
14.介于两个值之间的数据范围:
SELECT * FROM 表格名字 WHERE Degree BETWEEN value1 AND value2;
15.在where子句中规定多个值
SELECT * FROM 表单名字 WHERE 字段-列名 in (‘85’,‘86’,‘88’);
16.查询表格中某值的个数
SELECT COUNT(*) FROM 表格名字t WHERE 字段-列名=‘value’;
17.查询Score表中至少有5名学生选修的并以3开头的课程的平均分数
SELECT AVG(Degree) FROM 表格名字 WHERE Cno LIKE ‘3%’ group by Cno having COUNT(Cno)>4;
18.查询比较内容大于v1,小于v2的Sno列
SELECT Sno列 FROM 表格名字 WHERE 比较内容 BETWEEN value1 and value2;
19.查询两个表里的不同字段
SELECT sst.表格字段1.0 , sst.表格字段1.1 , sse.表格字段2.0 FROM 表格名字 sst(取名) JOIN 表格名字 sse(取名);
20.查询“95033”班学生的平均分
SELECT AVG(Degree) from 表格名字 where Sno in
(SELECT Sno from 表格名字 where Class=‘95033’)
21.GROUP BY分组查询
GROUP BY属性名【HAVING 条件表达式】【with rollup】
21.1 SELECT 列名1,GROUP_CONCAT(列名2)FROM 表名GROUP BY 列名1;
效果:列名1的列名2所有数据都集中在一行。
21.2 SELECT 列名1,COUNT(列名2)FROM 表名GROUP BY 列名2;
效果:列名1的列名2的所有数据的个数。
21.3 HAVING(限制输出的结果)
21.4 WITH ROLLUP(最后假加入一个总和行)。
22.LIMIT分页查询
SELECT * FROM 表名 LIMIT 值1,值2;
23.左右连接查询
SELECT * FROM 表格1 + LEFT(RIGHT)JOIN +表格2 + ON (表格1的列名=表格2的列名);
24.多条件连接
SELECT + 列名+ FROM +表格名+ WHERE +(条=件)+ AND+ 表格1(表格2).列名
25.MySQL UNION 操作符
描述:用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。
SELECT name FROM user UNION;
SELECT name FROM message ;
26.用于创建表的备份复件
CREATE TABLE 新表 (SELECT * FROM 旧表);
运行结果:两个表里面列名为name的值都会显示出来。
27.Order By 语句
SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC | DESC;
三、mysql程序常用命令
选定默认数据库:use dbname;
显示所有数据库:show databases;
显示默认数据库中所有表:show tables;
放弃正在输入的命令:\c
显示命令清单:\h
退出mysql程序:\q
查看MySQL服务器状态信息:\s
四、导入导出数据
Mysql导入数据:MySQL 中提供了LOAD DATA INFILE语句来插入数据。 以下实例中将从当前目录中读取文件 dump.txt ,将该文件中的数据插入到当前数据库的 mytbl 表中。
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;
SELECT … INTO OUTFILE 语句导出数据:
以下实例中我们将数据表 runoob_tbl 数据导出到 /tmp/tutorials.txt 文件中:
ysql> SELECT * FROM runoob_tbl
-> INTO OUTFILE '/tmp/tutorials.txt';