一、定义

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';