是什么
- MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品
- MySQL是现在流行的关系型数据库之一,使用起来是免费的
- MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言
其他数据库
数据库 | 说明 | 所属公司 |
---|
Oracle | 大型关系型数据库,收费 | Oracle |
SQL Sever | 关系型数据库,有免费版本的 | 微软 |
MongoDB | 文档型数据库,储存数据的结构和JSON很像 | 10gen |
DB2 | 关系型数据库系统 | IBM |
h2 | 纯java实现的关系数据库,短小精干的软件,1M左右 | 开源的项目 |
SQL
- 结构化查询语言(Structured Query Language)简称SQL
- 是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名
- SQL分类
数据定义语言(DDL,Data Defintion Language)
数据操作语言(DML,Data Manipulation Language)
数据控制语言(DCL, Data Control Language)
安装
基本操作
查询操作
select * from tableName
去掉重复:DISTINCT
where
like
order by:asc(默认),desc(降序)
笛卡尔积效应
左连接:以左边表为主,左表的数据全部显示,右表数据匹配到了就显示,没有匹配到就用空值代替
右连接:以右边表为主,右表的数据全部显示,左表数据匹配到了就显示,没有匹配到就用空值代替
自连接:自己和自己连接
统计查询:group by
子查询
结果集合并:
UNION:返回查询结果的全部内容,重复数据不显示
UNION ALL:返回查询结果的全部内容,重复数据也会显示
其他操作
权限控制
将复杂sql变为简单sql
- 索引:提高查询效率
- 触发器:自动性
- 储存过程:批量执行sql
- 函数:自定义一个函数
- 事务
事务的特性
事务的隔离级别有哪些,默认的隔离级别是多少
事务的隔离级别不同会出现哪些问题
查看,修改默认的事务隔离级别
常用函数
字符串函数 | 说明 |
---|
UPPER(列|字符串) | 将字符串的内容全部转为大写 |
LOWER(列|字符串) | 将字符串的内容全部转为小写 |
LENGTH(列|字符串) | 求出字符串的长度 |
SUBSTR(列|字符串,起始索引,长度) | 截取字符串 |
REPLACE(列|字符串) | 字符串替换 |
TRIM(列|字符串) | 去掉左右空格 |
INSTR(列|字符串,要查找的字符串) | 查找字符串中某个字符的索引,找不到返回0 |
CONCAT(列|字符串,列|字符串,…) | 将多列合并成一列 |
数值函数 | 说明 |
---|
ROUND(数字,保留位数) | 对小数进行四舍五入,可以指定保留的位数,如果不指定则表示将小数点之后的数字全部进行四舍五入 |
MOD(数字,数字) | 取模 |
日期函数 | 说明 |
---|
now() | 取得当前系统时间 |
ADDDATE(日期,数字) | 制定的日期加上指定的天数,求出新的日期 |
LAST_DAY(日期) | 求出指定日期的最后一天 |
统计函数 | 说明 |
---|
COUNT(*|列) | 求出全部的记录数 |
SUM(列) | 求出总和 |
AVG(列) | 平均值度 |
MAX(列) | 最大值 |
MIN(列) | 最小值 |
通用函数 | 说明 |
---|
IFNULL(数字|列,默认值) | 如果显示数据是null,就使用默认值 |
CASE 列|数值 WHEN 表达式1 THEN 显示结果1 … ELSE 表达式2 END | 用于实现多条件判断 |