未加星标

mariadb(mysql)的基础知识及使用

字体大小 | |
[数据库(mysql) 所属分类 数据库(mysql) | 发布者 店小二04 | 时间 2016 | 作者 红领巾 ] 0人收藏点击收藏

MariaDB数据库管理系统是mysql的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。

MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。

MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Percona的 XtraDB,InnoDB的变体,分支的开发者希望提供访问即将到来的MySQL 5.4 InnoDB性能。这个版本还包括了 PrimeBase XT (PBXT) 和 FederatedX存储引擎。

DBMS:DataBase Management System 数据库管理系统

RDBMS:Relational DataBase Management System 关系型数据库管理系统

SQL引擎

存储引擎:Storage Engine

数据模型:
层次模型,网状模型,关系模型…

关系模型:

二维关系:表
行;row,entity
列:colume,attribution
索引:数据结构,辅助完成数据查找

SQL接口:

SQL:Structure Query Language 结构化查询语言
ANSI:SQL-标准,SQL-86,SQL-89,SQL-92…
SQL代码:
存储例程:Storage routing
存储过程:storage procedure
存储函数:storage function
触发器:trigger
事件调度器;event scheduler
事务:一个由单个或多个SQL语句组成的不可分割原子操作
ACID:
A:原子性
C:一致性
I:隔离性
D:持久性

数据类型:

作用:存储格式,数据范围,所能参与的运算,排序方式
字符型:
定长字符型:CHAR(#),BINARY(#)
变长字符型:VARCHAE(#),VARBINARY(#)
对象存储:
TEXT
BLOB
内建类型:
ENUM,SET
数值型:
精确数值型:
INT:TINYINT,SMALLINIT,MEDIUMINT,INT,BIGINT
近似数值型:
FLOAT
DOUBLE
日期时间型:
DATE
TIME
DATETIME
TIMESTAMP
YEAR
修饰符:
NOT NULL,DEFAULT
类型符:
UNSIGNED
数据库的设计范式;
第一范式:字段是原子性的
第二范式:存在可用的主键
第三范式:任何字段都不应该依赖于其他表的非主键字段

巴斯-科德范式:对于BCNF,在主码的任何一个 真子集 都不能决定于主属性。关系中U主码,若U中的任何一个真子集X都不能决定于主属性Y,则该设计规范属性BCNF。例如:在关系R中,U为主码,A属性是主码中的一个属性,若存在A->Y,Y为主属性,则该关系不属于BCNF

数据约束:向数据表中插入数据是要遵守的限制规则
主键:primary key,表上一个或多个字段的组合,填入主键字段中的数据,必须不同于已经存在的其他行的相同字段上的数据,而且也不能为空,一个表只能存一个主键
唯一键:unique key,表上一个或多个字段的组合,填入其中字段中的数据,必须不同于已经存在的其他行的相同字段上的数据,但可以为空,一个表可以有多个唯一键
外键:foreign key,一个表中的外键字段中所能够插入的数据取值范围,取决于引用的另一个表上主键字段上的已经存在数据集合
默认约束:default
检查条件约束:check,自定义的逻辑表达式

MariaDB的基础应用:

MariaDB程序组成:
C:Client
mysql,mysqladmin,mysqldump,mysqlbinlog…
S:Server
mysqld,mysqld_safe,mysqld_multi
管理类工具:
myisapack,myisachk…
套接字地址:
IPv4:PORT:基于IPv4的通信
IPv6:PORT:基于IPv6的通信

Unix_SOCK:基于Unix_SOCK的通信,不需要经由链路层的数据的本机通信

/var/lib/mysql/mysql.sock,/tmp/mysql.sock
命令行客户端程序mysql
mysql [options][database]
常用选项:
-uUSERNAME:指明登录数据库的用户身份
-hHOST:指明要登录到哪台数据库服务器上
-pPASSWORD:指明密码
-Ddb_name:指明要使用的哪个数据库
-S sock_file_path:指明sock文件路径
-p port:指明端口
-e 'STATEMENT':可以指明执行的语句,并退出,不需要登录到数据库服务器中,而可以直接取得数据
命令;
客户端命令:在客户端执行
mariadb(mysql)的基础知识及使用
服务端命令:SQL语句,发往服务端运行,并取回结果,需要显示的语句结束符

DDL:数据库定义语言,主要用于数据库组件,例如数据库,表,索引,视图,触发器,事件调度器,存储过程,存储函数CREATE DROP ALTER

DML:数据操纵语言,CRUD操作,主要用于操作表中的数据
INSERT,DELETE,UPDATE,SELETE
DCL:数据控制语言
GRANT,REVOKE
SQL语句:
获取帮助:
mysql> help KEYWORD
mysql> help contents
mariadb(mysql)的基础知识及使用

数据库管理:

CREATE {DATABASE|SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET[=] charset_name
mariadb(mysql)的基础知识及使用
mariadb(mysql)的基础知识及使用
ALTER {DATABASE|SCHEMA}[db_name] CHARACTER SET [=] character_name
DROP {DATABASE|SCHEMA}[IF_EXISTS] db_name 相关命令:
SHOW CHARACTER SET
SHOW COLLATION
SHOW CREATE DATABASE db_name
表管理:
表创建:
CREATE TABLE [IF NOT EXISTS] tb_name (create_defination,…) [table “” not found /]
create_definition:由逗号分隔的列表
字段定义:
column_name column_defination
mariadb(mysql)的基础知识及使用
mariadb(mysql)的基础知识及使用
约束定义:
PRIMARY KEY(col1[,col2…])
UNIQUE KEY
FOREIGN KEY
CHECK(expr)
索引定义:
{INDEX|KEY}
{FULLTEXT|SPATIAL}
column_defination:
data_type [NOT NULL|NULL][DEFAULT default_value][AUTO_INCREMENT][UNIQUE [KEY]|[PRIMARY] KEY][COMMENT 'string']

table_option:

ENGINE[=]engine_name

查看数据库支持的存储引擎种类

SHOW ENGINES;
查看表状态信息:
SHOW TABLE STATUS [WHERE CLAUSE][LIKE CLAUSE]
mariadb(mysql)的基础知识及使用
表修改:
ALTER TABLE tb_name [alter_specification[,alter_specification]…]
alter_specification:

1)表选项

ENGINE=engine_name


mariadb(mysql)的基础知识及使用

2)表定义

(a)字段
ADD DROP CHANGE MODIFY
3)键和索引
ADD {PRIMARY|UNIQUE|FOREIGN} KEY(col1,col2,…)
ADD INDEX(col1,col2…)

DROP {PRIMARY|UNIQUE|FOREIGN} KEY key_name

DROP INDEX index_name
查看表上的索引信息
SHOW INDEXES FROM tb_name
表删除:
DROP TABLE [IF EXISTS] tb_name[,tb2_name];
查看表创建语句;
SHOW CREATE TABLE tb_name

索引管理:

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name ON tbl_name (index_col_name,…)

index_col_name:

col_name [(length)] [ASC | DESC]

DROP INDEX index_name ON tbl_name

SHOW {INDEX | INDEXES | KEYS} {FROM | IN} tbl_name [{FROM | IN} db_name] [WHERE expr]

DML语句:

INSERT,SELECT,DELETE,UPDATE

INSERT:

INSERT [INTO] tbl_name [(col_name,…)] {VALUES | VALUE} ({expr | DEFAULT},…),(…),…
mariadb(mysql)的基础知识及使用
mariadb(mysql)的基础知识及使用
mariadb(mysql)的基础知识及使用

SELECT:

(1) SELECT * FROM tbl_name;

(2) SELECT col1, col2, … FROM tbl_name;

字段别名:col1 AS ALIAS

(3) ELECT col1, col2, … FROM tbl_name WHERE CLUASE;

WHERE expr:布尔表达式;

col_name OPERATOR value|col_name;

操作符:

>, <, <=, >=, =, !=

BETWEEN … AND …

LIKE 'PATTERN':

通配符:

_:匹配任意单个字符;

%:任意长度的任意字符;

RLIKE 'PATTERN':

IN(list)

组合条件:

本文数据库(mysql)相关术语:navicat for mysql mysql workbench mysql数据库 mysql 存储过程 mysql安装图解 mysql教程 mysql 管理工具

主题: SQLMySQL数据InnoDB服务器AU数据结构开源TIRY
分页:12
转载请注明
本文标题:mariadb(mysql)的基础知识及使用
本站链接:http://www.codesec.net/view/483717.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 数据库(mysql) | 评论(0) | 阅读(30)