文章目录

  • 一、表的创建
  • 1、MySQL常用数据类型
  • 2、创建一张学生信息表
  • 二、向表中插入数据
  • ①字段名和值名全写
  • ②省略字段名只写值
  • ③一次插入多条数据
  • 三、复制表(按照查询结果创建新表)
  • 四、将查询结果插入一张表中
  • 五、修改表中的数据
  • 六、删除表中的数据
  • 七、删除一整张表
  • ①、使用delete删除
  • ②、使用truncate 删除
  • ③、使用drop删除


一、表的创建

语法

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

1、MySQL常用数据类型

数据类型

占用字节数

说明

int

4字节

整型

bigint

8字节

长整型,类似long

float、double

浮点数

char

char(n)

定长字符串

varchar

varchar(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
);

mysql 不存在就新建表 mysql不创建表空间吗_表名

二、向表中插入数据

①字段名和值名全写

语法

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)

插入成功后表中的数据为

mysql 不存在就新建表 mysql不创建表空间吗_表名_02

②省略字段名只写值

语法:

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');

mysql 不存在就新建表 mysql不创建表空间吗_mysql 不存在就新建表_03

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

语法

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;

mysql 不存在就新建表 mysql不创建表空间吗_mysql 不存在就新建表_04

五、修改表中的数据

语法:

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';

mysql 不存在就新建表 mysql不创建表空间吗_数据_05

六、删除表中的数据

语法:

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

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

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

mysql 不存在就新建表 mysql不创建表空间吗_数据_06

七、删除一整张表

①、使用delete删除

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

②、使用truncate 删除

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

③、使用drop删除

drop table 表名
  • 删除表全部数据和表结构