mysql数据库

查看已有的数据库

命令:show databases;

创建数据库:

create database 数据库名称

如果要给创建的数据库进行编码处理:比如使用utf8mb4字符集

create database xiaozhu DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

当我们使用utf-8编码:

 create database 数据库名称 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

删除数据库:

drop database 数据库名称;

进入数据库:

use 数据库名称;

查看数据库下所有的数据表;

show table;

数据表的管理:

创建数据表的步骤:

1——先创建数据库:

create database xiaozhu DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

2—— 进入数据库:

use xiozhu;

3——查看当前数据库下所有的表:

show tables;

4——创建表:

create table 表名称(

        列表名 类型,

        列表名 类型,

        列表名 类型

)default charset=utf8mb4;

create table 表名称(

        列表名 类型,

        列表名 类型,not null (不允许为空)

        列表名 类型 null,允许为空(默认)

)default charset=utf8mb4;

create table 表名称(

        列表名 类型,

        列表名 类型,

        age int  default 3 (插入数据时,age的列的值默认为3

)default charset=utf8mb4;

create table 表名称(

        id int primary key,     --主键(不允许为空,不允许重复)

        列表名 类型,

        列表名 类型

)default charset=utf8mb4;

       

主键一般用于表示当前行的数据的编码(类似于人的身份证)。就是不可以重复,不可以为空

create table 表名称(

        id int auot_increment primary key,     --主键(不允许为空,不允许重复)

        列表名 类型,

        列表名 类型

)default charset=utf8mb4;

auto_increment   ----内部维护,自增:就是会自己自动增长值。如果一开始我:id=1。那么后面 id=2,id=3,id=4 等等,会自动增加,我们不用去编写id了

一般我们在创建表的时候,(标准)

create table 表名称(

        id int not null auto_increment primary key,     --主键(不允许为空,不允许重复)

        列表名 类型,

        列表名 类型

)default charset=utf8mb4;

关于删除表:

drop table 表的名称;

关于查看表的相关信息:

desc xiaozhu;

MySQL中数据类型:

都是表示整数的 

  1. tinyint  一个字节
有符号。取值范围是:-128~~~~127(有正有负)(默认)
无符号。取值范围是:0~~~~255(只有正)

 案例:有符号的

mysql> create table tb2(
    -> id int not null auto_increment primary key,
    -> age tinyint   --有符号:取值范围是-128~~~127
    -> )default charset=utf8mb4;

案例:无符号的:

mysql> create table tb3(
    -> id int not null auto_increment primary key,
    -> age tinyint unsigned  
    -> )default charset=utf8mb4; 

2:int    4个字节;

案例: 

创建一个表格2:

插入数据:

insert into tb2(salary,age) values(15000,25)

同时插入多行数据:

insert into tb2(salary,age) values(30000,30),(40000,35)

查看表中数据:

select * from tb2

数据类型;小数

float

  • float 用于存储单精度浮点数。
  • 它通常占用4个字节。
  • 精度约为7位十进制数。
  • 不太适合进行精确的金融计算,因字的最大位数(精度),D 是小数点后的位数(标度)。如果省略 M 和 D,则会使用默认值。为它可能会有舍入误差。
  • 语法:float(M, D),其中 M 是数

double

  • double 用于存储双精度浮点数。
  • 它通常占用8个字节。
  • 精度比 float 高,约为15位十进制数。
  • 同样,由于浮点数的表示方式,它也可能不适用于需要高精度的场合。
  • 语法:duoble(M, D),其中 M 和 D 的含义与 float相同。

decimal

  • decimal  用于存储精确的数值,如货币数据。
  • 它以字符串的形式存储值,因此可以避免浮点数的舍入误差。
  • decimal 的精度和小数点后的位数是用户定义的。
  • 语法:decimal(M, D) 其中 M 是数字的最大位数(精度,默认值为10),D 是小数点后的位数(标度,默认值为0)

案例:

mysql> create table xiaozhu(
    -> id int not null primary key auto_increment,
    -> salary decimal(8,2)
    -> )default charset=utf8mb4;

8 表示总位数(包括小数点两边的数字),2 表示小数点后的位数。所以,这个列可以存储的最大数值是 999999.99

在上述代码中,超过两位小数点后面两位数,会自动四舍五入

如上图所示,我们可以看到当数值的长度超过8位数的·时候。就是出现报错 

 字符串类型:

char  :定长字符串

mysql> create table xiaozhu(
    -> id int not null primary key auto_increment,
    -> salary decimal(8,3),
    -> name char(11)
    -> )default charset=utf8mb4;

  1. char:
    • 定长字符串char用于存储固定长度的字符串。无论实际存储的字符串有多长,char字段都会使用相同的空间。如果存储的字符串长度小于定义的长度,MySQL会在其后填充空格以达到定义的长度。
    • 用途:适用于存储长度固定的数据,如某些代码、电话号码格式化的数据等。
    • 限制:长度范围为0到255个字符。
    • 在上述代码中我们定义了其长度是11空间。尽管我们只是使用了8个空间,但是char依旧占存空间是11

varchar

  1. varchar:
    • 可变长字符串varchar用于存储可变长度的字符串。它只使用必要的空间来存储实际字符串的长度,并加上一个或两个额外的字节来记录字符串的长度。
    • 用途:适用于存储长度不固定的数据,如姓名、地址等。
    • 限制:最大长度取决于最大行大小(max_allowed_packet)和其他因素,但通常可以达到65,535字节。

text

  1. text:
    • 小文本数据text用于存储较长的文本数据。
    • 用途:适用于存储文章、评论、描述等较短的文本内容。
    • 限制:最大长度为65,535字节(即64KB)。

mediumtext

longtext

  1. mediumtext:
    • 中等长度文本数据mediumtext用于存储中等长度的文本数据。
    • 用途:适用于存储比text字段更长的文本内容。
    • 限制:最大长度为16,777,215字节(即16MB)。
  2. longtext:
    • 大文本数据longtext用于存储非常大的文本数据。
    • 用途:适用于存储如日志文件、大型文档或长篇文章等大量文本内容。
    • 限制:最大长度为4,294,967,295字节(即4GB)。

在选择这些数据类型时,应该考虑数据的实际长度和预期增长,以及存储和检索性能。对于短小的、固定长度的数据,char可能是一个好选择。对于长度可变的数据,varchar更为合适。而对于大量的文本数据,应该选择textmediumtextlongtext,具体取决于数据的预期大小。

时间类:

datetime

date

datetime

datetime 类型通常用于存储日期和时间信息,包括年、月、日、时、分、秒(以及可能的小数秒)。这种类型非常适合于需要精确到秒或毫秒级别的时间戳的场合,比如记录事件发生的具体时间。

在数据库系统中,datetime 字段通常使用固定数量的字节来存储,这样可以确保查询性能的一致性。不同的数据库系统对 datetime 的具体实现和精度可能会有所不同。

date

date 类型则只用于存储日期信息,包括年、月、日。它不包含时间信息(如时、分、秒)。因此,如果你只需要知道某件事情发生在哪一天,而不需要知道具体的时间,那么使用 date 类型会更合适。

案例用户表:

mysql> create table xiaozhu(
    -> id int not null primary key auto_increment,
    -> name varchar(34) not null,
    -> password char(34) not null,
    -> email varchar(34) not null,
    -> age tinyint unsigned,
    -> salary decimal(10,2)
    -> )default charset=utf8mb4;
Query OK, 0 rows affected (0.08 sec)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值