MySQL学习01

连接方式

客户端进入数据库的方法:

-> mysql -h [localhost] -u root -p

-> (输入数据库的密码)

数据类型

1.数值类型

->TINYINT 大小:1 bytes

有符号(SIGNED)范围:(-128,127)

无符号(UNSIGNED)范围:(0,255)

描述:小整数值

->SMALLINT 大小:2 bytes

有符号(SIGNED)范围:(-32768,32767)

无符号(UNSIGNED)范围:(0,65535)

描述:大整数值

->MEDIUMINT 大小:3 bytes

有符号(SIGNED)范围:(-8388608,8388607)

无符号(UNSIGNED)范围:(0,16777215)

描述:大整数值

->INT或INTEGER 大小:4 bytes

有符号(SIGNED)范围:(-2147483648,2147483647)

无符号(UNSIGNED)范围:(0,4294967295)

描述:大整数值

->BIGINT 大小:8 bytes

有符号(SIGNED)范围:(-2^63,2^63-1)

无符号(UNSIGNED)范围:(0,2^64-1)

描述:极大整数值

->FLOAT 大小:4 bytes

有符号(SIGNED)范围:(-3.402823466 E+38,3.402823466351 E+38)

无符号(UNSIGNED)范围:0和(1.175494351 E-38,3.402823466 E+38)

描述:单精度浮点数值

->DOUBLE 大小:8 bytes

有符号(SIGNED)范围:(-1.7976931348623157 E+308,1.7976931348623157 E+308)

无符号(UNSIGNED)范围:0和(2.2250738585072014 E-308,2.2250738585072014 E+308)

描述:双精度浮点数值

->DECIMAL 大小:8 bytes

有符号(SIGNED)范围:依赖于M(精度)和D(标度)的值

无符号(UNSIGNED)范围:依赖于M(精度)和D(标度)的值

描述:小数值(精确定点数)

2.字符串类型

char(10) ---固定占用内存为指定值,性能好

varchar(10)----最多不超过指定值,性能较差,占用内存相对较少

3.日期类型

SQL分类:

1.DDL 数据定义语言,用来定义数据库对象(数据库、表、字段)

关于库的操作:

查询:

show databases; 查询所有数据库

select database(); 查询当前数据库

创建:

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

删除:

drop database[if exists]; 数据库名

使用:

use 数据库名;

关于表的操作:

添加:

ALTER table 表名 add 字段名 类型(长度) [comment 注释][约束]; 添加字段

查询:

show tables; 查询当前数据库的所有表

DESC 表名; 查询表结构

show create table 表名; 查询指定表的建表语句

修改:

ALTER table 表名 RENAME TO 新表名; 修改表名

ALTER table 表名 MODIFY 字段名 新数据类型(长度); 修改数据类型

ALTER table 表名 CHANGE 旧字段名 新字段名 类型(长度)[comment注释][约束]; 修改字段名和字段类型

删除:

ALTER table 表名 drop 字段名; 删除字段

drop table [if exists] 表名; 删除表名

truncate table 表名; 删除指定表,并重新创建

总结:

2.DML 数据操作语言,用来对数据库表中的数据进行增删改

添加数据(INSERT):

给指定字段添加数据——语法:insert into 表名(字段名1,字段名2,...) values(值1,值2...);

给全部字段添加数据——语法:insert into 表名 values(值1,值2,...);

批量添加数据——语法: insert into 表名(字段名1,字段名2,...) values(值1,值2,...),(值1,值2,...);

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

注意:

1.字符串和日期型数据应该包含在双引号内

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

3.插入数据时,指定的字段顺序需要与值的顺序是一一对应的

修改数据(update):

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

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

删除数据(delete):

删除数据——语法: delete from 表名 [where 条件]

注意:

1.delete语句的条件可以有,也可以没有,没有则会对整张表进行删除

2.delete语句不能删除某一个字段的值(可以使用update)

总结:

3.DQL 数据查询语言,用来查询数据库中表的记录

查询数据(select):

基础查询方式:

select 字段1,字段2,字段3... from 表名; 查询多个字段

select * from 表名; 全表查询

select 字段1[AS 别名1],字段2[AS 别名2] ... from 表名; 设置别名

select DISTINCT 字段列表 from 表名; 去除重复记录

条件查询方式:

语法:select 字段列表 From 表名 where 条件列表;

条件:

注意:between 最小值 and 最大值

聚合函数:

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

常见聚合函数:

1.count 统计数量

2.max 最大值

3.min 最小值

4.avg 平均值

5.sum 求和

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

分组查询:

语法:select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件]

where 和 having 区别:

执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤

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

注意:

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

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

排序查询:

语法:select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;

排序方式:

->ASC:升序(默认值)

->DESC:降序

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

分页查询:

语法:select 字段列表 from 表名 limit 起始索引,查询记录数;

注意:

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

分页查询是数据库的方言,不同数据库有不同的实现,mysql是limit

如果查询的是第一页数据,起始索引可以省略,直接简写成limit 10.

执行顺序:

总结:

4.DCL 数据库控制语言,用来创建数据库用户,控制数据库的访问权限

管理用户:

查询用户:

use mysql;

select * from user;

创建用户:

create user '用户名'@'localhost' identified by '12356';

create user '用户名'@'%' identified by '12356'; 任意主机都可通过该账户进行访问数据库

修改用户密码:

alter user '用户名‘@’主机名' identified with mysql_native_password by '新密码';

删除用户:

drop user '用户名'@'主机名';

注意:

1.主机名可以用%通配,设为任意主机都可访问

控制权限:

查询权限:

show grants for '用户名'@'主机名';

授予权限:

grant 权限列表 on 数据库名.表名 to ‘用户名'@'主机名';

撤销权限:

revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';

注意:

多个权限之间,使用逗号分隔

授权时,数据库名和表名可以使用*进行通配,代表所有

  • 26
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值