MySQL
2018-08-31 19:21:51 38 举报
AI智能生成
MySQL知识结构
作者其他创作
大纲/内容
简介
历史
瑞典MySQL公司发明,后被Oracle收购
安装
环境变量
path
根目录\bin
数据库类型
关系型数据库
Oracle、db2、MySQL、sqlserver...
使用sql语句
特点
优点
保持数据一致性(事务处理)
数据更新开销小
可以进行复杂查询
缺点
成本高i
不擅长大量数据的写入处理
数据存于硬盘中
只能存储基础类型
扩展性不好
多表查询机制的限制
LAMP
Linux,apache,MySQL,PHP
非关系型数据库
Redis、mongodb、elasticsearch、hbase...
特点
优点
成本低
查询速度快且安全
数据存于缓存中
可以存储基础类型,对象,集合等多种格式
缺点
不支持sql语句
没有关系约束
不提供关系型数据库对事务的处理
维护工具与资料有限
分布式
默认端口号:3306
sql语句
数据类型
数值型
严格数值数据类型
INTEGER (INT)
1字节 (0,255) 小整数
SMALLINT
DECIMAL (DEC)
DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 小数值
NUMERIC
近似数值数据类型
FLOAT
REAL
DOUBLE PRECISION
时间
DATATIME
混合日期和时间值
YYYY-MM-DD HH:MM:SS
DATA
日期值
YYYY-MM-DD
TIMESTAMP
混合日期和时间值,时间戳
YYYYMMDD HHMMSS
TIME
时间值或持续时间
HH:MM:SS
YEAR
年份值
YYYY
字符
CHAR
定长字符串
VARCHAR
变长字符串
BINARY
VARBINARY
BLOB
二进制形式的长文本数据
TEXT
ENUM
SET
语句分类
DDL
create
create database name
create table name(name type(length)...);
alter
modify
alter table tname modify name type(length);
add
alter table tname add column name type(length);
drop
alter table tname drop column name;
change
alter table tname change column oldname newname type(length);
drop
drop database/table name;
DML
insert
insert into name(...) values(...);
update
update name set name=.. where name..;
delete
delete from tname where name=..'
selete
select...from
虚拟表:dual
可以用来测试函数和表达式
去重查询:distinct
系统时间查询:sysdate()
IFNULL(name,value)
重命名
rename coiumn oldname to new name
拓展
过滤
where
等值比较 =
非等值比较
> < >= <= <>
and or not
与 或 非
having
in语句
等于值列表中的一个
函数
单行函数
字符函数
大小写控制函数
lower
转小写
upper
转大写
字符控制函数
substr
截取字符串
SUBSTR('HelloWorld',1,5)
concat
字符拼接
concat('hello','word')
LENGTH
字符长度
LENGTH('HelloWorld')
INSTR
字符位置
INSTR('HelloWorld', 'W')
TRIM
去除字符
TRIM('H' FROM 'HelloWorld')
数字函数
round
四舍五入
round(15.23,2)
mod
取余
mod(1600,300)
转换函数
时间转换
date_formate(date,'格式')
时间转字符串
str_to_date('str','格式')
字符串转时间
数字转换
(CAST(数字 AS CHAR(n))
数字转字符串
cast( 'str' as SIGNED INTEGER) )
字符串转时间
嵌套函数
组函数
avg 平均值
max 最大值
min 最小值
sum 总和
count 计数
分组函数
group by
笛卡尔集
省略连接条件
连接条件无效
所有表中的所有行互相连接
查询
关联查询
外连接
左外
LEFT ( OUTER) JOIN
读取左边数据表的全部数据,即便右边边表无对应数据
右外
RIGHT (OUTER) JOIN
读取右边数据表的全部数据,即便左边边表无对应数据
满外
FULL JOIN
只要有一个表中数据匹配,则返回行
内连接
等值连接
where
using
非等值连接
自连接
非自连接
模糊查询
like
通常与% _ 一块儿使用
分组查询
group by
子查询
内查询
排序 order by
desc (降序)
asc 升序(默认)
函数
ASCII
分页查询
limit函数
select * from name limit m,n
从m+1条开始只查询n条数据
DCL语句
grant
授予访问权限
revoke
撤销访问权限
commit
提交事务处理
rollback
事务处理回退
savepoint
设置保存点
lock
对数据库的特定部分进行锁定
DQL语句
数据查询语句
表
操作
创建
create table tname(字段 type().....)
复制表
create table t1 as select * from t2 where 1=2
insert into t1(字段...) select 字段... from t2
删除表
drop table tname
修改表
清空表
delete from tname
可以回滚
truncate table
不能回滚
约束 CONSTRAINT
作用域
表级约束
可以作用在一个或多个列上
定义时不与列一起,单独定义
列级约束
只能作用在一个列上
定义时必须跟在列的定义后面
非空约束只能定义在列上
分类
NOT NULL
保证列值不能为空
只能定义在列级
UNIQUE
唯一约束,允许出现多个空值
PRIMARY KEY
可以定义在表级或列级
FOREIGN KEY
可以定义在表级或列级上
关键字
FOREIGN KEY
在表级指定子表中的列
REFERENCES
标示在父表中的列
ON DELETE CASCADE(级联删除)
当父表中的列被删除时,子表中相应的列也被删除
ON DELETE SET NULL(级联置空)
子表中相应的列置空
CHECK
定义每一行必须满足的条件
创建
alter table
添加或删除约束,但是不能修改约束
有效化或无效化约束
添加not null 约束要使用modify 语句
无效化约束
使用disable子句
激活约束
enable
查询
查询约束
from user_constraints
查询定义约束的列
USER_CONS_COLUMNS
修改
视图
作用
控制数据访问
简化查询
避免重复访问相同的数据
分类
特性
简单视图
复杂视图
表的数量
一个
多个
函数
没有
有
分组
没有
有
DML操作
可以
有时可以
创建视图
create VIEW v_name AS SELECT * FROM tname where....条件
视图查找
select * from v_name where ...条件
修改视图数据
update v_name set ....
插入数据
insert into v_name(字段) values()
删除数据
delete from v_name where ...条件
创建或替换视图
create or replace view v_name as select...from...
查看所有视图
show tables
不包含表
show tables like 'v\_%'
查看视图详情
DESC v_name
索引 index
概念
将常查询的字段维护到一张(虚拟表),查询该字段的时候到这个虚拟表中查询到对应的表的位置
优点
查询效率高。(因为查询的时候先从已经去除多余的字段的小虚拟表中查询,再找到对应的数据信息,所以效率高。)
缺点
增删改效率偏低。(因为增删改的时候要维护表的同时还要维护一下索引)
分类
普通索引
索引对应字段可重复
查询效率低
唯一索引
索引对应字段不可重复
查询效率快
操作
普通索引
创建索引
格式:创建 索引 索引名 on 表名(字段名(长度))
CREATE INDEX i_name on tname(字段)
添加索引
--格式:修改 表 表名 增加 索引 索引名(索引字段)
alter table tname add index i_name(字段)
创建表+索引
格式:创建 表 表名(字段 属性(长度) ,索引 索引名(字段))
create table tname(字段,type()....index i_name(字段))
删除表中索引
• 格式:删除 索引 索引名 on 表名
drop index i_name on tname
唯一索引
创建唯一索引
• 格式:创建 唯一 索引 索引名 on 表名(字段名)
creat unique index i_name on tname(字段)
修改表,创建唯一索引
格式:修改 表 表名 增加 唯一 索引 索引名(字段)
alter table tname add unique index i_name(字段)
创建表+唯一索引
• 格式:创建 表 表名(字段 属性(长度),唯一 索引 索引名(字段))
create table tname(字段,type().....unique index i_name(字段))
存储过程
创建
create procedure pname() begin......end;;
执行
call pname()
事件
一组逻辑操作单元,使数据从一种状态变换到另一种状态(同时)
0 条评论
下一页