快速入门Mysql(一)

一.库级别的操作

1.查看当前数据库中的所有库

show databases;
//这个sql语句会帮你查到当前数据库中的所有库,
//注意不是database而是打他databases

演示

2.创建数据库

create database [if not exists]db_name [character set utf8mb4];

其中[ ]中的为可选项 但是不加character set时 添加数据为汉字时会出现乱码 所以建议每次创建库的时候加上

utf8mb4为指定数据库所使用的字符集

MySQL在5.5.3版本之后增加了一个utf8mb4的编码,mb4就是most bytes 4的意思,用来兼容四字节的unicode。其实,utf8mb4是utf8的超集,理论上原来使用“utf8”,然后将字符集修改为“utf8mb4”,也并不会对已有的utf8编码读取产生任何问题

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201231193737605.png
3.进入到某个库中
刚才我们已经创建好了test库那我们该怎么进入到该库中呢?
使用sql语句use tsst; 我们就进入了test库了,接下来就可以进行相关的操作了
在这里插入图片描述
4.删除库(危险操作谨慎使用)

drop database + 库名;

数据库已经创建好了我们再来看看表的相关操作吧

二.表的相关操作

先从表的创建说起吧!已经学会了库的创建,那么表的创建也是so easy.
要创建表 我们就不得不说一说数据库中的相关数据类型了
和java等语言相同 mysql 也有 整形,浮点型,字符串等 接下来我们一个一个来看(会与java中的数据类型进行对比)

1.数据类型

a. 整形和浮点型(常用)
数据类型大小说明对y应java中的类型
Bit[(M)]M指定位数,大小默认为1二进制数,M范围从1到64
存储数值范围从0到2^M-1
常用Boolean对应bit,此时默认是1位,
即只能存0和1
Tinyint一个字节Byte
SMALLINT2个字节Short
int4个字节Integer
Bigint8个字节Long
Float(M,D)4个字节单精度,M指定长度,D指定
小数位数。会发生精度丢失
Float
Double(M,D)8个字节Double

在我们的日常使用中,其实不需要过多考虑内存的占用,因为我们不会存放过多的数据,那么int就可以帮我们做好多的事了。当int不够用时,再考虑使用Bigint

接下来我们把Float(M,D)拿出来看一看

例如:定义了了一个float(3,1),那么该数最大为99.9,最小为0.0了

我们再来看一看字符串类型。

b.字符串类型
数据类型大小说明对y应java中的类型
varchar(size)0-65,535字节可变字符串,size确定能存放的具体长度String
text0-65,535字节长文本数据String
mediumtext0-16 777 215字节中等长度文本数据String
BLOB0-65,535字节二进制形式的长文本数据byte[]
c.日期类型
数据类型大小说明对y应java中的类型
datetime8个字节范围从1000到9999年,不会进行时区的
检索及转换。
java.util.Date、
java.sql.Timestamp
timestamp4个字节范围从1970到2038年,自动检索当前时
区并进行转换。
java.util.Date、
java.sql.Timestamp

其中timestamp使用的更多一些

2.创建表

说完这些数据类型后,我们就开始建表

create table user(
	userId int,
	userName varchar(5),
	birthday timestamp,
	location varchar(50),
	introduction text
);

与编程语言不一样的是SQL语句中"变量名"在前,类型在后

在这里插入图片描述

这样我们就将user表建好了,我们可以通过desc user来查看我们新建表user的表的结构
在这里插入图片描述
其中Field代表字段名,Type是字段类型,NULL指字段是否允许为空,key表示字段对应索引的类型,Default指字段的默认值,Extra 为扩展

在创建表的时候我们还来可以用comment来增加字段说明,在别人看我们的SQL语句时候就能清楚的知道我们所定义的字段指的是什么

create table user(
	userId int comment '用户Id',
	userName varchar(5) comment '用户名',
	birthday timestamp comment '用户生日',
	location varchar(50) comment '用户地址',
	introduction text comment '用户简介'
);

表创建好了,那么我们就来看看怎么往表中插入数据吧!
插入数据有两种操作方法

a.插入数据

1.单行数据 + 全列插入

insert into user values(1,"Yukl","1999-09-09","西安市","无");

在这里插入图片描述
2.多行数据 + 指定列插入

insert into user (userId, userName) values
(2,"xiaoming"),
(3,"xiaohong");

在执行该SQL语句时我们会发现,我们的Mysql报错了
在这里插入图片描述
是因为我们在建表时将userName字段的长度设置为5,所以出现了错误,

insert into user (userId, userName) values
(2,"小明"),
(3,"小红");

在这里插入图片描述
数据插入成功后,该又该怎样查看插入的数据呢?
那就得看看查询语句了;

b.查找数据
select * from user; 

其中*代表的是查询该表中的所有字段
我们也可以将 * 替换为表中的任一字段,可以是一个也可以是多个,字段与字段之间使用逗号隔开

在这里插入图片描述

我们可以发现,在插入数据时候,没有插入birthday字段的值,系统会默认的将该字段的值设置为当前时间,其他没有插入的字段值为NULL

演示一下只查找用户名和生日

select userName,birthday from user;

在这里插入图片描述
一些其他的操作

1.别名:我们可以为我们查询的字段起别名
例如:select userName As ‘用户名’ from user;
在这里插入图片描述
这样我们的useName就显示为用户名了,
注意:SQL语句中字符串类型可以使用单引号,也可使用双引号

2.去重:distinct(查询的结果中有重复数据时使用distinct会去掉重复数据)
select distinct userId from user;
我们的user表中的userId没有 重复的数据,所以你要重新建张表来试一试

3.排序:order by ,
可以对结果集中的数据根据某个字段来进行排序
select * from user order by userId;
在这里插入图片描述

4.order by 默认从小到大排序,如果要结果集从大到小进行排序可以使用desc关键字
select * from user order by userId desc;
在这里插入图片描述
这样我们发现userId值大的出现在前面了

5.条件查询:where
现在有个要求,要我们查找居住在西安的用户信息
我们就可以这样写SQL语句select * from user where location='西安市';
在这里插入图片描述

6.分页查询:limit
当业务要求只需几条数据时就需要使用了
limit 使用有三种语法
limit n ,从 0 开始,筛选 n 条结果
limit s n ,从 s 开始,筛选 n 条结果
limit n offset s,从 s 开始,筛选 n 条结果
在这里插入图片描述

c.修改数据

业务要求为:把小明的地址改为西安市

update user set location="西安市" where userName="小明";

在这里插入图片描述
再来看看表中的数据,我们发现小明的地址变为西安市了
在这里插入图片描述

d.删除数据

业务要求:删除userName=‘小红’ 的数据;

delete from user where userName='小红';

在这里插入图片描述
再来看看数据库,删除成功了。
在这里插入图片描述

总结语法

1.新增

-- 单行插入
insert into(字段1, ..., 字段N) values (value1, ..., value N);
-- 多行插入
insert into(字段1, ..., 字段N) values
(value1, ...),
(value2, ...),
(value3, ...);

2.查询

-- 全列查询
select * from-- 指定列查询
select 字段1,字段2... from-- 查询表达式字段
select 字段1+100,字段2+字段3 from-- 别名
select 字段1 别名1, 字段2 别名2 from-- 去重DISTINCT
select distinct 字段 from-- 排序ORDER BY
select * fromorder by 排序字段
-- 条件查询WHERE:
-- (1)比较运算符 (2)BETWEEN ... AND ... (3)IN (4)IS NULL (5)LIKE (6)AND (7)OR
(8)NOT
select * fromwhere 条件

3.修改

updateset 字段1=value1, 字段2=value2... where 条件

4.删除

delete fromwhere 条件
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值