MySQL基础操作(大量示例带你入坑)--- 关于库的操作、数据库类型、创建表、查看表结构、删除表、表的增删查改

目录

关于库的操作:

1.显示数据库:

2.创建数据库:

3.使用数据库:

4.删除数据库

数据库类型:

1.数值类型:

 2.字符串类型:

3.日期类型:

关于表的操作:

1.创建表:

2.查看表结构:

3.删除表:

表的增删查改:

1.新增:

2.查询:

3.更新

4.删除


关于库的操作:

1.显示数据库:

语法:show databases;

显示数据库:

 

2.创建数据库:

语法:create database [if not exists] db_name[create_specification, [create_specification]];

create_specification是创建规格的意思,它主要有两种:
1.[default]character set charset_name指定数据库采用的字符集
     (或者:charset charset_name)
2.[default]collate collation_name指定数据库字符集的校验规则(默认是utf8)

说明:[]内的语句表示可选择项。

创建一个数据库db_test如果它还未被创建:

 

创建一个字符集为utf8的数据库db_test如果它还未被创建:

         值得一提的是如果你没有设置数据库的字符集为utf8,那么在后面插入带有中文的数据是就会报错!!!

3.使用数据库:

语法:use db_name;

使用数据库:

只有使用了该数据库,才能在该数据库中修改表数据等操作~~

4.删除数据库

语法:drop database [if exists]db_name; 

 删除数据库:

注意:删除数据库之后,内部看不到数据库,里面的表和数据全部被删除,所以删库是一种非常危险的操作,千万要谨慎操作!!

数据库类型:

在学习对表的增删查改之前,我们先来认识一下数据库的类型把吧:

1.数值类型:

数据类型大小说明对应Java类型
bit[(M)]M指定位 数,默认 为1二进制数,M范围从1到64, 存储数值范围从0到2^M-1常用Boolean对应BIT,此时 默认是1位,即只能存0和1
tinyint1字节Byte
smallint2字节Short
int4字节Integer
bigint8字节Long
float(M, D)4字节单精度,M指定长度,D指定 小数位数。会发生精度丢失Float
double(M, D)8字节Double
decimal(M, D)M/D最大值+2双精度,M指定长度,D表示 小数点位数。精确数值BigDecimal
numeric(M, D)M/D最大值+2双精度,M指定长度,D表示 小数点位数。精确数值BigDecimal

 2.字符串类型:

数据类型大小说明对应Java类型
varchar(size)0-65,535字节可变长度字符串String
text0-65,535字节长文本数据String
mediumtext0-16 777 215字节中等长度文本数据String
blob0-65,535字节二进制形式的长文本数据byte[]

3.日期类型:

数据类型大小说明对应Java类型
DATETIME8字节范围从1000到9999年,不会进行时区的 检索及转换。java.util.Date、 java.sql.Timestamp
TIMESTAMP4字节范围从1970到2038年,自动检索当前时 区并进行转换。java.util.Date、 java.sql.Timestamp

关于表的操作:

1.创建表:

需要操作数据库中的表之前,首先要使用该数据库:

 

语法:
create table table_name (
 field1 datatype,
 field2 datatype,
 field3 datatype
 ...
);
//注意,一定是先写field(字段名字),再写datatype(类型名)

我们可以使用comment增加字段说明:

 

2.查看表结构:

语法:
desc table_name;

3.删除表:

语法:
drop table [if exists]table_name[,table_name1, ...//可以同时删除多个表结构];

 

表的增删查改:

1.新增:

语法:
insert [into] table_name [(column, column ...)] values(value_list)
                                                [, (value_list) ... ];

insert语句可以单行数据、多行数据,全列插入、指定列插入

我们先新建一张学生表:

单行数据 + 全列插入:

多行数据 + 指定列插入:

2.查询:

语法:
select
    [distinct] {* | {column [,column...] }
    from table_name
    [where ...]
    [order by column[asc | desc],...]
    [limit...];

 我们先来创建一个考试成绩表:

再插入数据:

1.进行全列查询:

 2.指定列查询:

 3.查询字段为表达式:

 4.别名:

语法:
select from column [as] alias_name [...] from table_name;

 将语数英成绩汇总进行查询:

 

 5.去重:distinct

使用distinct关键字

我们先插入一组id为1的数据:

 

查询一下:

 使用distinct:

 发现去重了~~

6.排序:

select ... from table_name [where ...] order by colimn [asc|desc], [...];

asc表示升序
desc表示降序
默认是升序

 注意:

1.没有order by的查询语句,返回的结果是无序的,大家不要依赖这个初始顺序,因为是有可能变化的。

2.null数据排序,被视为比任何值都要小,升序出现在最上面,降序出现在最下面。

使用表达式 + 别名、升序进行排序

 

 可以使用多个字段进行排序,排序顺序优先级随书写顺序:

 

7.条件查询

比较运算符:

运算符说明
>, >=, <, <=大于,大于等于,小于,小于等于
=等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL
<=>等于,NULL 安全,例如 NULL NULL 的结果是 TRUE(1)
!=, <>不等于
between a0 and a1范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1)
in (option, ...)如果是 option 中的任意一个,返回 TRUE(1)
is null是 NULL
in not null不是 NULL
like模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字 符

运算符:

运算符说明
and多个条件必须都为 TRUE(1),结果才是 TRUE(1)
or任意一个条件为 TRUE(1), 结果为 TRUE(1)
not条件为 TRUE(1),结果为 FALSE(0)

基本查询:

1.查询英语成绩不及格的同学的英语成绩:

2.查询语文成绩好友英语成绩的同学:

3.查询总分在200一下的同学

 注意:where语句里不能使用前面定义的别名:

原因是where语句比前面的定义别名语句先执行。

 

and、or:

1.查询语文成绩大于80分,且英语成绩大于80分的同学

2.查询语文成绩大于80分,或英语成绩大于80分的同学

3.观察AND 和 OR 的优先级:

访问查询:

1.查询语文成绩在[80. 90]分的同学及语文成绩

 

2.使用and也可以实现

 

3.查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩

4.使用 or 也可以实现

 注意这里是 = 号,而不是 == 

模糊查询:like

1.%匹配任意多个(包括0)个字符

 

2._匹配严格的一个任意字符

 

null的查询:is [not] null

1.查询 qq_mail 已知的同学姓名

2.查询 qq_mail 未知的同学姓名

 

分页查询:

1.从0开始,筛选n条结果
select ... from table_name [where ... ] [order by ... ] limit n;
2.从s开始,筛选n条结果
select ... from table_name [where ... ] [order by ... ] limit s, n;
3.从s开始,筛选n条结果,比第二种更清楚,推荐使用
select ... from table_name [where ... ] [order by ... ] limit n offest s;

第一页:

第二页:

第二页:如果不足n条,不会受影响

3.更新

update table_name set column = expr [, column = expr ...]
    [where ...] [order by ...] [limit ...];

 1.将孙悟空同学的数学成绩变更为 80 分

2.将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分

3.将总成绩倒数前三的 3 位同学的数学成绩加上 10 分

4.将所有同学的语文成绩加10分

 

4.删除

语法:delete from table_name [where ...] [order by ...] [limit ...];

1.删除孙悟空同学的考试成绩

 

2.删除整表数据

 

可以看出表亦然存在,但是表里的数据全部被删除。

删除操作也要谨慎操作!!

本篇完~~ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值