DDL&DML

DDL(create,drop,alter)

DDL,Data Definition Language 数据定义语言,用来定义数据库对象(数据库,表,字段)

1.建表

语法格式:

create table 表名(

​ 字段名1 数据类型,

​ 字段名2 数据类型,

​ 字段名3 数据类型

);

2.数据类型

  • varchar(最长255)
    • 可变长度的字符串,比较智能,节省空间
    • 会根据实际的数据长度动态分配空间
    • 优点:节省空间
    • 缺点:需要动态分配空间,速度慢
    • 姓名可以选varchar
  • char(最长255)
    • 定长字符串
    • 不管实际的数据长度是多少,分配固定长度的空间去存储数据
    • 使用不恰当的时候,可能会导致空间的浪费
    • 优点:不需要动态分配空间,速度快
    • 缺点:使用不当可能会导致空间的浪费
    • 性别可以选char
  • 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流才行

3.删除表

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

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

4.快速复制表

create table emp2 as select * from emp;

原理:将一个查询结果当做一张表新建

DML(insert,update,delete)

DML,Data Manipulation Language,数据操作语言,用来对数据库表中的数据进行增删改

1.插入数据insert

语法格式:

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

注意:字段名和值要一一对应。(数量要对应,数据类型要对应)

2.插入日期

  • 格式化数字:format(数字,‘格式’)
select ename,format(sal,'$999,999') as sal from emp;
  • str_to_date: 将字符串varchar类型转换成date类型

    语法格式:

    ​ str_to_date(‘字符串日期’,‘日期格式’)

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

注意:如果提供的日期字符串是这个格式,str_to_date函数就不需要了。

%Y-%m-%d

insert into t_user(id,name,birth) values(1,‘zhangsan’,‘1990-10-01’);

  • date_format: 将date类型转换成具有一定格式的varchar字符串类型,通常用在查询日期方面,设置展示的日期格式
select id,name,date_format(birth,'%Y/%m/%d') as birth from t_user;

注意:默认的日期格式化,‘%Y-%m-%d’

  • mysql的日期格式:

    • %Y 年
    • %m 月
    • %d 日
    • %h 时
    • %i 分
    • %s 秒
  • java中的日期格式

    • yyyy-MM-dd HH:mm:ss SSS

3.date和datetime两个类别的区别?

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

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

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

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

在mysql中怎么获取系统当前时间

now( ) 函数,并且获取的时间带有:时分秒信息,是datetime类型的

4.修改update

语法格式:

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

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

5.删除数据delete

语法格式:

​ delete from 表名 where 条件

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

delete语句删除数据的原理?

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

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

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

truncate语句删除数据的原理?(DDL操作,用于删除大表,删除后不可恢复)

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

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

​ 这种删除优点:快速

truncate table dept_bak;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值