MySQL
MySQL 是最流行的关系型数据库管理系统
什么是数据库?
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,
每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。
我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
RDBMS即关系数据库管理系统(Relational Database Management System)的特点:
- 1.数据以表格的形式出现
- 2.每行为各种记录名称
- 3.每列为记录名称所对应的数据域
- 4.许多的行和列组成一张表单
- 5.若干的表单组成database
MySQL 创建数据库
CREATE DATABASE name;
MySQL 创建表
CREATE TABLE table_name;
MySQL 删除表
DROP TABLE table_name;
MySQL 增加一条数据
INSERT INTO table_name (column1,column2,....columnN) values (value1,value2.....valueN);
如果数据是字符型,必须使用单引号或者双引号,如:"value"。
MySQL 查询数据
SELECT column_name1,column_name2 FROM table_name [where];
- SELECT 命令可以读取一条或者多条记录。
- 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
- 你可以使用 WHERE 语句来包含任何条件
MySQL WHERE 语句
SELECT column_name1,column_name2... FROM table_name1,table_name2..
WHERE contidion1 [AND][OR] condition2;
- 你可以使用 AND 或者 OR 指定一个或多个条件。
- WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。
MySQL UPDATE 语句
UPDATE table_name SET coumn1=value,coumn2=value [WHERE];
MySQL DELETE 语句
DELETE FROM table_name [where];
MySQL LIKE 语句
SELECT column_name1,column_name2...
FROM table_name
WHERE column_name LIKE contidion1 [AND][OR] column_name2='dfaa';
'%a' 以a结尾的数据
'a%' 以a开头的数据
'%a%' 含有a的数据
'_a_' 三位且中间字母是a的
'_a' 两位且结尾字母是a的
'a_' 两位且开头字母是a的
SQL LIKE 子句中使用百分号 %字符来表示任意字符,类似于UNIX或正则表达式中的星号 *。
如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的。
MySQL UNION 操作符
UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据
SELECT column_name1,column_name2...
FROM table_name
[WHERE]
UNION [ALL | DISTINCT]
SELECT column_name1,column_name2...
FROM table_name
[WHERE]
DISTINCT: 可选,删除结果集中重复的数据。默认情况下 UNION 操作符已经删除了重复数据。
ALL: 可选,返回所有结果集,包含重复数据。
MySQL 排序
SELECT column_name1,column_name2...
FROM table_name1,table_name2
[WHERE]
OREDER BY column_name1 [,column_name2] [ASC[DESC]];
你可以设定多个字段来排序。
你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。
GROUP BY 语句
GROUP BY 语句根据一个或多个列对结果集进行分组。
在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。
SELECT column_name,function(column_name)
FROM table_name
[WHERE]
GROUP BY column_name [ WITH ROLLUP];
WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。
1、group by 语句用法有一个注意点,在 select 语句中,所查询的字段除了聚合函数(SUM ,AVG,COUNT...)以外 必须只能是分组的字段
举例:SELECT id,name,count(*) FROM employee_tb1 GROUP BY name;
运行该语句程序会报错,因为 id 字段并不包含在 GROUP BY 分组中.
改为如下:SELECT id,name ,count(*)FROM employee_tb1 GROUP BY id,name;
则程序可以正常运行。
2、分组后的条件使用 HAVING 来限定,WHERE 是对原始数据进行条件限制。几个关键字的使用顺序为 where 、group by 、having、order by ,例如:
SELECT name ,sum(*) FROM employee_tb1 WHERE id<>1 GROUP BY name HAVING sum(*)>5 ORDER BY sum(*) DESC;
MySQL 表连接
INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
MySQL ALTER命令
当需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令。
删除,添加或修改表字段:
删除:ALTER TABLE testalter_tbl DROP i;(删除一列i)
添加:ALTER TABLE testalter_tbl ADD i INT;(添加一列int型的i列)
修改: ALTER TABLE testalter_tbl MODIFY c CHAR(10);(把c列的类型改为char)