1.数据库
- 数据:能够输入到计算机中并可以被识别处理的信息集合。
- 数据处理概述
数据处理的基本目的是从大量的、可能是杂乱无章的、难以理解的数据中抽取并推导出对于某些特定的人们来说有价值、有意义的数据。
1.1概述
-
数据存储
人工管理—>文件管理—>数据库管理 -
数据库应用领域
-
基本概念
-
数据库:按照数据的一定结构,存储管理数据的仓库。数据库是在数据库管理系统管理和控制下,在一定介质上的数据集合。
-
数据库管理系统:管理数据库的软件,用于建立和维护数据库。
-
关系型数据库和非关系型数据库
关系型:采用关系模型(二维表)组织数据结构的数据库。如Oracle 、SQL_Server、 MySQL
非关系型:不采用关系模型(二维表)组织数据结构的数据库。 如:MongoDB、Redis
1.2 MySQL
- MYSQ特点
- 1.开源,使用C/C++编写
- 2.可以在不同平台使用
- 3.提供了C、C++、python、java等众多语言的API
- 4.存储结构优良,运行速度快
- 5.功能全面丰富
- MYSQL安装
- Ubuntu安装MYSQL服务
- 终端执行:sudo apt install mysql-server
- 配置文件:/etc/mysql
- 数据库存储目录:/var/lib/mysql
- Windows/MacOS安装MySQL
- 下载MySQL安装包 https://dev.mysql.com/downloads/windows/installer/8.0.html
- 直接运行安装文件安装
- Ubuntu安装MYSQL服务
-
启动和连接MYSQL服务
-
服务端启动
- 查看MYSQL状态 : sudo service mysql status
- 启动/停止/重启服务:sudo service mysql start/stop/restart
-
连接数据库
mysql -h 主机地址 -u 用户名 -p
-
注意:
- 回车后输入数据库密码 (我们设置的是123456)
如何设置密码见博主另一篇文章
Ubuntu21.10系统下mysql数据库的安装和密码修改设置- 如果链接自己主机数据库可省略 -h 选项
- 关闭连接
ctrl-D
exit
-
MySQL数据库结构
数据元素–>记录–>数据表–>数据库
-
基本概念解析
- 数据表(table):存储数据的表格
- 字段(column):列
- 记录(row):行
1.3 SQL语言
- 什么是SQL
结构化查询语言(Structured Query Language),一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
- SQL语言特点
- SQL语言基本上独立于数据库本身
- 各种不同的数据库对SQL语言的支持与标准存在着细微的不同
- 每条命令以 ; 结尾
- SQL命令(除了数据库名和表名)关键字和字符串可以不区分字母大小写
2. 数据库基础操作
2.1数据库管理
1.查看已有库
show databases;
2.创建库
create databases 库名[character set utf8];
create databases 库名[charset=utf8];
注意:数据库命名
1. 数字、字母、下划线,但不能使用纯数字
2. 库名区分字母大小写
3. 不要使用特殊字符和mysql关键字
3.切换库
use 库名;
4.删除库
drop databases 库名;
2.2数据表管理
- 基本思考过程
- 1.确定存储内容
- 2.明确字段组成
- 3.确定字段数据类型
2.2.1基础数据类型
- 数字类型
- 整数类型:INT,SMALLINT,TINYINT,MEDIUMINT,BIGINT
- 浮点类型:FLOAT,DOUBLE,DECIMAL
- 比特值类型:BIT
> 注意:
>
> 1. 对于准确性要求比较高的东西,比如money,用decimal类型减少存储误差。声明语法是DECIMAL(M,D)。M是数字的最大数字位数,D是小数点右侧数字的位数。比如 DECIMAL(6,2)最多存6位数字,小数点后占2位,取值范围-9999.99到9999.99。
> 2. float(5,2) float后的数字5表示数字位数,2表示精确到小数点后2位。
> 3. 比特值类型指0,1值表达2种情况,如真,假。
------
字符串类型:
- 普通字符串: CHAR,VARCHAR
- 存储文本:TEXT
- 存储二进制数据: BLOB
- 存储选项型数据:ENUM,SET
注意:- char:定长,即指定存储字节数后,无论实际存储了多少字节数据,最终都占指定的字节大小。默认只能存1字节数据。存取效率高。
- varchar:不定长,效率偏低 ,但是节省空间,实际占用空间根据实际存储数据大小而定。必须要指定存储大小 varchar(50)
- enum用来存储给出的多个值中的一个值,即单选,enum(‘A’,‘B’,‘C’)
- set用来存储给出的多个值中一个或多个值,即多选,set(‘A’,‘B’,‘C’)
2.2.2 表的基本操作
- 创建表
create table 表名(字段名 数据类型 约束,字段名 数据类型 约束,…字段名 数据类型 约束);
create table class (
name varchar(30),
age tinyint,
sex enum('m','w'),
score float
);
- 字段约束
- 无符号:unsigned
- 不为空:not null
- 默认值:default
- 字段说明:comment
- 主键自增:auto_increment —>数值自动加1
- 定义主键:primary key —>主键不能重复,且不能为空
e.g. 创建班级表
create table class (
id int primary key auto_increment,
name varchar(30) not null,
age tinyint unsigned,
sex enum('m','w','o'),
score float default 0
);
e.g 创建兴趣班表
create table hobby(
id int primary key auto_increment,
name char(30) not null,
hobby set("sing","dance","darw"),
level char comment "评级",
price decimal(7,2),
remark text comment "备注信息”
);
- 查看数据表
show tables;
- 查看表结构
desc 表名;
- 查看数据表创建信息
show create table 表名;
- 删除表
drop table 表名;
2.3 表数据基本操作
2.3.1 插入(insert)
insert into 表名 values (值1,值2...),(值1,值2...),...;
insert into 表名 (字段1,...) values (值1,值2...),...;
* values 也可以写 value
e.g.
insert into class values
(1,"Lily",18,'f',89),
(2,"Lucy",18,'f',76),
(3,"Tom",17,'m',83);
insert into class
(name,age,sex,score)
values