数据库基础知识

关系模型:结构化数据模型
实体-关系模型
对象关系模型:基于对象的数据模型
半结构化数据模型: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)
上一篇 2017-09-25 09:42
下一篇 2017-09-25 14:25

相关推荐

  • Linux基础知识之脚本初级编程

    1.编程语言的分类:机器语言,汇编语言,高级语言     高级语言:         静态语言:编译型语言 在程序执行之前就会编译成机器代码(完全转化完成)       &nbsp…

    Linux干货 2016-08-15
  • linux多网口绑定

    LINUX多网卡绑定同一IP(BOND): 常用的有三种 mode=0:轮转策略,有自动备援,但需要”Switch”支援及设定。 mode=1:活动-备份模式,其中一条线若断线,其他线路将会自动备援。 mode=3:广播模式,有自动备援,不必”Switch”支援及设定 mode0模式:需要说明的是如果想做成mode 0的负载均衡,仅仅设置这里options …

    2017-07-03
  • Linux命令小总结

                     随着对Linux学习的深入,Linux命令也越来越多的。虽然我们可以通过man等帮助查询我 忘记的命令,但写脚本本质是由命令有序的堆砌而运行的。下面让我来总结一番我们学习过的命令 &nb…

    2017-07-30
  • 第三周n28

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 who | cut -d ” ” -f 1 | sort -u 2、取出最后登录到当前系统的用户的相关信息。 who | tail -1 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 cat /etc/passwd | …

    Linux干货 2017-12-17
  • 8.2日作业

    8.2作业 1、在/data/testdir里创建的新文件自动属于g1组,组g2的成员如:alice能对这些新文件有读写权限,组g3的成员如:tom只能对新文件有读权限,其它用户(不属于g1,g2,g3)不能访问这个文件夹。   先将文件目录的属组变更为g1 ,chmod  g+s /data/testdir/    …

    Linux干货 2016-08-08
  • 8.1作业

    创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为“Gentoo Distribution” [root@localhost wang]# useradd -G bin,root -s /bin/csh -c "Gentoo&n…

    Linux干货 2016-08-02