MySQL--表的创建以及数据类型

目录

1:表的数据类型

2:如何创建一个表

3:删除表

4:往表中插入数据

 5:MySQL中的日期

(1)insert插入日期

这里我们创建了一个叫us的表

 (2)日期格式化

(3)datetime长日期

 6:update修改

7:删除数据

8:insert插入多条记录

9:快速复制表


1:表的数据类型

char    学过编程语言的同学都知道,char是一种字符型数据类型,
         但这里的数据类型是字符串类型,是定长的,给多少空间
         就用多少空间

varchar   与char一样,是一种字符型数据类型,只不过它是动态分配
          空间的,不像char是一样,你给了它多少空间,他会用,会造成
          空间资源浪费,但varchar不会,只不过效率有点慢。

int       整型数据类型

bigint    长整型数据类型

float     单精度数据类型

double    双精度数据类型

data      短日期数据类型(年月日)

datetime   长日期数据类型(年月日时分秒)

clob      字符大对象,最多可以存储4G的字符串,举个例子,一篇很长的文章,超过255个字符的
           都可以用clob类型存储

blob      二进制大对象,一般使用来存储一些图片,声音,视频等等。

2:如何创建一个表

固定格式:

create tale stu(表的名字,自己取)
(
  name varchar(10),
  score int,
  sex   char(3)
  ....
);

在圆括号里的都写上数据类型以及自己所取的字段名字。
注意其中的逗号以及分号的位置

3:删除表

drop语句用来删除一个表,删除了就是彻底将这个表给删除了,不仅仅是
删除数据了

固定格式:
 drop  table   stu;(表的名字)

但是这种删除语句如果这个表不存在的话就会报错,所以一般不用
这个语句,我们一般用下面的语句

drop table  if exists stu(表的名字);

这个表的意思就是如果这个叫stu的表存在的话就将它删除,不存在就不做任何改变,
也就是不会报错。

4:往表中插入数据

往表中插入数据,使用到了insert语句

固定格式:
insert  into  +表格名(字段1,字段2,....)  values(对应字段1的值,对应字段2的值......)

注意这样子一定要一一对应


还有一种写法不需要列出字段,但是这种写法默认就是将所有的字段都给列出了,所以
在values中就必须要列出全部字段所对应的值。
 

 这里我创建了一个叫stu的表并且向其中插入了一些数据作为例子。

MySQL--表的创建以及数据类型_第1张图片

 5:MySQL中的日期

str_to_date:将字符串varchar类型转换成date类型

date_format:将date类型转换成v一定格式的varchar字符串类型

(1)insert插入日期

MySQL的日期格式:
%Y   年
%m   月
%d   日
%h   时
%i   分
%s   秒

这里我们创建了一个叫us的表

create table us(
 birth date,
 name char(10)
);

(1)第一种插入日期
  insert into us values(str_to_date('01-02-2022','%d-%m-%Y'),'zhangsan');
使用str_to_data将字符串类型转换成日期类型


(2)第二种插入类型
不适用str_to_data,直接插入

insert into us values('2021-09-02','lisan');

MySQL--表的创建以及数据类型_第2张图片

 (2)日期格式化

日期格式化

date_format  将日期类型转换成字符串型


select查询中都是将数据转换成字符串型呈现出来
如上面说的birth字段是个date类型,那么查询应该是:
    select date_format(birth,'%Y/%m%d') from us;


当然了,不适用date_format也是可以的,那么使用的是mysql默认的类型

(3)datetime长日期

datetime长日期  显示的是年月日时分秒


这里举个例子,删除了us表,重新创建个us表(要修改结构嘛,而且不是还没有说到修改表的结构语句吗)

drop table us;
create table us(
 creat_time datetime,
 name char(10)
);

插入数据的格式是
insert into us values('2022-09-26 15:40:21','lisan');

在这里还有一个函数now()可以获取当前的时间
如:
  insert into us values(now(),'zhangsan');

MySQL--表的创建以及数据类型_第3张图片

 6:update修改

update  表名   set   字段1=....,字段2=....,.....   where   条件

注意没有where条件限制的话,数据可能都会更新

如:将之前的us表中的name=lisan的改成name=666吧

update us set name='666' where creat_time='2022-09-26 15:40:21';

MySQL--表的创建以及数据类型_第4张图片

 7:删除数据

delete 删除数据,注意是删除数据,不是删除表格,表格的
结构还是存在的

格式:
 
delete from 表名 where 条件


但是delete效率很低,还支持回滚,后悔了数据还是可以回来的,同时这个数据在硬盘上的真实空间并不会被
释放



truncate语句    删除效率较高,不支持回滚

如:
truncate table us;

8:insert插入多条记录

这个知识点没什么好说的,注意记住它的格式就行啦
先删除us这张表,重新创建(主要修改表的结构)

drop table us;


create table us(
 name char(10),
 score int
);

insert into us values('lisi',90),
('kjkj',78),
('shdu',67),
('njnj',90);

MySQL--表的创建以及数据类型_第5张图片

9:快速复制表

固定格式吧,这个快速复制表(我个人认为的)

如复制这个us表并取名叫su

create table su as select *from us;


其实仔细一看这个不就是将查询结果给插入一张表,从而成为了一个新的表了吗

如创建这个表的一部分

create table io as select name from us;

 MySQL--表的创建以及数据类型_第6张图片

 MySQL--表的创建以及数据类型_第7张图片

 

OK,本文到此结束如有错误,还请大佬指正!!!!

你可能感兴趣的:(MySQL,sql,数据库)