数据库表的创建插改删

7、表的创建(建表)

7.1.1、建表的语法格式:(建表属于DDL语句,DDL包括:create drop alter)

create table 表名(字段名1 数据类型, 字段名2 数据类型, 字段名3 数据类型);

create table 表名(

字段名1 数据类型,

字段名2 数据类型,

字段名3 数据类型

);

表名:建议以t_ 或者 tbl_开始,可读性强。见名知意。

字段名:见名知意。

表名和字段名都属于标识符。

7.1.2、快速创建表?【了解内容】

mysql> create table emp2 as select * from emp;

原理:

将一个查询结果当做一张表新建!!!!!

这个可以完成表的快速复制!!!!

表创建出来,同时表中的数据也存在了!!!

7.2、关于mysql中的数据类型?

varchar(最长255)

可变长度的字符串

比较智能,节省空间。

会根据实际的数据长度动态分配空间。

优点:节省空间

缺点:需要动态分配空间,速度慢。

char(最长255)

定长字符串

不管实际的数据长度是多少。

分配固定长度的空间去存储数据。

使用不恰当的时候,可能会导致空间的浪费。

优点:不需要动态分配空间,速度快。

缺点:使用不当可能会导致空间的浪费。

varchar和char我们应该怎么选择?

性别字段你选什么?因为性别是固定长度的字符串,所以选择char。

姓名字段你选什么?每一个人的名字长度不同,所以选择varchar。

int(最长11)

数字中的整数型。等同于java的int。

bigint

数字中的长整型。等同于java中的long。

float        

单精度浮点型数据

double

双精度浮点型数据

date

短日期类型

datetime

长日期类型

clob

字符大对象

最多可以存储4G的字符串。

比如:存储一篇文章,存储一个说明。

超过255个字符的都要采用CLOB字符大对象来存储。

Character Large OBject:CLOB

blob

二进制大对象

Binary Large OBject

专门用来存储图片、声音、视频等流媒体数据。

往BLOB类型的字段上插入数据的时候,例如插入一个图片、视频等,需要使用IO流才行。

7.3删除表:

drop table t_student; // 当这张表不存在的时候会报错!

drop table if exists t_student;// 如果这张表存在的话,删除

7.4.1、插入数据insert (DML)

语法格式:

insert into 表名(字段名1,字段名2,字段名3...) values(值1,值2,值3);

注意:

  • 字段名和值要一一对应。什么是一一对应?数量要对应。数据类型要对应。
  • insert语句但凡是执行成功了,那么必然会多一条记录。没有给其它字段指定值的话,默认值是NULL。
  • insert语句中的“字段名”可以省略
  • 一次可以插入多条记录:insert into t_user(字段名1,字段名2) values(),(),(),();

7.4.2、将查询结果插入到一张表当中?insert相关的!!!【了解内容】

create table dept_bak as select * from dept;

insert into dept_bak select * from dept; //很少用!

7.5、insert插入日期

注意:数据库中的有一条命名规范:

所有的标识符都是全部小写,单词和单词之间使用下划线进行衔接。

数字格式化:format

工资千分位:select ename,format(sal,'$9999,999') from emp;

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

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

str_to_date函数可以将字符串转换成日期类型date?

语法格式:

str_to_date('字符串日期', '日期格式')

mysql的日期格式:

%Y

%m

%d

%h

%i

%s

insert into t_user(id,name,birth) values(1, 'zhangsan', str_to_date('01-10-1990','%d-%m-%Y'));

str_to_date函数可以把字符串varchar转换成日期date类型数据,

通常使用在插入insert方面,因为插入的时候需要一个日期类型的数据,需要通过该函数将字符串转换成date。

如果你提供的日期字符串是这个%Y-%m-%d格式,str_to_date函数就不需要了!!!

insert into t_user(id,name,birth) values(2, 'lisi', '1990-10-01');

date_format:这个函数可以将日期类型转换成特定格式的字符串。

select id,name,date_format(birth, '%m/%d/%Y') as birth from t_user;

date_format(日期类型数据, '日期格式')

这个函数通常使用在查询日期方面。设置展示的日期格式。

java中的日期格式:yyyy-MM-dd HH:mm:ss SSS

7.6、date和datetime两个类型的区别?

date是短日期:只包括年月日信息。

datetime是长日期:包括年月日时分秒信息。

mysql短日期默认格式:%Y-%m-%d

mysql长日期默认格式:%Y-%m-%d %h:%i:%s

在mysql当中获取系统当前时间:now() 函数,并且获取的时间带有:时分秒信息,是datetime类型的。

7.7、修改update(DML)

语法格式:

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

注意:没有条件限制会导致所有数据全部更新。

7.8、删除数据 delete (DML)【truncate比较重要,必须掌握】

语法格式?

  • delete from 表名 where 条件;

注意:没有条件,整张表的数据会全部删除!

//删除dept_bak表中的数据

delete from dept_bak; //这种删除数据的方式比较慢。

mysql> select * from dept_bak;

Empty set (0.00 sec)

delete语句删除数据的原理?(delete属于DML语句!!!)

表中的数据被删除了,但是这个数据在硬盘上的真实存储空间不会被释放!!!

这种删除缺点是:删除效率比较低。

这种删除优点是:支持回滚,后悔了可以再恢复数据!!!

truncate语句删除数据的原理?

这种删除效率比较高,表被一次截断,物理删除。

这种删除缺点:不支持回滚。

这种删除优点:快速。

  • 用法:truncate table dept_bak; (这种操作属于DDL操作。)

大表非常大,上亿条记录????

删除的时候,使用delete,也许需要执行1个小时才能删除完!效率较低。

可以选择使用truncate删除表中的数据。只需要不到1秒钟的时间就删除结束。效率较高。

但是使用truncate之前,必须仔细询问客户是否真的要删除,并警告删除之后不可恢复!

truncate是删除表中的数据,表还在!

删除表操作?

drop table 表名; // 这不是删除表中的数据,这是把表删除。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值