数据库 增删改查

# 一、数据库介绍

## 1.1 什么是数据库?

​        数据库(database)是用来**组织**、**存储**和**管理数据**的仓库。要想管理数据就需要安装对应的软件:比如我们的excel。

## 1.2 常见数据库

**常用的关系型数据库有**:

(1)MySQL 数据库,目前使用最广泛、流行度最高的开源免费数据库  (甲骨文) 

(2)Oracle 数据库,收费   (甲骨文)

(3)SQL Server 数据库,收费   (微软)

以上三种属于传统型数据库,又叫做:关系型数据库 ,这三者的设计理念相同,用法比较类似。

**常用的非关系型数据库有**:

mongodb、redis、memcached

## 1.3 数据库中常见的基础知识:【重点】

​    1)、数据库、表、数据之间的关系:

​          数据库 --> 表  -->数据

​     2)、什么字段、记录?

​           表中每一列称为字段;

​           表中第一行数据称为记录;

​     3)、什么主键?

​             能唯一代表表中某条记录的列称为主键,主键的值中唯一的。

## 1.4 存储数据的方式

存储数据的方式指的就是数据以什么样的结构进行存储。

### 1.4.1 传统物质分类

整理前:

![](img\4-1整理前.png)

整理后:

![](img\4-2整理后.png)

### 1.4.2 excel分类

 计算机中的数据,经常使用类似Excel 表的结构进行管理。每个 Excel 中,数据的组织结构分别为工作簿、工作表、数据行、列这 4 大部分组成。如图:

![](img\4-3excel学生表.png)

![](img\4-4excel老师表.png)

# 二、mysql安装

mysql的安装和配置,请查看 mysql安装.docx

**windows系统下启动、停止mysql数据库:【重点】**

1)、如果我们使用的是"phpstudy"集成工具中的msyql数据库,则使用下面的方式来启动、停止mysql数据库:

​        双击桌面上的"phpstudy"图标,然后来启动、停止mysql数据库

2)、如果我们使用的是单独通过mysql安装包安装的mysql数据库,则使用下面的方式来启动、停止mysql数据库:

​      通过windows的服务管理器来启动、停止mysql数据库:

# 三、数据可视化工具

**连接mysql数据库的两种方式:**

**第一种**:通过mysql自带的客户端应用程序mysql.exe来连接msyql数据库,如下:

-h:要连接的主机

-u:帐号

-p:密码

![](img\mysql自带客户端.png)

**第二种【重点】**:通过第三方可视化工具navicat来连接mysql数据库,如下:

![](img\navicat.png)

## 3.1 简介

简介:操作数据库最古老的方式为cmd。这种方式不友好、也不美观,同时无法保存最近的操作命令,数据库可视化工具帮初学者解决了这一系列问题,对初学者非常友好,**数据库可视化工具**有很多,Navicat就是其中的一种,它界面直观、功能强大、操作简单,是市面上最流行的一种数据库可视化工具。

## 3.2 安装navicat

一路敲回车键

## 3.3  使用navicat工具

### 3.3.1 连接数据库

![](img\navicat.png)

### 3.3.2数据库创建

![](img\创建数据库.png)

### 3.3.3 创建数据表

#### 3.3.3.1 常见的数据(字段)类型

1)、字符类型:

​        char:  通常用来存放某个字段的值的长度是相对固定的。

​        varchar:通常用来存放某个字段的值的长度是可变的。

​        text:

![](img\字符类型.png)

2)、数值类型:

​        tinyint

​        smallinit:

​        int

​        bigint:

![](img\数值类型.png)

#### 3.3.3.2 设计表的规则

设计表时表中的字段类型要根据实际存放值的类型来进行选择,字段类型的长度既满足当前的需求又考虑到将来的扩展性。

## 3.4 管理数据

使用navicat通过鼠标的方式快速的进行 增、删、改、查

![](img\增删改数据.png)

## 3.5 备份与还原

# 四、SQL查询语言

## 4.1 简介:

​        SQL(英文全称:Structured Query Language)是结构化查询语言,专门用来访问和处理数据库的编程语言。能够让我们以编程的形式,操作数据库里面的数据。

## 4.2 SQL语句特点

不区分大小写

## 4.3 SQL的主要内容

主句:select、insert into、update 、delete  

子句:where(and 和 or) 、order by 、group by 、limit、join...on

## 4.4 增删改查

### 4.4.1 添加数据

添加数据语法:

```sql
INSERT INTO 表名[( 字段名1,字段名2,... )] VALUES ('value1','value2',.... )
-- 如果value的值是字符串则必须加 引号


-- 添加数据:insert into 表名[(字段名1,字段名2...)]values('值1','值2'...)
-- insert into class(banhao,banji,teacher)values(6,'python开发','王老师')
-- 等价于上面的sql语句:
-- insert into class values(9,'python开发3','王老师')

-- insert into class(banji,teacher)values('go语言开发','李老师')
```

### 4.4.2 删除数据

删除数据语法:

```sql
DELETE FROM 表名 [WHERE 条件] 
-- 注意:不加条件全删除,很危险

-- 删除数据:delete from 表名 [where 条件]
-- 注意:如果省略了where条件时会把表中所有数据给删除掉,要慎重使用
-- 删除班号为7的班级数据:
-- delete from class where banhao=7
-- delete from students
```

### 4.4.3 更新数据

更新(修改)数据语法:

```sql
UPDATE 表名 SET column1 = value1,column2 = value2 ,... [WHERE 条件]

-- 更新数据:update 表名  set  要修改的字段名1='值',要修改的字段名2='值'...  [where 条件]
-- 注意:如果省略了where条件时会把表中所有数据给修改掉,要慎重使用

-- 修改班号为8的班级名称为web开发2班,班主任为张老师:
update class set banji='web开发2班',teacher='张老师' where banhao='8'

```

### 4.4.4 查询数据

语法:

```sql
SELECT * FROM 表名   -- *代表所有的列信息都展示
SELECT column1,column2 FROM teacher  -- 只展示某些列信息
```

## 4.5 其它子句

### 4.5.1 where 条件

| 运算符      | 描述         |
| ----------- | ------------ |
| =           | 等于         |
| !=  或者 <> | 不等于       |
| >           | 大于         |
| <           | 小于         |
| >=          | 大于等于     |
| <=          | 小于等于     |
| BETWEEN     | 在某个范围内 |
| LIKE        | 搜索某种模式 |
| AND、OR     | 交集、并集   |

​     

语法:

```sql
主句 WHERE column = VALUE
```

```sql
主句 WHERE column  BETWEEN  VALUE1 AND VALUE2  -- 两边的区间是包含的
```

```sql
主句 WHERE column LIKE 'a%'  -- 在某个列中查询以a为开头的数据
主句 WHERE column LIKE '%a' --  在某个列中查询以a为开头的数据
主句 WHERE column LIKE '%a%' -- 在某个列中查询以a为开头的数据
```

### 4.5.2 order by排序

语法:

```sql
主句 ORDER BY column [ ASC | DESC ]
    
-- ASC 升序  默认升序
-- DESC 倒序

```

### 4.5.3 group by分组查询、聚合查询

```sql
SELECT *[,聚合函数] FROM 表名 [GROUP BY 字段]

```

count(*)  总数量

min(字段名)

max(字段名)

avg(字段名)

sum(字段名) 求和

### 4.5.4 limit

```sql
SELECT * FROM 表名 [ LIMIT [start,]size ]

```

size:取几条

start: 下标,从哪几个位置开始取

### 4.5.5 join连表查询

```sql
SELECT * FROM 表1 JOIN 表2 ON 连接条件   -- 全连接。 只有on后面的条件成立才会连接。
SELECT * FROM 表1 LEFT JOIN 表2 ON 连接条件 -- 左连接  以左表为基准,左表的数据都会显示
SELECT * FROM 表1 RIGHT JOIN 表2 ON 连接条件 -- 右连接  以右表为基准,右表的数据都会显示

```

## 4.6 补充

解决 ID 不连续:

注意表名替换

```sql
ALTER TABLE 表名 DROP id;
ALTER TABLE 表名 ADD id int NOT NULL FIRST;
ALTER TABLE 表名 MODIFY COLUMN id int NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(id);

```

select完整语法:

注意顺序

```sql
SELECT  字段名[ 表名.字段名 | 表别名.字段名 | 字段名 AS 字段别名 ] [...]
FROM table_name[as table_alias]
[JOIN table_name2 ON 条件]  
[WHERE....]  
[GROUP BY....] 
[ORDER BY....] 
[LIMIT 0,3]  

```

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值