RDBMS: 关系数据库管理系统
Oracal
Sybase
DB2
Infomix
SQL Server
Mysql
AB--Sun―Oracle
Percona 修改版-- 实现热备份
PostgreSQL
EnterpriseDB
社区版
企业版 欲搞掉Oracle
MariaDB--作者新作
列:字段,条目的属性
行:记录,条目
数据库:对象 ,逻辑组件
表
索引
视图
事务(ACID)
触发器
存储过程:一组sql语句
存储函数:
游标:
事件调度器:mysql中cron
用户:
逻辑结构如何转换为物理结构存储到磁盘上,
索引:btree平衡树
存储引擎:将逻辑组件转换物理结构存储到磁盘上的工具,数据库的文件系统管理器,可以理解五表类型
mysql:插件式引擎(MyISAM,InnoDB事务区别,锁区别),
MyISAM:
Tb_name.MYD 数据文件
Tb_name.frm 数据表格式
Tb_name.MYI 数据索引
InnoDB:
Tb_name.frm 数据结构
table space (数据与索引)
事务日志:修改插入删除操作全部写到事务日志中。redo,undo ,事务日志存储很快,而直接存储数据很慢,需要随机寻道浪费很大的资源。
二进制日志:把影响到修改到数据的表的mysql语句记录到二进制日志中
客户端与服务器端基于协议实现传输。
库:将客户端的操作封装为服务器接收的格式
DML
DDL
DCL grant revoke
DBA:
开发DBA:编写存储过程,函数,事务等
管理DBA:备份恢复,数据库软件的管理,用户安全管理,架构实施,性能分析优化
/etc/my.cnf:集中式的选项文件
mysql可能读多个配置文件:
/etc/mysql/my.cnf /etc/my.cnf SYSCONFDIR/my.cnf全局 默认顺序
$MYSQL_HOME/my.cnf myql进程的运行目录 局部的配置文件
~/.my.cnf
strace 追踪启动过程
strace �Ce stat64 msyqld > /dev/null
mysqld �Cverbos �Chelp 查看详细帮助
show [global|session] variables 查看服务器变量
服务器变量:
全局变量
会话变量:只对当前用户有效
show [global|session] status LIKE Condition(%|_) 状态变量 统计数据信息或运行状态信息
全局级别:GlOBAL
会话级别:SESSION
mysql
两种模式:
交互式模式:mysql>
客户端命令:客户本地执行
服务器命令:要发送至服务器端,并取回结果至本地,必须使用命令结束符
批处理模式: 执行sql脚本
mysql
mysqladmin
mysqldump
命令行选项 : �Chelp �C?
--host= | -hHOST
--user= | �Cu
--password= | �CpPASSWORD 或者直接回车
--protocol = { tcp | socket | pipe | memory}
--port=PORT | �CP PORT
--socket=/path/mysql.sock
-D DB_name,--database=DB_NAME 默认数据库
--ssl-ca=/path/to/ssl_ca_file
--ssl-capath=/path/to/ca_dir
--ssl-cert=/path/to/cert_file
--ssl-key=/path/to/key_file
--ssl-verify-server-cert 校验
Ctrl +w 删除前一个字符
Ctrl + y 粘贴
\c 结束
select version();select database();
\r 重新连接到服务器
\d 定义分隔符
\e 有编辑器中编辑
\G 每行纵向显示
\g 发送到服务器
\q
\. 执行脚本
\s 状态统计
\! 执行本地shell
\# 重建hash表
-A 禁用hash补全
-e 不用连接msyqld上,直接使用
mysqladmin
mysqldadmin [options] command [arg]
mysqladmin ping
mysqladmin create|drop DB_name
mysqladmin status --sleep 2 --count N 动态显示N 次
mysqladmin extended-status 与show variable一样
mysqladmin flush-hosts 清空禁止连接缓存与DNS解析缓存
mysqldadmin flush-logs 二进制日志滚动
show master status 显示当前使用二进制日志
mysqladmin flush-privileges
mysqladmin flush-status 状态清零
mysqladmin flush-tables 关闭打开的表
mysqladmin flush-theads 清理线程缓存
mysqladmin kill 杀死线程
show processlist 显示线程
myadmin �Curoot �Ch localhost �Cp password ‘redhat’更改密码
mysqladmin processlist 显示过程
mysqladmin reload 刷新授权
mysqldadmin shutdown
mysqladmin variables 与show variables 一样
start-slave 启动从服务器
GUI 客户端
Navicat to mysql
sqlyog
Mysql Front
phpMyAdmin
mysql workbench
约束:constraint
主键约束:primary key 不允许空,每个表只能一个主键 (候选键)
唯一键约束:uniq key 可以为空,可以有多个
外键约束:foreign key 引用约束,一张表数据在另一张表中出现,只有支持事务的存储引擎才能使用 foreign_key_checks 定义外键约束是否生效
检查约束:自定义的约束 比如年龄
数据库模型设计:
实体--关系模型
降低冗余,
数据库范式:
设计一个玩玩
数据类型:定义存储空间大小与存储格式
字符型:
char(M) 255个
varchar(M) 65536
数据型:
精确数值
int
decimal
近似数值:
fload
double
real
时间日期:
内建类型:ENUM SET
修饰符:
not null
null
default 字符串 ‘’引起来
character set
show charactor set;查看字符集
show collation 排序规则
创建表时要紧跟字符后
auto_increment 自增 +1 必须定义为主键或唯一键才能用
unsigned 无符号
primary key();
zerofill
SQL_MODE 工作模式 兼容oracle等 set global sql_mod=’string’
traditional,strict_trans_tables,strict_all_tables
set @@SESSION.sql_mod=’string’内置变量2@ ,自定义变量1@