MySQL数据库的基础操作

一、数据库操作

1.1、增加

语法:create database 数据库名;

创建数据库时可以指定该数据库采用的字符集,如果不指定,则默认采用拉丁文,不能表示汉字:
语法:create database 数据库名 character set 字符集名;
示例:create database SSA character set utf8;

1.2、删除

语法:drop database 数据库名;
谨慎操作:轻易不要操作
示例:drop database SSA
删除和使用关键字命名的数据库时,库名需要加上''

1.3、使用

语法:use 数据库名;
示例:use SSA;

1.4、查找

语法:show databases;(展示所有库:注意此处的database是复数形式)

二、常用数据类型

2.1、数值类型

在这里插入图片描述
MySQL 支持所有标准 SQL 数值数据类型。

这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL 和 NUMERIC),以及近似数值数据类型(FLOAT、REAL 和 DOUBLE PRECISION)。

关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。

BIT数据类型保存位字段值,并且支持 MyISAM、MEMORY、InnoDB 和 BDB表。

作为 SQL 标准的扩展,MySQL 也支持整数类型 TINYINT、MEDIUMINT 和 BIGINT。下面的表显示了需要的每个整数类型的存储和范围。

2.2、字符串类型

在这里插入图片描述
注意:char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。

CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。

BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。

有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。

2.3、日期类型

在这里插入图片描述
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。

每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。

TIMESTAMP类型有专有的自动更新特性,将在后面描述。

三、表的操作

对数据库中的表进行操作前,需要先使用该数据库:use 数据库名;

3.1、增加

语法:create table 表名 (
字段1 字段1类型 comment 字段1注释,
字段2 字段2类型 comment 字段2注释,
字段3 字段3类型 comment 字段3注释 )
例子
create table SSA280 (
id int comment 编号,
name varchar(50) comment 姓名,
age int comment 年龄 )

超级常用啊:数据类型常用 int(整数值一般用于编号、年龄等都适用)、char(固定数值长度,指定长度,比如身份证号是固定的长度18位)、varchar(不固定长度,但限制长度内,比如姓名一般在10个字以内)
作业
在这里插入图片描述
create table info(
id int,
number varchar(10),
name varchar(10),
gender char(1),
age tinyint unsigned,
idcard char(18),
time data,
)

3.2、删除

drop table 表名;

3.3、显示

显示当前数据库中所有的表
语法:show tables;

3.4、查看(表结构)

语法:desc 表名;
在这里插入图片描述

四、表数据的操作(基础)

4.1、增加
(1) 单行数据全列插入

语法:insert into 表名 values (数据,数据…);
insert into alarm_info values (攻击,高危…);
注意:插入数据时,数据的类型以及数量要和表中定义的类型和数量一致。

(2) 单行数据指定列插入

语法:insert into 表名(字段名,字段名…) values (数据,数据);
insert into alarm_info (攻击名称,危险等级) values (攻击,高危…);
注意:插入数据时,数据的类型以及数量要和表中定义的类型和数量一致。

(3) 多行数据全列插入

语法:insert into 表名 values (数据,数据…),(数据,数据…),…,(数据,数据…);

4.2、查询
(1) 全列查询

语法:select * from 表名;

(2) 指定列查询

语法:select 列名,列名 from 表名;
(列名即字段名)

(3) 查询字段为表达式

语法:select (列名和表达式的组合) from 表名;
注意:加上表达式的查询结果并不会改变表中实际存放的数据
在这里插入图片描述

(4) 别名

语法:select 列名 as 别名 from 表名;
在这里插入图片描述

(5) 去重

关键字:distinct
语法:select distinct 列名 from 表名;

(6) 排序

关键字:order by asc(升序)、desc(降序)

语法:select 列名 from 表名 order by 待排序的列名 asc/desc;
在这里插入图片描述

(7) 条件查询(常用)
超级常用!
1in(包含)2like(模糊查询)3>=(大于等于)、
4<=(小于等于) 、
5、between

在这里插入图片描述
在这里插入图片描述

(8) 分页查询

关键字:limit 指定查询结果数量

语法:select 列名 from 表名 limit n; (从第0行往后查询n行数据)

语法:select 列名 from 表名 limit n offset m; (从第m行往后查询n行数据)

(9)聚合查询

常见的统计总数、计算平局值等操作,可以使用聚合函数来实现,常见的聚合函数有
在这里插入图片描述
语法:select count(*) from 表名 查询表数据数量
语法:select count(列名) from 表名 查询某列的表数据数量(null不计数)
语法:select count(distinct 列名) from 表名 去重查询某列的表数据数量

(10)分组查询

order by
select * from 表名 order by 列名

(11)联合查询

待补充

(12)合并查询(常用)

在实际应用中,为了合并多个select的执行结果,可以使用集合操作符 union,union all。
语法:
select 列名1、列名2… from 表名1 where条件1 union select 列名3、列名4…from 表名2 where 条件2;

select 列名1、列名2… from 表名1 where条件1 union all select 列名3、列名4…from 表名2 where 条件2;

1、union的实际步骤是先执行前一句select 得出一个查询结果的临时表,然后执行后一句select得到一个查询结果的临时表,两个表进行上下拼接。
2、使用UNION 和UNION ALL时,前后查询的结果集中,字段(列)数量需要一致。
3、该操作符用于取得两个结果集的并集。(和or的使用时类似的,但or是对列操作,union是对行操作)当使用该操作符时,会自动去掉结果集中的重复行。
4、UNION查询时会去重,UNION ALL查询的时候不会去重。

4.3、修改

语法:update 表名 set 列名 = 表达式;

4.4、删除

关键字:delete
删除某行
语法:delete from 表名 where 条件;

删除表
语法:delete from 表名;

  • 29
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

江河没有风、

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

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

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

打赏作者

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

抵扣说明:

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

余额充值