MySQL笔记8——表的创建/增删改

一、表的创建

语法

creat table 表名
{
	字段名1	数据类型,
	字段名2	数据类型,
	………………
};

1、MySQL常用数据类型

数据类型占用字节数说明
int4字节整型
bigint8字节长整型,类似long
float、double浮点数
charchar(n)定长字符串
varcharvarchar(n)变长字符串
date日期类型,时间和日期
blob二进制大对象(存储图片、视频等流媒体信息),类似类对象
clob分为四种TINYTEXT , TEXT , MEDIUMTEXT , LONGTEXT字符大对象,比如:可以存储4GB的字符串,类似类对象

char和varchar的却别?

  • 都是字符串
  • char不需要动态分配空间,执行效率高,但是可能会造成空间的浪费
  • varchar比较智能,会根据数据的长度分配空间,但是效率比较低
  • 若字段中的数据不具备伸缩性,建议采用char类型存;若字段中的数据具备伸缩性,则建议使用varchar

例如:某张表的name字段类型如果是char(6),则它会分配6个字节的空间用来存储,此时存储一个名字为’jack’,只占4个字节,那么char(6)就会浪费2个字节的空间,如果名字超过了6个字节则会报错;
如果name字段时varchar(6),则它会根据你存储数据的大小动态分配空间,若此时你存储’jack’,只需4个字节,那么它就会分配4个字节的空间,而不是6个,不会造成空间的浪费!

2、创建一张学生信息表

表名一般建议以t_或者tbl_开始,方便辨认

create table t_info(
Name varchar(10),		#创建名字字段,数据类型为可变字符型最大10字节
Sex char(1),			#创建性别字段
Id bigint,				#创建学号字段
Email varchar(20),
Birthdar date
);

在这里插入图片描述

二、向表中插入数据

①字段名和值名全写

语法

insert into 表名(字段名1,字段名2,……) 
values(1,值2,……);
  • 字段的数量和值的数量应该相同,并且数据类型一致
  • 字段顺序可以更改,值中的顺序应该和字段中的顺序一致
  • 插入时只插入部分字段也可以,别的字段为默认值(defaule),这里为null(查看表的结构可以看出该字段的默认值)

示例:向表中插入数据

 insert into t_info(Name,Sex,Id,Email,Birthdar) values('zhangsan','1',20200101,'12@qq.com','1995-05-06');
 insert into t_info(Name,Sex,Id,Birthdar) values('niuniu','0','20200102','1995-06-01');
 #第二个插入语句没有对email字段赋值,因此为默认值(这里为null)

插入成功后表中的数据为
在这里插入图片描述

②省略字段名只写值

语法:

insert into 表名 values(1,值2,……);
  • 字段可以省略不写,只写值。但是值的顺序必须和表的字段名顺序一致,且值中不可缺省,写全了

③一次插入多条数据

insert into 表名 values
(1,值2,……)(1,值2,……)(1,值2,……),
…………;

示例:
一次插入三条数据

insert into t_info values
('lisi',0,'20200104','123@qq.com','1996-01-01');
('zhaosi',1,'20200103','233@qq.com','1996-07-12'),
('laotie',0,'20200105','123@qq.com','1995-07-01');

在这里插入图片描述

三、复制表(按照查询结果创建新表)

语法

create table 新表 as select 语句;
示例:
①、复制emp表为emp2表,会多出一张emp2表和emp表一毛一样
create table emp2 as select * from emp;
②、将emp表的ename字段和job字段,组成一张新表叫emp3
create table emp3 as select ename,job from emp;

四、将查询结果插入一张表中

insert into 被插入的表名 select 语句; #表结构要一致
示例:
# 拷贝dept表,生成新表dept1
create table dept1 as select * from dept;
# 将dept表的查询结果插入到dept1中
insert into dept1 select * from dept;

在这里插入图片描述

五、修改表中的数据

语法:

update 表名 set 字段名1=1,字段名n=值n where 条件;
没有条件限制的整张表的字段会被更新

示例:在t_info表中将姓名为niuniu的人的email改为niuniu@foxmail.com,生日改为2020-12-20.

update t_info set email='niuniu@foxmail.com',Birthdar='2020-12-20' where name='niuniu';

在这里插入图片描述

六、删除表中的数据

语法:

delete from 表名 where 条件
没有条件则删除表中的所有数据

示例:删除工作岗位为clerk的员工信息

删除工作岗位为clerk的员工信息
delete from emp2 where job='clerk';
删除所有记录
delete from emp2;

在这里插入图片描述

七、删除一整张表

①、使用delete删除

delete from 表名
  • 删除表全部数据,表结构不变,效率较低

②、使用truncate 删除

truncate table 表名;
  • 删除表全部数据,保留表结构,效率高

③、使用drop删除

drop table 表名
  • 删除表全部数据和表结构
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值