目录
[2.1 创建数据库](#2.1 创建数据库)
[2.2 查看数据库](#2.2 查看数据库)
[2.3 选中数据库](#2.3 选中数据库)
[2.4 删除数据库](#2.4 删除数据库)
[3.1 创建表](#3.1 创建表)
[3.2 查看所有的表](#3.2 查看所有的表)
[3.3 查看表结构](#3.3 查看表结构)
[3.4 删除表](#3.4 删除表)
[4.1 增加数据](#4.1 增加数据)
[4.2 查询数据](#4.2 查询数据)
[4.2.1 全列查询](#4.2.1 全列查询)
[4.2.2 指定列查询](#4.2.2 指定列查询)
[4.2.3 表达式查询](#4.2.3 表达式查询)
[4.2.4 别名查询](#4.2.4 别名查询)
[4.2.5 去重查询](#4.2.5 去重查询)
[4.2.6 排序查询](#4.2.6 排序查询)
[4.2.7 条件查询](#4.2.7 条件查询)
[4.2.8 分页查询](#4.2.8 分页查询)
[4.3 修改数据](#4.3 修改数据)
[4.4 删除数据](#4.4 删除数据)
1、MySQL的定义
数据库是一种管理数据的软件,主要是对存储到其中的数据进行增删查改,数据库中具体的软件有 Oracle、MySQL、SQLserver、SQLite、Redis等数据库,其中Oracle、MySQL、SQLserver、SQLite都是**"关系型数据库",使用表** 来组织数据的,Redis属于**"非关系型数据库",更加灵活,使用key-value这种键值对组织数据的。
MySQL是一种"客户端-服务器"**结构的软件客户端(client):主动发起请求的一方
服务器(server):被动接收请求的一方
客户端和服务器之间通过网络进行通信的
客户端给服务器发起的数据称为**"请求"**(request)
服务器给客户端返回的数据称为**"响应"**(response)
MySQL的本质是服务器,在服务器中负责存储和管理数据(存储在硬盘中)。内存和硬盘存储数据的区别:
1、内存存储速度快,硬盘存储速度慢
2、内存空间小,硬盘空间大
3、内存的价格贵,硬盘的价格便宜
4、内存中存储的数据是易失的,硬盘中存储的数据是持久的
2、数据库的操作
对数据库操作主要是两种方式
1、命令行客户端
2、图形化客户端
此处使用命令行客户端来操作MySQL数据库,操作数据库的命令,也称为"SQL"语句,也可以理解成一种编程语言。
2.1 创建数据库
输入密码登录数据库
创建数据库
**create database + 数据库的名称;**就可以创建一个数据库
注意事项:
1、像create、database这样的的单词,在SQL语句中有特定的含义,称为"关键词"
数据库名、表名、列名都不能和关键字重复
2、SQL语句中的关键字不区分大小写
3、不能创建重复的数据库,创建重复的数据库会发生报错
为了避免报错可以指定一下
create database if not exists + 数据库的名称;
4、创建数据库时可以手动指定字符集
character set +字符集名字 / charset + 字符集名字
这样就成功创建出一个数据库
2.2 查看数据库
列出当前MySQL服务器上一共有哪些数据库
show databases;
2.3 选中数据库
数据库中最关键的操作就是对表里的数据进行增删查改,表是从属于数据库的,先选中数据库,才能操作数据库中的表。
use + 数据库名称;
2.4 删除数据库
drop database + 数据库名称;
删除操作,删除的不仅仅是这个数据库,也删除了这个数据库中所有的表和表中所有的数据。
3、数据表的操作
针对数据表的操作,前提是选中数据库。一个表中包含多个行,每一行也称为一条记录。一个行里可以有很多列,每一列称为一个字段,每一列都是有类型的。
此处指出常用的类型
|-------|--------------------|-------------------------------------|
| 整数类型 | INT、INTEGER | 占用4个字节 |
| 浮点数类型 | FLOAT、DOUBLE | 分别为4个字节和8个字节 |
| 定位数类型 | DECIMAL(M,D) | 占用M+2个字节 最大取值范围与DOUBLE相同,有效范围由M,D决定 |
| 字符串类型 | VARCHAR(M) | M为0-65535之间的整数 表示该类型最多存储几个字符 |
| 时间类型 | TIMESTAMP,DATETIME | 分别为4个字节和8个字节 |
3.1 创建表
create table + 表名(列名 类型,列名 类型...);
列如:创建一个school数据库,在这个数据库中创建一个学生表
3.2 查看所有的表
查看当前数据库所有的表
show tables;
3.3 查看表结构
desc + 表名;
其中Field为列(类型)
3.4 删除表
drop table + 表名;
4、MySQL的增删查改
MySQL的增删查改,实际上就是对表中的数据进行增删查改。
4.1 增加数据
普通插入
insert into + 表名 values(值,值);
此处的值要和列相匹配
例如:
create table student (id int,name varchar(20));
insert into student values (1,'zhangsan');
指定列插入
insert into + 表名(列名,列名...) values(值,值...);
一次插入多行记录
insert into + 表名 values (值,值...),(值,值...);
查询插入结果
select * from + 表名;
4.2 查询数据
4.2.1 全列查询
select * from +表名;
把表中所有的行和列都查询出来
4.2.2 指定列查询
select 列名 列名...from +表名;
4.2.3 表达式查询
在查询的时候,写成由列名构成的表达式,把这一列的所有行都带入到表达式中,参与运算。
先创建一个表,表示学生成绩
使用表达式查询查询到每个学生的总成绩
select name,language+math+english from STUresult;
4.2.4 别名查询
查询的时候可以给列、表达式、表指定一个别名
select 表达式 as 别名 from+表名;
4.2.5 去重查询
使用distinct 修饰某一个列/多个列,使用相同的行,只会保留一个。
select distinct 列名 from 表名;
先创建一个表,都放入数字1
普通查询
进行去重查询
4.2.6 排序查询
查询的时候进行排序
select 列名(要展示的列) from 表名 order by 列名(排序的列)asc(升序)/desc(降序);
普通查询
排序查询
4.2.7 条件查询
会按照具体的条件,对数据进行查询。
select 列名 from 表名 where 条件;
例如:查询数学成绩为96的学生
4.2.8 分页查询
使用limit可以限制这次查询最多能查出来多少结果
只查询前两条记录
select * from STUresult limit 2;
偏移量
在限制查到多少条记录后,可以在这些记录后偏移查询。
select * from STUresult limit 3 offset 1;
4.3 修改数据
update 表名 set 列名=值(要执行的操作)where 条件;
比如:修改zhangsan的数学为99;
4.4 删除数据
delete from 表名 where 条件/ order by / limit;
不指定任何条件就是删除整个表