数据库基础
1. 什么是数据库
- 为什么需要数据库:
- 文件保存数据存在安全性问题。
- 文件不利于数据查询和管理。
- 文件不利于存储海量数据。
- 文件在程序中控制不方便。
- 数据库存储介质:
- 磁盘
- 内存
2. 主流数据库
- SQL Server:
- 微软产品。
- 适合中大型项目。
- 常用于.Net程序员。
- Oracle:
- 甲骨文产品。
- 适合大型项目和复杂业务逻辑。
- 并发性能一般。
- MySQL:
- 世界上最受欢迎的数据库。
- 并发性好。
- 适合电商、SNS、论坛。
- 适合简单SQL处理。
- PostgreSQL:
- 加州大学伯克利分校开发。
- 免费使用、修改和分发。
- 适合私用、商用和学术研究。
- SQLite:
- 轻型数据库。
- 嵌入式设计。
- 资源占用低。
- H2:
- 用Java开发的嵌入式数据库。
- 可直接嵌入应用项目。
3. 基本使用
-
连接服务器:
mysql -h 127.0.0.1 -P 3306 -u root -p
- 没写-h 默认连接本地,默认端口号为3306。
-
服务器、数据库、表关系:
- 数据库服务器管理多个数据库。
- 数据库中创建多个表以保存数据。
-
使用案例:
-
创建数据库。
create database helloworld;
-
使用数据库。
use helloworld;
-
创建数据库表。
create table student( id int, name varchar(32), gender varchar(2) );
-
表中插入数据。
insert into student (id,name,gender) values(1,'张三','男'); insert into student (id,name,gender) values(2,'李四','女'); insert into student (id,name,gender) values(3,'王五','男');
-
查询表中的数据。
select * from student;
-
4. MySQL架构
- 可移植性:
- 能在多种操作系统上运行,如Unix/Linux、Windows、Mac和Solaris。
5. SQL分类
- DDL(数据定义语言):
- 用于维护数据结构。
- 代表指令:
create
,drop
,alter
- DML(数据操纵语言):
- 用于操作数据。
- 代表指令:
insert
,delete
,update
- DQL(数据查询语言):
- 用于查询数据。
- 代表指令:
select
- DCL(数据控制语言):
- 用于权限管理和事务。
- 代表指令:
grant
,revoke
,commit
6. 存储引擎
- 存储引擎:
- 数据库管理系统存储数据、建立索引和更新、查询数据的技术实现方法。
- MySQL存储引擎:
- 插件式存储引擎,支持多种存储引擎。
- 查看存储引擎:
show engines;
7.配置文件和数据库路径
ubantu:
配置文件:/etc/mysql/mysql.conf.d/mysqld.cnf
数据库:/var/lib/mysql