MySQL数据库
一、数据库的概念
1.1 数据库
(1)存储数据的仓库。
比如:
用户信息
商品信息
订单信息
购物信息
==
(2)将数据按照指定的结构,存储在计算机的硬盘上。
硬盘:永久存储。
1.2 数据模型
(1)网状模型
(2)层次模型
(3)关系模型(重点)
将数据以二维表格的形式来存储。
如下:
一行数据,我们称为一条记录;
列,我们称为字段;
每列的数据,我们称为数据项。
姓名 | 年龄 | 性别 | 成绩 |
---|---|---|---|
张三 | 30 | 男 | 93 |
李四 | 40 | 女 | 47 |
1.3 关系型数据库
使用关系模型存储数据的数据库,我们叫关系型数据库。
常见:
mysql,oracle,db2,sql server。
1.4 mysql数据库
MySQL是一个开放源码的关系型数据库管理系统。
AB公司设计的,2008年被sun收购,2009年sun被oracle收购。
oracle现有两大数据库:mysql,oracle。
1.5 DBMS
(1)DB
数据库 DataBase
即存储数据的“仓库”,本质是一个文件系统 。它保存了一系列有组织的数据。
(2)DBMS
数据库管理系统 DataBase Management System
是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制。用户通过数据库管理系统访问数据库中表内的数据。
(3)DBMS是一个软件
功能:
创建数据库和管理数据库。
(4)DBA
数据库管理员 DataBase Adminstrator
工作岗位
二、数据库操作
2.1 登录mysql
mysql -uroot -p密码
2.2 查看管理的所有数据库
show databases;
2.3 创建新数据库
create database 数据库名;
2.4 删除数据库
drop database 数据库名;
2.5 选择数据库
use 数据库名;
选择或切换管理的数据库
三、表操作
3.1 表的存储
mysql数据库中,使用表来存储数据。
我们对数据进行了分类,每类信息使用一张表来存储。
3.2 数据类型
(1)数字型
int 整数
double 双精度浮点数
decimal 浮点数,可以指定精度
数据可以直接写出:11 , 11.5
(2)字符串型
CHAR(n) 固定长度字符串
VARCHAR(n) 可变长度字符串
TEXT 大文本
BLOB 二进制文件内容
存储’a’,char(3)和varchar(3)区别:
char(3) , 'a ’
varchar(3),‘a’
字符串类型的数据,必须加单引号:‘afjalkdjflkads’
(3)日期时间型
DATE 存储日期:年月日
TIME 存储时间:时分秒
YEAR 存储年份
DATETIME 存储日期时间:年月日时分秒
TIMESTAMP 存储时间戳
日期时间的本质:就是一个带有特殊格式的字符串。YYYY-MM-DD HH:MM:SS。
数据:‘2020-2-2 10:10:10’
(4)null值
null是一个缺省值,可以是任何类型的数据。
null表示未知的值。
3.3 表的创建
语法:
create table 表名(
列名1 数据类型 [列级约束],
…
列名n 数据类型 [列级约束],
[表级约束],[索引]
);
首先要创建数据库
3.4 查询表
show tables;
3.5 查看表结构
desc 表名;
3.6 删除表
drop table 表名;
3.7 修改表结构
alter table 表名 修改操作;
四、数据操作CRUD(重点)
4.1 新增记录
(1)插入一行所有列的数据
insert into 表名 values(一行所有列的数据);
( 2)插入一行部分列的数据
insert into 表名(部分列) values(一行部分列数据)
注意:没有插入数据的列,系统自动插入缺省值null
(3)插入多条数据
insert into 表名 (。。。) values(…),(…),。。。(…);
4.2 查询记录
select * from 表名;
4.3 删除记录
4.3.1 delete删除
语法:
delete from 表名 [where 条件];
如果没有条件,表示清空表,删除所有行的数据。
如果有条件,删除满足条件的行。
where 条件:
(1)使用比较运算符
= != > >= < <=
null和任何值都不相等,包括null
(2)多条件
使用and 和 or连接
and连接的所有条件都要满足才会删除,优先级比or高
or连接的条件有一个满足就可以删除整条数据
A or B and C 要么A满足 要么B and C满足—> 可删除数据
(3)连续范围条件
列名 between … and …
列名 not between … and …
(4)不连续的范围
列名 in(情况1,情况2…)
列名 not in(情况1,情况2…)
(5)模糊筛选
like
not like
**%表示:**匹配0到多个字符,比如’张%’ 匹配 张 张三 张三丰 张三蛇精病
**_表示:**一个字符
(6)null值判断
null值,表示未知的值。
null和任何值都不相等,包括null。
使用:
列名 is null
列名 is not null
4.3.2 truncate删除
truncate table 表名
清空表数据。
4.3.3 两者区别
truncate 清空表,同时会删除索引。
delete 可以清空表,也可以删除部分记录,不会删除索引。
4.4 修改记录
update 表名
set 字段名=新的值,…
[where 条件];
如果没有条件,修改所有行。
如果有条件,修改满足条件的行。