数据库的相关概念:
DB:数据库(Database)即存储数据的“仓库”,其本质是一个文件系统。它保存了一系列有组织的数据。
DBMS:数据库管理系统(Database Management System) 是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控 制。用户通过数据库管理系统访问数据库中表内的数据。
SQL:结构化查询语言(Structured Query Language) 专门用来与数据库通信的语言。
常见关系型数据库(行式数据库):
Oracle、MySQL、MS SQL Server。
非关系型数据库:
1.键值型数据库(Redis): Key-Value 键值的方式来存储数据。
2.文档型数据库(MongoDB、CouchDB):所存放的文档,就相当于键值数据库所存放的“值”。
3.搜索引擎数据库(Solr、Elasticsearch、Splunk):是应用在 搜索引擎领域的数据存储形式,核心原理是“倒排索引”。
4.列式数据库(HBase):相对于行式存储的数据库,大量降低系统的I/O,适合于分布式文件系统。
5.图形数据库(Neo4J、InfoGrid):是一种存储图形关系的数据库。
关系型数据库设计规则
一个数据库中可以有多个表,每个表都有一个名字,用来标识自己。表名具有唯一性。
1.E-R(Entity-Relationship 实体-联系)模型
三个主要概念: 实体集、 属性 、 联系集 。
一个实体集(class)对应于数据库中的一个表(table),一个实体(instance)则对应于数据库表中的一行(row),也称为一条记录(record)。一个属性(attribute)对应于数据库表中的一列(column),也称为一个字段(field)。
2.表的关联关系
一对一:外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一。 外键是主键:主表的主键和从表的主键,形成主外键关系。
一对多:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键。
多对多:要表示多对多关系,必须创建第三个表,该表通常称为联接表 ,将多对多关系划分为两个一对多关系。
mysql基础命令
查看mysql版本
mysql -v #-version
-u 用户名 -p 密码(建议不跟密码,换行输入) -P 端口号 -h IP地址
mysql -u root -p[密码] -P[端口号(一般为3306)] -hlocalhost(127.0.0.1)
查询当前数据库
SELECT DATABASE();
查看所有数据库(数据表)
show database(tables);
use dbtest1; #先使用要添加表的数据库
create table employees[表名](id int,name varchar(15)); #添加数据表
新建数据库
create database [IF NOT EXISTS] dbtest1[数据库名称] [DEFAULT CHARSET 字符集] [COLLATE 排序规则]; #删除是drop
数据库中添加新的数据表
use dbtest1; #先使用要添加表的数据库
create table employees[表名](id int,name varchar(15)); #添加数据表
数据表中插入、查看数据
insert into employees values("1001",'Tom'); #数据表中插入新数据
select * from employees; #查看数据表employees中所有数据
//select * from dbtest1.employees;
mysql导入数据指令
source d:\mysql.sql; #绝对路径
SQL分类
分类 | 全称 | 说明 |
---|---|---|
DDL | Data Definition Language | 数据定义语言,用来定义数据库对象(数据库,表,字段)。如:CREATE 、 DROP 、 ALTER |
DML | Data Manipulation Language | 数据操作语言,用来对数据库表中的数据进行增删改。如:INSERT 、 DELETE 、 UPDATE 、 SELECT |
DCL | Data Control Language | 数据控制语言,用来创建数据库用户、控制数据库的访问权限。如:GRANT 、 REVOKE 、 COMMIT 、 ROLLBACK 、 SAVEPOINT |
查询语句使用的非常的频繁,所以很多人把查询语句单拎出来一类:DQL(数据查询语言)。还有单独将 COMMIT 、 ROLLBACK 取出来称为TCL (Transaction Control Language,事务控制语言)。
书写规范
MySQL 在 Windows 环境下是大小写不敏感的。 MySQL 在 Linux 环境下是大小写敏感的。
数据库名、表名、表的别名、变量名是严格区分大小写的关键字、函数名、列名(或字段名)、列的别名(字段的别名) 是忽略大小写的。
推荐采用统一的书写规范:
数据库名、表名、表别名、字段名、字段别名等都小写。 SQL 关键字、函数名、绑定变量等都大写。