MySQL使用方法

新增

创建库

create database [库名];

image-20211121230042679

创建表

create table userdata #userdata表明
(
    phone bigint(20) NOT NULL primary key,
    username  varchar(30) NOT NULL,
    userpwd varchar(30) NOT NULL,
    mail varchar(50) NOT NULL,
    sex char(2) NOT NULL,
    birth date NOT NULL,
    data datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
);

create table user
(
    phone int NOT NULL primary key,
    name varchar(11) NOT NULL
);

create table user_centent
(
    phone int NOT NULL primary key,
       centent varchar(100)
);

insert into user values(101,'user01');
insert into user values(102,'user02');
insert into user values(103,'user03');
insert into user values(104,'user04');
insert into user values(105,'user05');

insert into user_centent values(101,'centent01');
insert into user_centent values(102,'centent02');
insert into user_centent values(103,'centent03');
insert into user_centent values(104,'centent04');
insert into user_centent values(105,'centent05');
#NOT NULL 不许为空
#primary key 主键
#AUTO_INCREMENT 自增
#data datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' 按创建时间自动生成

遵循下列数据类型

数值类型

类型大小范围(有符号)范围(无符号)用途
TINYINT1 Bytes(-128,127)(0,255)小整数值
SMALLINT2 Bytes(-32 768,32 767)(0,65 535)大整数值
MEDIUMINT3 Bytes(-8 388 608,8 388 607)(0,16 777 215)大整数值
INT或INTEGER4 Bytes(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整数值
BIGINT8 Bytes(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)极大整数值
FLOAT4 Bytes(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)0,(1.175 494 351 E-38,3.402 823 466 E+38)单精度 浮点数值
DOUBLE8 Bytes(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)双精度 浮点数值
DECIMAL对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2依赖于M和D的值依赖于M和D的值小数值

日期和时间类型

类型大小 ( bytes)范围格式用途
DATE31000-01-01/9999-12-31YYYY-MM-DD日期值
TIME3‘-838:59:59’/‘838:59:59’HH:MM:SS时间值或持续时间
YEAR11901/2155YYYY年份值
DATETIME81000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP41970-01-01 00:00:00/2038结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07YYYYMMDD HHMMSS混合日期和时间值,时间戳

字符串类型

类型大小用途
CHAR0-255 bytes定长字符串
VARCHAR0-65535 bytes变长字符串
TINYBLOB0-255 bytes不超过 255 个字符的二进制字符串
TINYTEXT0-255 bytes短文本字符串
BLOB0-65 535 bytes二进制形式的长文本数据
TEXT0-65 535 bytes长文本数据
MEDIUMBLOB0-16 777 215 bytes二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215 bytes中等长度文本数据
LONGBLOB0-4 294 967 295 bytes二进制形式的极大文本数据
LONGTEXT0-4 294 967 295 bytes极大文本数据

插入数据

insert into [表名] values (数据1,数据2,数据3…);

image-20211121231518795

插入指定列的数据

insert into [表名] (列1,列2,列3…)values (数据1,数据2,数据3…);

image-20211121231644542

删除

删除库

drop database [库名];

image-20211121230227191

删除表

drop table [表名];

image-20211121232208131

删除表中某一项

DELETE FROM 表名 WHERE 字段名 = ‘参数’;

DELETE FROM 表名 WHERE 字段名1 = ‘参数’ AND 字段名2 = ‘参数’;

image-20211125211945772

修改

mysql 修改表中某一列的值

update[表名] set [列名] = [新值] where [列名称] = [某值]

image-20211123231004576

查询

查询所有数据库

show databases;

image-20211118150403281

查询所有表

show tables;

image-20211121232140033

查询指定表的数据结构

show create table [表名];

image-20211118150457526

查询指定表中所有的数据

select * from [表名];

image-20211118150516159

查询指定表中的指定列

select [列名1,列名2,…] from [表名];

image-20211118150550932

查询指定列表名的其他对应数据

假如通过id查询content的数据

select [被查询列] from [表名] WHERE id=[id值];

image-20211118150619240

查询按照日期排序

mySQL 里desc和asc的意思

  • desc 是descend 降序意思
  • asc 是ascend 升序意思

降序

select * from 表名 where true order by 排序列名 desc;

image-20211223120851987

升序

select * from 表名 where true order by 排序列名 asc ;

image-20211223121044275

查询指定条数数据

select * from 表明 limit 指定条数;

image-20211223121223188

查询按照日期排序的前五条数据

select * from 表名 where true order by 要排序的字段名 desc limit 指定条数;

image-20211223121340130

聚合查询(三种)

image-20211125210542466

查询userdate中有多少个用户

select count(*) from userdata;

image-20211125205318443

查询userdate中有多少个用户并已StundenNum表示

select count(*) AS StundenNum from userdata;

image-20211125205921085

查询userdata中有多少个区号为86的用户

select count(*) AS 区号 from userdata qcellcore = 86;

image-20211125210302060

分组聚合查询

查询不同城市中有多少个学生

select [字段名(相同)], count(*) from [表名] group by [字段名(相同)];

image-20211125212227468

多表查询

select * from [表1],[表2];

(5 cols x 7 rows)*(2 cols x 3 rows) → (7 cols x 21 rows)

image-20211125213053451

多表查询

select [字段1],[字段2] from [表1],[表2]where [表1].[相同字段] = [表2].[相同字段];

select name,centent from user,user_centent where user.phone = user_centent.phone;

image-20211126122509290

连接查询(join)

select a.name,b.centent from [表名1] a join [表名2] b on a.phone=b.phone;

select a.name,b.centent from user a join user_centent b on a.phone=b.phone;

image-20211125221303159

常见问题

mysql默认是不支持远程连接的

1.新创建一个用户

该用户可以从任何主机以密码123456远程访问MySQL

create` `user` `'root'``@``'%'` `identified ``by` `'123456'``;

如果报错 ERROR 1396 (HY000): Operation CREATE USER failed for ‘root’@‘%’ ,说明已经存在该用户对应主机,直接第三步授权

2.给用户最大授权

grant all privileges on *.* to 'root'@'%' identified by '123456';

3.刷新权限表 (最后不能忘记)

FLUSH PRIVILEGES; 刷新权限

在SQLyog中连接mysql8无法连接

原因是mysql8使用了新的加密方式,解决方法:windows 下cmd 登录 mysql -u root -p 登录你的 mysql 数据库,然后执行这条SQL:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

password 是你自己设置的root密码

在MySQL8中初始化数据库失败的原因

看看电脑名称是不是中文!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盒子里的加菲猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值