MySQL数据库
一数据库概念及作用
1.数据库概念
- 数据库就是以一定格式进行组织的数据的集合。通俗来看数据库就是用户计算机上的一些具有特殊格式的数据文件的集合。
- 但是相比于普通文件,数据库有以下特点:
-
- 持久化储存
- 读写速度极高
- 保证数据的有效性
- 对程序的支持性非常好,容易扩展
2.数据库的作用
- 例如网站上用户看到的内容,都来自于后台的数据库
二.数据库分类及特点
1.数据库分类
- 关系型数据库
- 非关系型数据库
2.关系型数据库
- 关系数据库,是指采用了关系模型来组织数据的数据库,简单来说,关系模型指的就是二维表格模型.
MySQL,Oracle,SQLite,SQL sever
3.非关系型数据库
- 非关系型数据库,又被称为NoSQL(Not Only SQL ),意为不仅仅是SQL,对NoSQL 最普遍的定义是“非关联型的”,强调Key-Value 的方式存储。
- mongoDB,redis
三.数据库管理系统
1.数据库管理系统介绍
- 数据库管理系统( Database Management System,简称DBMS)是为管理数据库而设计的软件系统。
- 三大部分:
-
- 数据库文件集合:主要是一系列的数据文件,作用是存储数据。
- 数据库服务器:主要负责对数据文件以及文件中的数据进行管理。
- 数据库客户端:主要负责和服务端通信,向服务端传输数据或者从服务端获取数据。
2.SQL语句
- SQL(Structured Query Language)是结构化查询语言,是一种用来操作RDBMS的数据库语言。当前几乎所有关系型数据库都支持使用SQL语言进行操作,也就是说可以通过 SQL 操作 oracle,sql server,mysql,sqlite 等等所有的关系型的数据库。
- RDBMS:Relational Database Management System 所谓的关系型数据库管理系统RDBMS,是专门用来管理关系型数据库的系统.
3.关系型数据库中核心元素
四.MySQL环境搭建
1.服务端安装
安装服务器端:在终端中输入如下命令,回车后,然后按照提示输入
sudo apt-get install mysql-server
2.服务端启动
# 启动服务
sudo service mysql start
# 查看进程中是否存在MySQL服务:
ps ajx|grep mysql
# ps: 查看当前系统进程 -a 显示所有用户进程 -j 任务格式显示进程 -x显示无控制终端进程
3服务端停止和重启
停止:sudo service mysql stop
重启:sudo service mysql restart
4.客户端安装
安装:
sudo apt-get install mysql-client
连接命令:
sudo mysql -uroot -pqwe123
退出链接:
exit 或者 quit
5.MySQL配置文件
主要配置选项:
五.MySQL数据类型
1. 整型类型
- MySQL中定义数据字段的类型是非常重要的。MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
例:
- 保存人的年龄(1-100):tinyint
- 保存某个状态值(0,1):tinyint
2.浮点型
float:单精度型,只保证6位有效数字的准确性
double:双精度型,只保证16位有效数字的准确性
decimal:定点数,其中decimal(5,2)代表共5位数字,其中2位是小数,比如:888.88
3.字符串
char,varchar,text比较常用
-
char和varchar的区别
- char:定长字符串
在创建表的时候,char字段占用硬盘空间的大小已经固定了
比如,定义name char(10),代表name字段将占10个字符的硬盘空间,具体是多少个字节要看字段是什么编码的,如果是utf8编码,一个字符3个字节,所以char(10)占30个字节,无论内容够不够10个字节 - varchar:变长字符串
占用硬盘的大小并不是固定的,而是由内容决定的,等于内容长度+1个字节(’\0’)
- char:定长字符串
-
text
- 选择字符串类型的原则
varchar:适用于经常变化的字段用
char:适用于知道固定长度的字符串
尽量用varchar
超过255字节的只能用varchar或者text,能用varchar的地方不用text
4.枚举类型
枚举类型enum,在定义字段时就预告规定好固定的几个值,然后插入记录时值只能在这几个固定好的值中选择一个。
语法定义:
gender enum(‘男’,’女’,’妖’)
应用场景:
当值是几个固定可选时,比如:性别、星期、月份、表示状态时(比如:是、否)
5.时间类型
六.数据完整性和约束
1.数据完整性
数据完整性用于保证数据的正确性。系统在更新、插入或删除等操作时都要检查数据的完整性,核实其约束条件。
2.参照完整性
参照完整性属于表间规则。在更新、插入或者删除记录时,如果只改其一,就会影响数据的完整性。如删除表2的某记录后,表1的相应记录未删除,致使这些记录成为孤立记录。
3.约束
MySQL基本操作
一.数据库操作命令
1.数据库操作基本步骤
2.数据库命令
快捷键 | 作用 |
---|---|
ctrl+a | 回到行首 |
ctrl+e | 回到行末 |
ctrl+l | 清屏 |
CTRL+ c+回车 | 结束 |
- 连接数据库
打开终端,运行命令:
mysql –uroot –p
回车后输入密码
也可以:mysql -uroot –p密码 - 退出数据库:
exit,quit或者CTRL+d
ps:MySQL不区分大小写 - 显示版本和时间命令
| 命令 | 说明 |
|–|--|
| select version(); | 显示版本 |
|select now();|显示时间|
sql语句拿;结尾
- 基本操作命令
命令 | 作用 |
---|---|
show databases; | 查看所有数据库 |
select database(); | 查看当前使用的数据库 |
creat database 数据库名 charset=utf8; | 创建数据库 |
use 数据库名; | 使用数据库 |
drop database 数据库名; | 删除数据库 |
3.表操作命令
- 创建数据表
creat table table_name(
字段名称 数据类型 可选的约束条件,
column1 datatype contrai,
column2 datatype,
······
columnN dataype
-- 主键说明可以放在字段中单独说明,也可以放在最后统一说明
primary key(one or more columns)
);
- 查看表结构命令
命令 | |
---|---|
show tables; | 查看当前库中所有表 |
desc 表名; | 查看表结构 |
show creat table 表名; | 查看表的创建语句详细过程 |
create table students(
id int unsigned primary key auto_increment not null,
-- auto_increment 表示自动增长
name varchar(20) default ' ',
age tinyint unsigned default 0,
height decimal(5,2),
gender enum('男','女'),
class_id int unsigned default 0
);
- 举例
- 表结构修改命令
命令 | 作用 |
---|---|
alter table 表名 add 列名 类型; | 添加字段 |
alter table 表名 change 原名 新名 类型及约束; | 重命名字段 |
alter table 表名 modify 列名 类型及约束; | 修改字段类型 |
alter table 表名 drop 列名; | 删除字段 |
drop table 表名; | 删除表 |
添加字段
修改字段类型
重命名字段
删除字段
- 添加数据
命令 | 作用 |
---|---|
insert into 表名 values(…); | 全列插入:值的顺序与表结构字段的顺序完全一一对应 |
insert into 表名 (列1,…) values(值1,…); | 部分列插入:值的顺序与给出的列顺序相对应 |
insert into 表名 values(…),(…)…; | 一次性插入多行数据 |
insert into 表名(列1, …) values(值1,…),(值1,…)…; | 部分列多行插入 |
全列插入
部分列插入
一次性插入多行数据
- 修改,查询数据
命令 | 作用 |
---|---|
select * from 表名 | 查询所有数据 |
select 列1,列2,… from 表名; | 查询指定列数据 |
update 表名 set 列1 = 值1,列2 = 值2… where 条件; | 修改数据 |
- 删除数据
命令 | 作用 |
---|---|
delete from 表名 where 条件; | 删除数据 |