linux数据库相关知识,数据库基础知识

关系模型:结构化数据模型

实体-关系模型

对象关系模型:基于对象的数据模型

半结构化数据模型: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值