char 学过编程语言的同学都知道,char是一种字符型数据类型,
但这里的数据类型是字符串类型,是定长的,给多少空间
就用多少空间
varchar 与char一样,是一种字符型数据类型,只不过它是动态分配
空间的,不像char是一样,你给了它多少空间,他会用,会造成
空间资源浪费,但varchar不会,只不过效率有点慢。
int 整型数据类型
bigint 长整型数据类型
float 单精度数据类型
double 双精度数据类型
data 短日期数据类型(年月日)
datetime 长日期数据类型(年月日时分秒)
clob 字符大对象,最多可以存储4G的字符串,举个例子,一篇很长的文章,超过255个字符的
都可以用clob类型存储
blob 二进制大对象,一般使用来存储一些图片,声音,视频等等。
固定格式:
create tale stu(表的名字,自己取)
(
name varchar(10),
score int,
sex char(3)
....
);
在圆括号里的都写上数据类型以及自己所取的字段名字。
注意其中的逗号以及分号的位置
drop语句用来删除一个表,删除了就是彻底将这个表给删除了,不仅仅是
删除数据了
固定格式:
drop table stu;(表的名字)
但是这种删除语句如果这个表不存在的话就会报错,所以一般不用
这个语句,我们一般用下面的语句
drop table if exists stu(表的名字);
这个表的意思就是如果这个叫stu的表存在的话就将它删除,不存在就不做任何改变,
也就是不会报错。
往表中插入数据,使用到了insert语句
固定格式:
insert into +表格名(字段1,字段2,....) values(对应字段1的值,对应字段2的值......)
注意这样子一定要一一对应
还有一种写法不需要列出字段,但是这种写法默认就是将所有的字段都给列出了,所以
在values中就必须要列出全部字段所对应的值。
这里我创建了一个叫stu的表并且向其中插入了一些数据作为例子。
str_to_date:将字符串varchar类型转换成date类型
date_format:将date类型转换成v一定格式的varchar字符串类型
MySQL的日期格式:
%Y 年
%m 月
%d 日
%h 时
%i 分
%s 秒
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');
日期格式化
date_format 将日期类型转换成字符串型
select查询中都是将数据转换成字符串型呈现出来
如上面说的birth字段是个date类型,那么查询应该是:
select date_format(birth,'%Y/%m%d') from us;
当然了,不适用date_format也是可以的,那么使用的是mysql默认的类型
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');
update 表名 set 字段1=....,字段2=....,..... where 条件
注意没有where条件限制的话,数据可能都会更新
update us set name='666' where creat_time='2022-09-26 15:40:21';
delete 删除数据,注意是删除数据,不是删除表格,表格的
结构还是存在的
格式:
delete from 表名 where 条件
但是delete效率很低,还支持回滚,后悔了数据还是可以回来的,同时这个数据在硬盘上的真实空间并不会被
释放
truncate语句 删除效率较高,不支持回滚
如:
truncate table us;
这个知识点没什么好说的,注意记住它的格式就行啦
先删除us这张表,重新创建(主要修改表的结构)
drop table us;
create table us(
name char(10),
score int
);
insert into us values('lisi',90),
('kjkj',78),
('shdu',67),
('njnj',90);
固定格式吧,这个快速复制表(我个人认为的)
如复制这个us表并取名叫su
create table su as select *from us;
其实仔细一看这个不就是将查询结果给插入一张表,从而成为了一个新的表了吗
如创建这个表的一部分
create table io as select name from us;
OK,本文到此结束如有错误,还请大佬指正!!!!