(一)、理解
数据库是"按照数据结构来组织、存储和管理数据的仓库"。是一个长期存储在计算机内的、有组织
的、可共享的、统一管理的大量数据的集合。
-
数据库系统:DBS (DataBase System)通常由数据库、数据库管理系统和数据管理员组成。
-
数据库管理系统:DBMS (Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
-
数据库管理员:DBA (Database Administrator),是从事管理和维护数据库管理系统(DBMS)的相关工作人员,一般是由业务水平较高、资历较深的人员担任。
-
数据库:DB (Database )是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜------存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。
- 、特点
-
可以持久化保存数据
-
保存数据是有组织 有结构的
-
以表的形式保存数据 方便操作
-
提供了丰富的SQL语句 操作数据
- 、数据库的分类
数据库按照存储结构的不同分为两种:
- 关系型数据库:以二维表的形式存储数据,且表与表之间是有关联的。
如下图, 订单信息表 和 客户信息表 都是有行有列的二维表;我们称之为关系型数据库。
接下来看关系型数据库的优点:
(1).都使用表结构,格式一致,易于维护。
(2).使用通用的SQL语言操作,使用方便,可用于复杂查询。
关系型数据库都可以通过SQL进行操作,所以使用方便。
复杂查询。
-
.数据存储在磁盘中,安全。
-
非关系型数据库:以文档或键值对形式存储数据,结构简单,数据之间没有关系,有利于扩展。
比如:Redis、MongoDB
- 、数据库系统的结构
-
一个DBMS(数据库系统)中 可以有多个数据库(database)
-
一个数据库(database)中 可以有多个表(table)
-
一个表中 可以有多组数据 多个字段(列)
- SQL的介绍和分类
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。对数据库和数据表进行增删改查操作。
基本分类:
1.DDL(Data Definition Language) 数据定义语言:用来定义数据库对象:数据库,表,列等;
DDL简单理解就是用来操作数据库,表结构等。
2.DML(Data Manipulation Language) 数据操作语言:用来对数据库中表的数据进行增删改;
DML简单理解就对表中数据进行增删改。
3.DQL(Data Query Language) 数据查询语言:用来查询数据库中表的记录(数据);
DQL简单理解就是对数据进行查询操作,从数据库表中查询到我们想要的数据。
4.DCL(Data Control Language) 数据控制语言:用来定义数据库的访问权限和安全级别,及创建用户。
- SQL通用语法
1、SQL语句可以单行或多行书写,以分号结尾
2、可使用空格和缩进来增强语句的可读性
3、MySQL数据库的SQL语句不区分大小写,关键字建议使用大写,
而数据库名,数据表名,列名建议使用小写
例如:SELECT * FROM user。
同样可以使用/**/的方式完成多行注释; -- 或者#单行注释
四、DDL数据定义语言
Data Definition Language数据库定义语言
关键字:create drop alter show
- 数据库的基本操作
## 查看所有的数据库
show databases;
## 创建数据库: creat database 数据库名称 set character utf8 ;
## creat database if not exists 数据库名;
## 编码格式 utf8 ;
create database demo;
create database if not exists demo1;
## 进入 / 切换 / 使用数据库: use 数据库名称;
use demo;
use demo1;
## 删除数据库 drop database 数据库名;
drop database demo1;
## 查看创建数据库的语句
show create database demo;
# 查看当前数据库所有的表 ( 查看有什么表 )
show tables;
use demo;
- 数据表的操作
/*
创建表
creat table 表名 (
列名 数据类型 ( 长度 )** **约束** **, \[\] 可写可不写
列名 数据类型 ( 长度 )** **约束** **,
列名 数据类型 ( 长度 )** **约束** **
);
*/
# 创建学生表 stu
/*
学号, 姓名, 年龄, 生日, 体重
id , name , age , birthday , weight
int/varchar varchar int date double
*/
create table stu(
id int,
name varchar(100),
age int,
birthday date,
weight double(5,2)
);
-- 1. 查看 stu 的表结构
desc stu;
-- 2. 查看创建表的 SQL 语句
show create table stu;
-- 3. 删除表
drop table stu;
- 修改表操作
-- 4. 添加列 alter table 表名 add 列名 类型 ( 长度 ) ** **约束** **
alter table stu add sex char (1);
-- 5. 修改列的数据类型 alter table 表名 modify 列名 新的数据类型 ( 长度 ) ** **约束** **;
-- 将 sex 的数据类型改成 varchar
alter table stu modify sex varchar (1);
-- 6. 修改列名
-- alter table 表名 change 旧列名 新列名 类型 ( 长度 ) ** **约束** **;
-- 将 sex 的列名修改为 gender
alter table stu change sex gender varchar (1);
-- 7. 删除列 alter table 表名 drop 列名 ;
alter table stu drop gender;
-- 8. 重命名表名 rename table 表名 to 新表名 ;
rename table stu to stuu;
- DML数据操作语言
DML(Data Manipulation Language)数据操作语言,主要是针对数据表做增、删、改操作。
主要涉及的关键字有:
insert 添加 update 修改 delete 删除
-- 9. 添加 指定列 的数据
-- INSERT INTO 表名 ( 列名 1, 列名 2,...) VALUES( 值 1, 值 2,...);
-- 后面值的数据类型应当与前面列名的数据类型保持一致;
insert into stuu (id,name,age)values(1,'张三',18);
insert into stuu (id,age)values (2,20);
-- 10. 添加 所有列 的数据
-- INSERT INTO 表名 VALUES( 值 1, 值 2,...);
-- INSERT INTO 表名 VALUES( 值 1, 值 2,...),( 值 1, 值 2,...),( 值 1, 值 2,...)...;
insert into stuu values(4,'赵柳',23);
insert into stuu(id,name,age)values(5,'牛丽丽',25);
-- 11. 批量添加
-- INSERT INTO 表名 ( 列名 1, 列名 2,...) VALUES( 值 1, 值 2,...),( 值 1, 值 2,...),( 值 1, 值 2,...)...;
insert into stuu(id,name,age)values(5,'李茜茜',20),(4,'汪诗诗',21),(7,'黄袅袅',22);
-- 12. 修改表数据
-- UPDATE 表名 SET 列名 1= 新值 1, 列名 2= 新值 2, ... WHERE** **条件** ** ;
-- 条件格式:列名 符号 值 ; 符号: = > < >= <= !=
-- where id = 2;
-- 修改 id 为 2 的数据 , 将名字修改为张无忌 , 年龄修改为 26
update stuu set name ='张无忌',age =26 where id =2;
update stuu set age=28 where id=5;
-- 13. 删除数据
-- DELETE FROM 表名 WHERE** **条件** ** ;
delete from stuu where name='牛丽丽';
-- TRUNCATE table 表名 ; # 截断表,将表中的数据清空
-- 1. 删除表 2. 创建一个和之前表结构一致的新表