数据库基础知识

关系模型:结构化数据模型
实体-关系模型
对象关系模型:基于对象的数据模型
半结构化数据模型:XML(扩展标记语言)

SQL:Structure Query Language结构化查询语言
DML:数据操作语言
INSERT DELETE SELECT UPDATE
DDL:数据定义语言
CREATE DROP ALTER
DCL: 数据控制语言
GRANT REVOKE

RDB对象:
数据库、表、索引、视图、用户、存储过程、存储函数、触发器、事件调度器
约束: 域约束:数据类型约束
外键约束:引用完整性约束
主键约束:某字段能惟一标识此字段所属的实体,并且不允许为空
一张表中只能有一个主键
惟一性约束:每一行的某字段都不允许出现相同值,可以为空
一张表中可以有多个
检查性约束: check

关系运算:
投影:只输出指定属性
选择:只输出符合条件的行
自然连接:具有相同名字的属性上所有取值相同的行;
笛卡尔积:(a+b)*(c+d)=ac+ad+bc+bd
并:集合运算

SQL语言的组成部分:
DDL
DML
完整性定义语言:DDL的一部分功能
视图定义:
事务控制:
授权:DCL

使用程序设计语言和RDBMS交互:
动态SQL:程序设计语言使用函数(MySQL_connect())或者方法与RDBMS服务器建立连接,并进行交互;通过建立连接向SQL服务器发送查询语句,并将结果保存至变量中而后进行处理;

行:定长,变长
文件中记录组织
表结构定义文件,表数据文件
表空间:table space
数据字典:Data Dictionary

MariaDB:
特性:存储引擎Aria XtraDB
更多的扩展
更多的测试工具

用户密码修改:
# mysqladmin -u USERNAME -h HOSTNAME password ‘NEW_PASS’ -p
SET PASSWORD FOR ‘USERNAME’@’HOST’=PASSWORD(‘new_pass’);
UPDATE MySQL.user SET PASSWORD=PASSWORD(‘new_pass’) WHERE CONDITION;

源码安装MariaDB
groupadd useradd mysql
tar xf mariadb-xx.tar.gz -C /usr/local
cd /usr/local/mariadb-xx
兼容性考虑 ln -sv mariadb-xx mysql
修改属组chown -R root:mysql
目录文件夹 建议逻辑卷
mariadb文件夹目录scripts/mysql_install_db –user=mysql –datadir=/pathfile 元数据
服务启动文件

MySQL客户端工具:
MySQL
mysqldump
mysqladmin
mysqlcheck
mysqlimport

配置文件my.cnf及配置文件的查找次序 /etc/my.cnf –> /etc/MySQL/my.cnf –> $MySQL_HOME/my.cnf –> –default-extra-file=/path/to/somefile –> ~/.my.cnf
[mysqld]

数据类型:
数值型
精确数值 int
近似数值 float double
字符型
定长:CHAR(#)、BINARY
变长:VARCHAR(#)、VARBINARY
text, blob
ENUM, SET
日期时间型
date, time, datetime, timestamp
数据类型:
1、存入的值类型;
2、占据的存储空间;
3、定长还变长;
4、如何比较及排序;
5、是否能够索引;

MySQL> SHOW CHARACTER SET;
MySQL> SHOW COLLATION;
ag:CREATE TABLE test(ID INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, Name CHAR(20))
MySQL> SELECT LAST_INSERT_ID();

SQL语句:数据库 表 索引 视图 DML
数据库语法:
CREATE DATABASE|SCHEMA [IF NOT EXISTS] db_name [CHARACTER SET=] [COLLATE=]
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name                                                                                        1、直接定义一张空表;
2、从其它表中查询出数据,并以之创建新表;
3、以其它表为模板创建一个空表;
语法:CREATE TABLE [IF NOT EXISTS] tb_name (col_name col_defination, constraint )

CREATE TABLE tb1 (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, Name CHAR(20) NOT NULL, Age TINYINT NOT NULL) ENGINE [=] engine_name

单字段:
PRIMARY KEY
UNIQUE KEY

单或多字段:
PRAMARY KEY (col,…)
UNIQUE KEY (col,…)
INDEX (col,…)
键也称作约束,可用作索引,属于特殊索引(有特殊限定):B+Tree

修改表定义:
ALTER TABLE
添加、删除、修改字段
添加、删除、修改索引
改表名
修改表属性

删除表:DELETE * FROM TABLE;

查询语句类型:简单查询 多表查询 子查询
SELECT list FROM tb WHERE ID=X
SELECT * FROM tb_name;
SELECT [DISTINCT] * FROM tb_name WHERE ; 选择

FROM子句: 要查询的关系 表、多个表、其它SELECT语句
WHERE子句:关系表达式
逻辑关系:AND OR NOT
BETWEEN … AND …
LIKE ‘’
%: 任意长度任意字符
_:任意单个字符
REGEXP, RLIKE
IN
IS NULL
IS NOT NULL

ORDER BY field_name {ASC|DESC} 排序
LIMIT子句:LIMIT [offset,]Count
聚合函数:SUM(), MIN(), MAX(), AVG(), COUNT()
GROUP BY: 分组
HAVING qualification

视图VIEW: 存储下来的SELECT语句,是一张虚表;
基于基表的查询结果
CREATE VIEW
物化视图:SELECT

通过JDBC与Mysql数据库交互:
更新操作:增 删 改 。
Statement statement = null;
conn=getConnection();获取连接
String sql = null;准备sql语句
sql = “insert update delete…”;
System.out.println(sql);
statement = conn.createStatement();获取操作sql的createStatement对象
statement.executeUpdate();具体执行
statement!=null;
statement.close();
conn!=null
conn.close();关闭连接                                                                                                                                                     查询操作:
Connection conn = null;
Statement statement = null;
ResultSet rs = null;
conn=getConnection();获取连接
statement = conn.createStatement();获取操作sql的createStatement对象
String sql = null;
sql = “select…”;准备sql
rs = statement.executeQuery();执行查询 得到ResultSet
处理ResultSet
while(rs.next()){
int id = rs.getInt(1);
String name = rs.getStirng(“name”);
}

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/87561

(0)
cuicui
上一篇 2017-09-25 09:42
下一篇 2017-09-25 14:25

相关推荐

  • 磁盘管理之文件系统

    一,概述 文件系统是操作系统用于明确存储设备或分区上的文件的方 法和数据结构;即在存储设备上组织文件的方法。操作系统 中负责管理和存储文件信息的软件结构称为文件管理系统, 简称文件系统。  从系统角度来看,文件系统是对文件存储设备的空间进行组 织和分配,负责文件存储并对存入的文件进行保护和检索的 系统。具体地说,它负责为用户建立文件,存入、读出、修…

    Linux干货 2016-09-05
  • inode 是什么及绝对路径和相对路径和一些目录相关命令总结

    inode是什么          每个分区又分两个区,元数据区和数据区。     元数据区主要存储文件的权限,属主属组,时间戳,文件的存储位置指针….就如一本书有目录页和内容页一样,目录页上的记录的是内容的页数,可以通过目录页的页数直接…

    Linux干货 2016-08-02
  • Linux文件查找命令find和压缩解压缩

    概述     Linux系统上一切皆文件,那么随着时间的推移和管理的服务器增加,在众多的文件中,如何找到我们需要的文件,这就需要用到文件查找命令了。本章就分享下关于文件查找命令的一些内容和压缩解压缩的相关内容。     具体分为一下几个部分:    …

    Linux干货 2016-08-16
  • 运维工程师技能需求排行

    这是我今天在拉勾网搜索运维,翻完了4四页也招聘信息之后得到的,我的目的是想要看看之后的学习,哪个更应该成为重点,有些在我意料之中,有些还真的没想到,算是努力了一个小时的收获吧,分享给大家。
    注意:其中的看法仅代表个人观点,很多都是依靠我自己的学习经验和工作经验累积的

    Linux干货 2017-12-12
  • Linux文件管理相关命令、bash特性及元数据

    一、 Linux上的文件管理类命令及其常用的使用方法。 1、cp命令:copy     源文件、目标文件         单源复制cp [OPTION]…[-T] SOURCE DEST   &nb…

    2017-07-09
  • LVS基本原理

    LVS基本原理 简介 负载调度器、真实服务器群节点一起被称为LVS。LVS负载调度器(有时也称为负载平衡器),接收所服务的所有接入服务集群的请求,并决定集群中的哪个节点应该回复其请求。 1)负载调度器(Director):作为整个集群的前端,主要将用户请求分发至真实服务器中进行处理。 2)真实服务器池:由多个功能相同的真实服务器组成,为用户提供真正的网络服务…

    Linux干货 2016-12-27