MySQL基础

MYSQL基础

数据库:DataBase --> DB

数据库管理系统:DataBaseManagement --> DBMS

SQL:结构化查询语言

DBMS --> 执行 -->SQL -->操作 -->DB

M y S Q L 启动 \color{red}{MySQL启动} MySQL启动

MySQL服务启动

sql 复制代码
net start MySQL 服务名

MySQL服务停止

sql 复制代码
net stop MySQL  服务名

MySQL本地登录

sql 复制代码
mysql -uroot -p123456

-u 后面跟的是数据库的用户名。

-p 后面跟的是密码。

root是用户名,123456是密码。按自己对应的密码和用户名进行相应的替换。

远程连接 \color{red}{远程连接} 远程连接

sql 复制代码
mysql [-h 127.0.0.1 -p 3306] -u root -p 123456

h host连接服务器的ip地址。

p port 端口号。

M y S Q L 常用命令 \color{red}{MySQL常用命令} MySQL常用命令

退出mysql:

sql 复制代码
exit

查看mysql中又那些数据库:

sql 复制代码
show databases;

默认自带四个数据库。

查看数据库中的表

sql 复制代码
show tables;

使用某个数据库

sql 复制代码
use test;

这里的test是数据库的名称,视实际情况而定!!!

创建一个数据库

sql 复制代码
create database newdataname;
sql 复制代码
create database if not exists newdataname;

这里的newdataname是所要创建的数据库名称。

c o l o r r e d 任何一张表都有行和列 color{red}{任何一张表都有行和列} colorred任何一张表都有行和列

行(row):被称为数据/记录。

列(column):被称为字段。

每一个字段都有:字段名,数据类型,约束等属性。

数据库中的基本单位是表:table

S Q L 语句的分类 \color{red}{SQL语句的分类} SQL语句的分类

DQL

数据查询语言(凡是带有select 关键字都是查询语句)

select......

DML

数据操作语言(凡是对表当中的数据进行增删改的都是DML)

insert(增),delete(删),update(改)。

这个主要是操作表中的数据data。

DDL

数据定义语言(凡是带有create,drop,alter 都是DDL)

DDL主要操作的是表的结构,不是表的数据。

create(新建),drop(删除),alter(修改)。

这个增删改和DML不同·,这个主要对表结构进行操作。

TCL

事务控制语言。

包括:事务提交:commit 事务回滚:rollback.

DCL

数据控制语言。

例如:授权grant,撤销权限 revoke......

数据类型 \color{red}{数据类型} 数据类型

varchar(最长255)

可变长度的字符串。

比较智能,节省空间。

会根据实际的数据长度动态分配空间。

char(最长255)

定长度字符串。

不管实际的数据长度是多少。

分配固定长度的空间取存储数据。

使用不恰当,导致空间的浪费。

int(最长11)

数字中的整数型。

bigint

数字中的长整型。

float

单精度浮点型数据。

double

双精度浮点型数据。

data

短日期数据。

datatime

长日期数据。

clob(Charcter Large OBject)

字符大对象。

最多可以存储 4G的字符串。(存储一篇文章)

超过255个字符都要使用 clob来存储。

blob(Binary Large Object)

二进制大对象。

专门用来存储图片、声音、视频等流媒体数据

使用blog时用IO流才行。

条件 \color{red}{条件} 条件

=         等于

<> 或 !=   不等于

<         小于

<=        小于等于

>         大于

>=        大于等于

between......and......    两个值之间

在使用between......and...... 的时候,必须遵循左小右大
between......and...... 是闭区间,包括两端的值。

is nullnull

is not null 不为空。

and    并且

or      或者

andor 同时出现,and 优先级较高,如果想让or 先执行,需要加小括号。

in()
in不是一个区间,in后面跟的是具体的值。

not 可以取非,主要用 is 或 in

is null

is not null

in

not in

like

称为模糊查询,支持%或下划线匹配。

% 匹配任意个字符

_ 下划线,一个下划线只表示任意一个字符

基本操作 \color{red}{基本操作} 基本操作

导入数据

sql 复制代码
source 路径

路径中不要有中文,路径指文件路路径。

查看表的结构

sql 复制代码
desc 表名;

查看数据库的版本号

sql 复制代码
select version();

查看当前使用的那个数据库

sql 复制代码
select database();

创建表

sql 复制代码
create table 表名(
	字段1  数据类型,
	字段2  数据类型,
	字段3  数据类型
);

插入数据

sql 复制代码
insert into 表名(字段1,字段2,字段3) values 
	(值1,值2,值3),
	(值11,值22,值33),
	(值111,值222,值333);

更改表名

sql 复制代码
alter table 旧名 rename to 新名;

给表添加一列

sql 复制代码
alter table 表名 add 列名 数据类型;

修改列名的数据类型

sql 复制代码
alter table 表名 modify 列名 数据类型;

修改列名

sql 复制代码
alter table 表名 change 旧列名 新列名 数据类型;

删除列

sql 复制代码
alter table 表名 drop 列名;

查询 \color{red}{查询} 查询

查询表中的数据

sql 复制代码
select * from 表名;

查询一个字段

sql 复制代码
select 字段名 from 表名;

查询两个字段或多个字段

方法1:

把每个字段都写上用逗号隔开。

sql 复制代码
select 字符1,字段2,字段n, from 表名;

方法2

可以使用 *

sql 复制代码
select * from 表名;

推荐使用方法1,方法2效率低,可读性差。

起别名(as)

sql 复制代码
select 原名 as 别名 from 表名;

注意,只是将显示的查询结果列名显示为别名,原表的列名还是原名。as 关键字可以省略。如果别名中有空格,应该使用单引号括起来,别名是中文也要使用单引号括起来。

排序

升序(asc)

sql 复制代码
select 字段 from 表名 order by 升序字段 asc;

降序(desc)

sql 复制代码
select 字段 from 表名 order by 降序字段 desc;

当升序/降序字段有多个时,只有当第一个字段相等,才会比较后面的字段。

数据处理函数/单行处理函数

单行处理函数的特点:一个输入对应一个输出。

多行处理函数的特点:多个输入,对应1个输出。

分组函数

只有5个。

注意:

分组函数在使用的时候,必须先进行分组,然后才能用。

如果你没有对数据进行分组,整张表默认为一组。

count(计数)

sum(求和)

avg(平均值)

max(最大值)

min(最小值)

分组函数在使用的时候注意事项

1.分组函数计算时自动忽略NULL,不需要提前对NULL处理。

2.分组函数中 count(*) 和 count(具体字段)区别。

count(具体字段): 表示统计该字段下所有不为NULL的元素总数。

count(*): 统计表当中的总行数。

3.分组函数不能够直接使用在where子句中。(结合分组查询 group by)理解。

因为分组函数在使用的时候必须要先进行分组才能使用,where执行的时候,还没有进行分组,所以where后面不能出现分组函数。

4.所有分组函数可以组合起来一起使用。

相关推荐
独行soc29 分钟前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘
White_Mountain1 小时前
在Ubuntu中配置mysql,并允许外部访问数据库
数据库·mysql·ubuntu
Code apprenticeship1 小时前
怎么利用Redis实现延时队列?
数据库·redis·缓存
百度智能云技术站1 小时前
广告投放系统成本降低 70%+,基于 Redis 容量型数据库 PegaDB 的方案设计和业务实践
数据库·redis·oracle
老王笔记1 小时前
GTID下复制问题和解决
mysql
装不满的克莱因瓶1 小时前
【Redis经典面试题六】Redis的持久化机制是怎样的?
java·数据库·redis·持久化·aof·rdb
Lojarro2 小时前
【Spring】Spring框架之-AOP
java·mysql·spring
梦想平凡3 小时前
PHP 微信棋牌开发全解析:高级教程
android·数据库·oracle
TianyaOAO3 小时前
mysql的事务控制和数据库的备份和恢复
数据库·mysql
Ewen Seong3 小时前
mysql系列5—Innodb的缓存
数据库·mysql·缓存