前言:

简单地介绍一下MySQL的应用场景以及如何启动、连接MySQL;还有其他相关的表操作、表记录操作、库操作等MySQL语句。

一、MySQL概述

1.  什么是数据库?

存储数据的仓库

2.  谁在用数据库?

金融机构,银行,游戏网站,购物网站,论坛 …

3. 数据库软件

a.MySQL(目前是社区开源,被Oracle收购,Oracle是闭源);

b.Mariadb(基本和MySQL一模一样);

c.mangoDB,sql_Server,Oracle, DB2

Linux操作系统:Ubuntu,CentOS,RedHat

4. 数据库的选择

生产环境中,如何选择使用哪个数据库?

a.是否开源

开源软件:不一定免费,MySQL、Mariadb、MongoDB

商业软件:Oracle、DB2、sql_server、

b.是否跨平台

跨平台:可在不同os上部署,一般部署在Linux、Unix;

不跨平台:sql_server

c.公司类型

开源软件:游戏网站、购物网站、论坛等中小型民营企业

商业软件:政府部门、金融机构、大公司(京东…)

5. MySQL特点

a.是关系型数据库,(会对比的问,MySQL的特点,和mangoDB)

b.跨平台

可以在Unix、Linux、Windows部署、运行数据库

c.支持多种编程语言

Python、Java、PHP、…

6. 关系型数据库的特点

1.数据是以行和列的形式存储

2.表中每一行叫一条记录

3.表中每一列叫一个字段;列名叫字段名;

4.表和表之间的逻辑关联叫关系

1.关系型数据库存储

表1、 学生信息表

姓名

年龄

班级

星矢

25

3

水冰月

25

6

表2、班级信息表

班级

班主任

3

大空翼

6

松人

查找:水冰月的班主任是谁?

通过2张或多张表进行查询;有相同的字段使得多张表有关联;

2.非关系型数据库存储(ManogoDB)

以键值对的方式存储

{‘姓名’:‘星矢’,‘年龄’:25,‘班级’:‘三班’,‘班主任’:‘大空翼’}

{‘姓名’:‘水冰月’,‘年龄’:25,‘班级’:‘六班’,‘班主任’:‘松人’}

性能特别高,高于关系型数据库,省去解析过程;

有‘班主任’,才能找到;没有,就找不到。

6. 三个名词

数据库软件、数据库、数据仓库

a.数据库软件

可以操作数据库的软件,看得见,可操作;

用来实现数据库的逻辑功能;

b.数据库

是一种逻辑概念,用来存放数据的仓库;

通过数据库软件来实现,侧重存储数据,不会分析数据;

c.数据仓库

比数据库庞大,主要用于数据挖掘和数据分析;

网购:

数据库:user表——存储用户名和密码

数据仓库:哪个时间段用户登陆量最多,哪个用户一年购物最多,…

7. 数据存储过程

客户端把数据存储到数据库服务器的过程:

1.先连接到数据库服务器

2.选择库

3.创建或修改表  insert

4.断开与数据库的连接  exit; | quit; |\q;

二、MySQL安装

1.Ubuntu安装MySQL服务

a.安装服务端

Sudo apt-get install mysql-server

b.安装客户端

Sudo apt-get install mysql-client

如果安装失败,需要安装软件

更新源文件

Sudo apt-get update

修复依赖关系

Sudo apt-get –f install

安装软件包

Sudo apt-get install

2.Windows安装 MySQL服务

a.官网下载安装包

Mysql-installer***5.7.***.msi

b.双击,按教程安装

环境变量,各个路径用分号‘;’隔开

3.启动和连接MySQL服务

a.服务端启动

Sudo /etc/init.d/mysql start

Sudo /etc/init.d/mysql stop

Sudo /etc/init.d/mysql restart  #重启

Sudo /etc/init.d/mysql status  #查看当前状态

Sudo /etc/init.d/mysql reload  #重新加载配置文件

b.客户端连接

mysql  –h主机地址  -u用户名  –p密码

mysql  –hlocalhost  -uroot    –p123456

主机地址:(数据库服务器地址)(127.0.0.1)

本地连接可省略-h选项

Mysql  -uroot    –p123456

c.退出

Exit;    quit;   \q

4.如何更改默认字符集

方法

通过更改MySQL配置文件来实现

步骤

1.获取root权限

sudo -i

2.备份配置文件

cd /etc/mysql/mysql.conf.d/

cp mysqld.cnf mysqld.cnf.bak

3.更改mysqld.cnf配置

[mysqld]

character_set_server = utf8

4.重启MySQL服务

sudo /etc/init.d/mysql restart

三、基本的sql命令

a.使用规则

1.每条命令必须以‘;’结尾

2.sql不区分大小写

3.使用\c终止当前命令的执行

b.库的命名规则

1.数字、字母、_,但不能只有数字

2.库名区分字母大小写

3.库名具有唯一性

4.不能使用特殊字符和MySQL关键字

c.库的管理

1.查看已有的库

show databases;

2.创建库

create database 库名;

create database 库名 character set utf8;

Latin1默认的字符集,习惯用utf-8。创建时,指定字符集

3.查看创建库的语句

show create database 库名; (查看字符集)

4.查看当前所在库

select database();

5.切换库

use 库名;

6.查看库中已有表

show tables;

7.删除库

drop database 库名;

d.表的管理

1.创建表(指定字符集)

create table 表名(

字段名1 数据类型,

字段名2 数据类型

)character set utf8;

ps:库默认什么字符集,表就默认什么字符集;

2.查看创建表的语句

show create table 表名;(查看字符集)

3.查看表结构

desc 表名;

4.删除表

drop table 表名;

5.注意

1.所有数据都是以文件的形式存放在数据库目录 /var/lib/mysql

2.基于硬盘存储

e.表记录的管理

1.插入记录

a.insert into 表名 values(值1),(值2),…;

Insert into t1 values(1,‘Bob’,20)

b.insert into 表名 (字段名1,字段名2) values(值1),(值2),…;

insert into t1(name) values ("jinmao");

2.查询记录

a.select  *  from 表名 [where 条件];

b.select 字段名1,字段名2,… from 表名 [where 条件];

select  name,age from t2 where id < 4;

删除表记录delete

delete from 表名 where 条件;

必须有where

更新表记录update

update 表名 set 字段1=值1,字段2=值2,...where 条件;

必须有where

四、数据类型

a.    数值类型

(有符号 和 无符号unsigned)

1.整型

int

大整型

4个字节

有符号:正21亿多

无符号:0~2**32-1(42亿多)

Tinyint

微小整型

1个字节

有符号:-128~127

无符号(unsigned):0~255

age tinyint unsigned,(只能写正数)

bigint

极大整型

8个字节

极少用,可用于手机号

2.浮点型

会自动补全

float

4个字节,最多显示7个有效位

字段名 float(m,n)

m:总位数,n:小数位位数

Float(5,2):-999.99~999.99

Insert的是:1234567890.12

Select的是:1234567936.00

只能显示7个有效位

decimal

最多显示28个有效位,精度高

字段名 decimal(m,n)

多用于对精度要求高的场合,such as 金额

存储空间

整数部分和小数部分分开存储

规则

将9的倍数包装成4个字节;

余数       字节

1~2         1

3~4         2

5~6         3

7~8         4

示例

decimal(19,9):

整数部分:10/9=1 … 1      4字节+1字节

小数部分:9/9=1 … 0       4字节+0字节

一共9个字节

b.   字符类型

1.分类

Char(定长)

char(宽度值),范围:1-255,必须填宽度

Varchar(变长)

varchar(宽度值),范围:1-65535,必须填宽度

示例

“A” (是字符的宽度)

Name char(20)存的是: “A           ”

(会自动补上19个空)

Name varchar(20)存的是:“A”

Text/ longtext(4G)

2.特点(char&varchar)

Char和varchar特点

1.char:定长,浪费存储空间,性能高

2.varchar:变长,节省存储空间,性能低

3.  宽度区别

(数值类型&字符类型)

数值类型

a.显示宽度,超过宽度也能正常存储;

b.只用于select查询显示,和存储空间没有关系;

c.用zerofill来显示效果;id int(3) zerofill

字符类型

a.    超过宽度,则无法正常存储;

b.   和存储空间有关;

示例

Create的时候,int(3)

Insert的时候,values(1),(2)(3);

Select的时候,001,002,003;

不够位数,补0;c.

超过宽度,一样显示;a.

不管存几位的数,都是4字节; b.

c. 枚举类型

定义

字段的值只能在列举的范围内选择

分类

单选:字段名 enum(值1, 值2,…)

多选:字段名 set(值1,值2,…)

插入记录时,用一个引号:“girl,Python,Study”

d. 日期时间类型

Date

日期"YYYY-MM-DD"

time

时间"HH:MM:SS"

datetime

日期时间"YYYY-MM-DD HH:MM:SS"

默认返回:NULL

timestamp

日期时间"YYYY-MM-DD HH:MM:SS"

默认返回:系统当前时间

日期时间函数

now()

返回服务器当前时间,年月日时分秒

curdate()

返回当前日期

curtime()

返回当前时间

sql命令行中

select now() | curdate() | curtime();

sql语句中

inesrt into t1 values(2,"吕老师",25,curdate(),curtime(),now());

日期时间运算

语法

select ... from 表名 where 字段名 运算符(时间 - interval 时间间隔单位);

时间间隔单位

1 day | 2 hour | 1 minute | 1 year | 3 month (都是单数)

示例

where meeting > (now() - interval 1 day);

现在 -  1天的时间    =    1天前的时间点

五、表字段的操作

1.语法

alter table 表名 执行动作

2.执行动作

添加字段add

alter table 表名 add 字段名 数据类型;(添加到末尾)

alter table 表名 add 字段名 数据类型 first;(添加到表首)

alter table 表名 add 字段名 数据类型 after 字段名;(添加到表中)

删除字段drop

alter table 表名 drop 字段名;

修改字段数据类型modify

alter table 表名 modify 字段名 新数据类型;

修改字段名 change

alter table 表名 change 原字段名 新字段名 数据类型;

六、运算符操作

1.数值比较 &

字符比较 &

逻辑比较

数值:=  !=  >  >=  <  <=

字符:=  !=

逻辑:and  or

2.范围内比较

between 值1 and 值2                      (值为数字)

in (值1,值2,...)

not in (值1,值2,...)

3.匹配空、非空

1.空: where 字段名 is null

2.非空: where 字段名 is not null

注意:

1.null:空值,必须用 is 或 is not 去匹配

2.""  :空字符串,只能用 = 或 != 去匹配

4.模糊比较

where 字段名 like 表达式

表达式

1._:匹配单个字符

2.%:匹配0到多个字符

七、sql查询

1.总结

3.select ... 聚合函数 from 表名

1.where ...

2.group by ...

4.having ...

5.order by ...

6.limit ...;

avg,count,sum,…

查询结果分组

查询结果筛选

查询结果排序,asc | desc

限制记录个数

2.order by

作用

给查询的结果进行排序

语法

order by 字段名 排序方式

排序方式

1.升序:ASC,默认

2.降序:DESC

3.limit(永远放在sql语句最后)

作用

限制显示查询记录的个数

用法

1.limit n                -->显示前n条记录

2.limit m,n                  -->从m+1条记录开始显示,显示n条(从0开始计数)

分页

每页显示5(n)条记录,显示第4(m)页

limit (m-1)*n,n;

4.聚合函数

分类

avg(字段名):平均值

max(字段名)

min(字段名)

sum(字段名)

count(字段名):统计该字段记录的个数

ps

1:可以加上'as 别名',下次可以继续用

2: null不会被count统计到

3:可以用count(*)统计所有记录,不会漏掉null

5.group by

作用

给查询的结果进行分组

Tips

先分组-----再聚合---去重

显示谁,就先select谁

注意

select的字段名 必须 要么group by一下,要么聚合一下!!!

group by的字段名 必须 select一下;

6.having

作用

对查询结果进一步筛选

注意

1.having语句通常和group by联合使用,过滤由group by语句返回的记录集

2.where只能操作表中实际存在的字段名, having操作由聚合函数生成的显示列

7.distinct

作用

不显示字段的重复值(去重)

注意

1.多个字段名时,不加括号,加逗号

2.处理distinct和from之间的所有字段,所有字段值必须全部相同才可以去重

8.约束

作用

保证数据完整性、一致性、有效性的规则

分类(desc 查看时)

1.默认约束(default)

2.非空约束(not null)

ex.

sex enum('M','F','S') not null default 'S'

性别不能为空,默认为'S'

020 MySQL概述及基本操作相关推荐

  1. MySQL数据库基本操作详解(数据库概述、基本操作、增删改查等)

    目录 MySQL数据库概述 MySQL数据库的基本操作 MySQL数据库的表的操作 MySQL数据库的增删查改(CRUD) MySQL数据库概述: 初来乍到,什么是数据库?数据库就是存储数据的仓库,我 ...

  2. linux mysql内网_在Linux中mysql的一些基本操作

    在Linux中mysql的一些基本操作 下面介绍一下 一.关于在Linux中mysql的一些基本操作 1.进入mysql "mysql -uroot -p",会提示输入密码,输入密 ...

  3. mysql数据库读写操作_一看就会,MySQL数据库的基本操作(二)

    上一节学习了MySQL数据库的基本操作的几个命令,1.登陆数据库:mysql -h localhost -u root -p.2.查看已有的数据库命令:show databases. 3.创建自己的数 ...

  4. MySQL01:MySQL概述

    MySQL概述 一.为什么要学习数据库 1.持久化数据到本地 2.可以实现结构化查询,方便管理 二.数据库相关概念 1.DB:数据库,保存一组有组织的数据的容器 2.DBMS:数据库管理系统,又称为数 ...

  5. linux mysql常用基本操作,Linux下MySQL数据库常用基本操作 一

    Linux下MySQL数据库常用基本操作 一 0.登录数据库 mysql -u root -p 1.显示数据库 show databases; 2.选择数据库 use 数据库名; 3.显示数据库中的表 ...

  6. MySQL基础——(MySQL概述及SQL通用语法)

    MySQL基础篇(一) MySQL基础 目录 MySQL基础 1 MySQL概述 1.1 数据库相关概念 1.2 数据模型 1)关系型数据库(RDBMS) 2)数据模型 2 SQL 2.1 SQL通用 ...

  7. MySQL基础知识-MySQL概述安装,单表增删改查,函数,约束,多表查询,事物

    MySQL基础知识-MySQL概述安装,单表增删改查,函数,约束,多表查询,事物 前言 1.MySQL概述 1.1数据库相关概念 1.2MySQL数据库 1.2.1版本 1.2.2下载 1.2.3安装 ...

  8. 第六天 02.mysql数据库的基本操作和密码爆破

    mysql数据库的基本操作 简介: ​ 数据库是什么 ​ 存储数据的仓库,数据是有组织的进行存储. mysql是一种关系数据库管理系统 使用工具:phpstudy mysql 默认端口 3306 一. ...

  9. MySQL 字段的基本操作:添加、修改和删除字段(详解)

    文章目录 MySQL字段的基本操作 一,MySQL数据表添加字段 (一)在末尾添加字段 (二)在开头添加字段 (三)在中间位置添加字段 二,MySQL数据表修改字段 (一)修改字段名称 (二)修改字段 ...

最新文章

  1. 经典算法研究系列:二、Dijkstra 算法初探
  2. linux 内核模块 编写例子,Linux内核模块实例
  3. iphone屏幕镜像如何全屏_苹果系统截屏录屏+标记剪辑功能详解( iPhone/iPad/Mac)
  4. C++学习(十七)(C语言部分)之 指针
  5. cocos2d-x游戏实例(24)-简易动作游戏(2)
  6. hbase的HA模式配置和维护
  7. 你可能不知道的package.json
  8. toolStripButton调整大小并只显示text
  9. sql server 2008 数据结构及数据内容一起导出的方法(导出脚本形式)
  10. VMware仅主机网络联网设置
  11. win10便签常驻桌面_Win10用户的印象笔记便签深度体验 | 大使专栏
  12. 写了个鼠标键盘模拟器,希望对大家有用哈!
  13. 3dmax报错信息大全,最全解决方案来了
  14. java word书签_JAVA 创建移除Word书签
  15. window10突然变成繁体怎么办呢??
  16. PHP是TM最美的语言,我的文章是最棒的狗粮
  17. 《C++ 黑客编程揭秘与防范(第2版)》——6.2 详解PE文件结构
  18. 突破NVIDIA NVENC并发Session数目限制
  19. [附源码]Java计算机毕业设计SSM超市会员积分管理系统
  20. IJCAI论文 | 基于改进注意力循环控制门,品牌个性化排序升级系统来了...

热门文章

  1. python xps_Python绘制XPS分峰后的填充效果
  2. 阿里百秀项目实战day3
  3. Android图片查看器
  4. HTML+CSS+jquery实现飞机大战游戏
  5. 小程序搜索框简单的实现
  6. php安卓苹果打开自动分开,苹果、安卓手机投屏不掉线的两种设置方式
  7. 微信小程序获取实时定位(记录)
  8. 是的,入职中软一个月(外包华为)就离职了!
  9. JavaScript游戏开发(3)(笔记)
  10. 2020春大连理工概率统计 上机作业