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

DDL 数据操作语言

表的创建和数据类型

  1. 建表

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

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

  2. MySQL中的数据类型

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

    使用方法:类型(建议长度)
    【MySQL系列笔记】- 第五章 - 数据操作语言 DDL - 对表的增删改操作_第1张图片

  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语句

你可能感兴趣的:(MySQL系列笔记,mysql,数据库,java)