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 –e stat64 msyqld > /dev/null

mysqld –verbos –help 查看详细帮助

show [global|session] variables 查看服务器变量

服务器变量:

全局变量

会话变量:只对当前用户有效

show [global|session] status LIKE Condition(%|_) 状态变量 统计数据信息或运行状态信息

全局级别:GlOBAL

会话级别:SESSION

mysql

两种模式:

    交互式模式:mysql>

        客户端命令:客户本地执行

        服务器命令:要发送至服务器端,并取回结果至本地,必须使用命令结束符

    批处理模式: 执行sql脚本

mysql

mysqladmin

mysqldump  

     命令行选项 : –help –?  

            --host= | -hHOST

            --user=  | –u

            --password= | –pPASSWORD 或者直接回车

            --protocol  = { tcp | socket | pipe | memory}

            --port=PORT | –P 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 –uroot –h localhost –p 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@