【MySQL系列笔记】- 第五章 - 数据操作语言 DDL - 对表的增删改操作

文章介绍了MySQL中的DDL语句,用于创建和管理数据库表。内容包括创建表的语法,如数据类型的选用(如varchar、char、int、float、date等),插入数据的方法,更新和删除记录的语句,以及快速创建和删除表的技巧。还特别讨论了insert、update、delete和truncate的区别及其使用场景。

DDL 数据操作语言

表的创建和数据类型

  1. 建表

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

    表名建议以t_开始或以tbl_开始

  2. MySQL中的数据类型

    数据类型描述
    varchar可变字符串,最长255,能够动态分配空间
    char定长字符串(速度更快,可能造成空间浪费)
    int整型,最长11
    big int长整型
    float单精度浮点型
    double双精度浮点型
    date短日期
    datetime长日期
    clobCharacter Large Object,字符大对象,超过255,最多存储4G的字符串
    blobBinary Large Object,专门用来存储图片、声音、视频等流媒体数据,需要使用IO流

    使用方法:类型(建议长度)
    在这里插入图片描述

  3. 创建一个学生表

    create table t_student(
    	number int(3),
      name varchar(255),
      sex char(1) default 'm', // 指定默认值
      age int(3),
      email varchar(255)
    );
    

    删除表

    drop table t_student; // 当这张表不存在的时候会报错
    drop table t_student if exists t_student; // 存在时删除 
    

insert更新语句

使用insert插入新值

  1. 语法

    insert into 表名(字段名1,字段名2,...) values(1,2,...)
    # or
    insert into 表名 values(1,2,...) // 需要填写完整
    

    如果没有填写具体值,则字段对应值为null

  2. 格式化数字:format(数字, 格式)

  3. 日期转换(通常使用在 insert 语句中):

    str_to_date 将字符串varchar类型转换成data类型

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

    注意:数据库中所有标识符全部小写,单词之间使用下划线进行连接

    create table t_user(
    	id int,
    	name varchar(32),
    	birth date // 生日也可以使用date日期类型
    );
    

    错误:insert into t_user(id,name,birth) values(1, ‘zhangsan’, ‘01-10-1990’); // 1990年10月1日,注意yy-mm-dd顺序

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

    %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')); // 1990年10月1日
    # 可以不需要函数
    insert into t_user(id,name,birth) values(1, 'zhangsan', str_to_date('1990-10-01')); // 1990年10月1日
    

    日期类型转换成字符串 date_format(日期类型数据, '日期格式')

    select id,name,date_format(birth, '%m/%d/%Y') as birth from t_user;
    
    +------+----------+------------+
    | id   | name     | birth      |
    +------+----------+------------+
    |    1 | zhangsan | 10/01/1990 |
    |    2 | lisi     | 10/01/1990 |
    +------+----------+------------+
    

    数据类型区别

    1. date 是短日期,包括年月日信息 %Y-%m-%d

      eg:‘1990-10-01’

    2. datetime 是长信息,包括年月日时分秒信息 %Y-%m-%d %h:%i:%s

      eg:‘2020-03-18 15:49:50’

    常用:MySQL中获得当前时间,格式为datetime,使用now()插入

    insert into t_user(id,name,birth,create_time) values(2,'lisi','1991-10-01',now());
    
  4. insert 插入多条记录

    语法:insert into t_user(字段名1,字段名2) values(),(),(),();

    insert into t_user(id,name,birth,create_time) values
    		(1,'zs','1980-10-11',now()), 
    		(2,'lisi','1981-10-11',now()),
    		(3,'wangwu','1982-10-11',now());
    

update修改语句

语法

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

不加 where 将会更新所有数据(每一行的对应字段)

delete删除语句

语法

delete from 表名 where 条件;

不加 where 将会删除该表的所有数据

快速创建表

将一个查询结果当做一张表新建,完成表的快速复制

create table emp2 as select * from emp;

快速删除表中的数据

# 这种删除方式较慢
delete from dept_bak; // 删除dept_bak这张表

delete 语句删除(属于DML语句)

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

缺点:效率较低;优点:可以回滚 rollback

truncate table dept_bak;

truncate 语句删除(属于DDL语句)
缺点:无法回滚;优点:效率高,快速;

对表结构的修改

比较少用,一般而言开发过程中不会轻易修改表的结构
使用alter,属于DDL语句

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值