MySQL

  1. 创建数据库

基本语法
create database ’数据库名称’;//默认创建数据库表
create database ’数据库名称 default character set utf8;//创建指定默认字符集为交的数据库
show character set;//查看可用字符集名称
show collation;//查看可用的排序规则名称
create database test character set utf8 default collate utf8_mb4;
//创建指定的默认字符集utf8,排序规则为utf8_mb4的数据库(test)
  1. 查看、删除和修改数据库

  1. 使用数据库:use 数据库名称;
  1. 修改数据库:使用alter database语句可以修改一个已有的数据库的默认字符集和排序规则。
  1. 删除数据库:drop database "数据库名称";
show databases;//查看所有数据库
show create databases;//查看数据库属性
use test;//使用数据库
alter database test character set gbk;
//将指定的utf8的数据库修改为gbk的数据库
alter database test character set gb2312 default collate gb2312_chinese_ci;
//将test数据库的默认字符集修改为gb2312,排序规则修改为gb2312_chinese_ci
drop database test;//删除数据库
  1. Mysql常用数据类型

  1. 数值类型

int

(4个字节)

float

(单精度 4个字节)

double

(双精度 8个字节 )

decimal(M,D)

M:总位数 D:精确位数

例:5.66(3,2)

int not null default 0不允许就空默认为0

  1. 字符串类型

char和varchar的区别

char(定长字符串 0-255)

Varchar( 变长字符串0-65535) text(0-2^16-1)

char:定长字符串在分配数据的存储空间是固定的

varchar:它会根据数据的实际长度动态的改变存储值的长度,所以不能确定字段需要多少字符

就可以使用varchar大大节省了磁盘空间。

  1. 日期和时间类型

date[日期 年月日] time[时间 时分秒] datetime[年月日 时分秒 YYYY-MM-DD HH:mm:ss]

timestamp[时间戳] year[年]

注意:没有在time类型加冒号,理解为持续的的时间,而不是一个时间段

系统在年份中,将00-69范围内的年份转化为2000-2069

把70-99范围内的年份值转化为1970-1999

  1. 复合类型

enum 枚举类型

表示:从一个集合选取一个值,犹似一个单选题

比如性别enum(“男”,“女”)

集合中每一个值都是字符串类型的,他们都是都好隔开

set可以预定义的集合中取得任意数量的值

set(“值1”,“值2”…)多项选择器 可以选择多个或者一个 ,set不可以包含两个相同的元素

  1. DDL-数据库操作

查询

查询所有数据

show databases;

查询当前数据库

select database();

创建

create database [if not exists]数据库名[default charset 字符集][collate 排序规则]

删除

drop database [if exists] 数据库名:

使用

use 数据库名;
DDL-表操作-查询
查询当前数据库所有表
show tables;
查询表结构
desc 表名;
查询指定表的建表语句
show create table 表名;
DDL-表操作-创建
create table 表名(
字段1 字段1类型【 comment 字段1注释】,
字段2 字段2类型【 comment 字段2注释】,
字段3 字段3类型【 comment 字段3注释】,
...
字段n 字段n类型【 comment 字段n注释】
)[ comment 表注释 ];

注意:【...】为可选参数,最后一个字段后面没有逗号

DDL-表操作-数据类型

Mysql中的数据类型有很多,主要分为三类:数值类型,字符串类型,日期时间类型。

分类

类型

大小

有符号(signed)范围

无符号(unsigned)范围

描述

数值类型

TINYINT

1 BYTE

-128--127

0-255

小整数值

SMALLINT

2 BYTES

-32768--32767

0-65535

大整数值

MEDIUMINT

3 BYTES

-8388608--8388607

0-16777215

大整数值

INT或INTEGER

4 BYTES

-2147483648--2147483647

0--4294967295

大整数值

BIGINT

8 BYTES

极大整数值

FLOAT

4 BYTES

单精度浮点数值

DOUBLE

8 BYTES

双精度浮点数值

DECTMAL

依赖于M(精度)和D(标度)的值

依赖于M(精度)和D(标度)的值

小数值(精确定点数)

分类

类型

大小

描述

字符串类型

char

0--255 bytes

定长字符串

varchar

0--65535 bytes

变长字符串

tinyblob

0--255 bytes

不超过255个字符的二进制数据

tinytext

0--255 bytes

短文本字符串

blob

0--65 535 bytes

二进制形势的长文本数据

text

0--65 535 bytes

长文本数据

mediumblob

0--16 777 215 bytes

二进制形势中的中等长度文本数据

mediumtext

0--16 777 215 bytes

中等长度文本数据

longblob

0--4 294 967 295 bytes

二进制形势的极大文本数据

longtext

0--4 294 967 295 bytes

极大文本数据

分类

类型

大小

范围

格式

描述

日期类型

date

3

1000-01-01至9999-12-31

yyyy-mm-dd

日期值

time

3

-838:59:59至838:59:59

hh:mm:ss

时间值或持续时间

year

1

1901至2155

yyyy

年份值

datetime

8

1000-01-01 00:00:00至9999-12-31 23:59:59

yyyy-mm-dd

hh:mm:ss

混合日期和时间值

timestamp

4

1970-01-01 00:00:01至2038-01-19 03:14:07

yyyy-mm-dd

hh:mm:ss

混合日期和时间值,时间戳

DDL-表操作-修改
添加字段
alter table 表名 add 字段名 类型(长度)【comment 注释】【约束】
修改字段类型
alter table 表名 modify 字段名 类型(长度) 【comment 注释】【约束】
修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度) 【comment 注释】【约束】
删除字段
alter table 表名 drop 字段名;
修改表名
alter table 表名 rename to 新表名;
DDL-表操作-删除
删除表
drop table [if exists] 表名;
删除指定表,并重新创建该表
truncate table 表名;

注意:再删除表时,表中的全部数据也会被删除。

  1. DML-数据操作语言

DML英文全称是Date Manipulation Language(数据操作语言),用来对数据库中表的数据记录经行增删改查操作。

增加数据(insert)

修改数据(update)

删除数据(delete)

DML-添加数据
给定字段名添加数据
insert into 表名(字段名1,字段名2,...)values(值1,值2,...);
给全部字段添加数据
insert into 表名 value (值1,值2,...);
批量添加数据
insert into 表名(字段名1,字段名2,...)values(值1,值2,...)values(值1,值2,...)values(值1,值2,...);
insert into 表名 value (值1,值2,...)value (值1,值2,...)value (值1,值2,...);

注意:1.插入数据时,指定的字段顺序需要与值的顺序是一一对应的。

2.字符串和日期型数据应该包含在引导中。

3.插入的数据大小,应该在字段的规定范围内。

修改数据
update 表名 set 字段名1= 值1,字段名2=值2,...[where 条件];

注意:修改语句的条件可以有,也可没有,如果没有条件,则会修改整张表的所有数据。

删除数据
delete from 表名 [where 条件]

注意:delete语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。

delete语句不能删除除某一个字段的值(可以使用update“将这个字段设为null”)。

MySQL退出无线循环命令

例:出现下面状况的循环无法退出的情况

’>条件下 本行输入 "‘ ",

在->条件下 同行输入 " \c ”,就退出无线循环了

  1. DQL-介绍

DQL英文全称Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。

查询关键字:select

DQL-语法

select 字段列表  from 表名列表
where 条件列表 (group by 分组字段列表)(having分组后条件列表)(order by排序字段列表)(limit 分页参数)
DQL-基本查询
1.查询多个字段

select 字段1,字段2,字段3 from 表名;

select * from 表名;

2.设置别名
select 字段1 【AS(可省略) 别名1】,字段2【as 别名2】... from 表名;
3.去除重复记录
select distinct 字段列表 from 表名 ;
DQL-条件查询
1.语法
select 字段列表 from 表名 where 条件列表
2.条件

比较运算符

功能

逻辑运算符

功能

>

大于

and或 &&

并且(多个条件同时成立)

>=

大于等于

or或 ||

或者(多个条件任意一个成立)

<

小于

not或 !

非,不是

<=

小于等于

=

等于

<>或!=

不等于

between...and...

在某个范围之内(含最小,含最大)

in(...)

在in之后的列表中的值,多选一

like 占位符

模糊匹配

is null

是null

DQL-聚合函数
  1. 介绍

将一列数据作为一个整体,进行纵向计算。

  1. 常见聚合函数

函数

功能

count

统计数量

max

最大值

min

最小值

avg

平均值

sun

求和

3.语法
select 聚合函数(字段列表)from 表名;

注意:null值不参与所有聚合函数运算。

DQL-分组查询
  1. 语法
select 字段列表 from 表名 【where 条件】 group by  分子字段名【having 分组后过滤条件】
2.where与having区别
  1. 执行时机不同:where 时分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤

  1. 判断条件不同:where不能对聚合函数进行判断,,而having可以。

注意:

执行顺序:where > 聚合函数 > having。

分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。

DQL-排序查询
  1. 语法
select 字段列表 from 表名 order by字段1 排序方式,字段2 排序方式2;
  1. 排序方式

ASC:升序(默认值)

DESC:降序

注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。

DQL-分页查询
  1. 语法
select 字段列表 from 表名 limit 起始索引,查询记录数;

注意

起始索引从0开始,起始索引=(查询页码-1)* 每页显示记录数。

分页查询时数据库的方言,不同数据库有不同的实现,MySQL中是limit。

如果查询的是第一页数据,起始索引可以省略,直接简写为limit10。

DQL-执行顺序

编写顺序

select

4

执行顺序

from

字段列表

表名列表

from

1

where

表名列表

条件列表

where

2

group by

条件列表

分组字段列表

group by

3

having

分组字段列表

分组后条件列表

having

select

分组后条件列表

字段列表

order by

5

order by

排序字段列表

排序字段列表

limit

6

limit

分页参数

分页参数

7.DCL-介绍

DCL英文全称是Data Control Language(数据控制语言),用来管理数据库,用户,控制数据库的访问,权限。

DCL-用户管理
  1. 查询用户
use MySQL;
select * from user;
2创建用户
create user '用户名'@'主机名' IDENTIFIED by '密码';
3.修改用户密码
alter user '用户名'@'主机名' IDENTIFIED with mysql_native_password by '新密码';
4.删除用户
drop user  '用户名'@'主机名';
DCL-权限控制

MySQL中定义了很多种权限,但是常用的就以下几种:

权限

说明

all,all privileges

所有权限

select

查询数据

insert

插入数据

update

修改数据

delete

删除数据

alter

修改表

drop

删除数据库/表/视图

create

创建数据库/表

  1. 查询权限
show grants for '用户名'@'主机名';
2.授予权限
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名
3.撤销权限
revoke 权限列表 on 数据库名.表名 to '用户名'@'主机名

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值