• MySql 数据库【表】


    1. 建表的语法

    建表属于 DDL 语句,DDL 语句包括:create、drop、alter…

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

    表名:建议以 t_ 或者 tbl_ 开始,可读性强。见名知意。
    字段名:见名知意。
    表名和字段名都属于标识符。

    2. mysql中的数据类型

    1. varchar
      最长 255
      可变长度的字符串。
      比较智能,节省空间。
      会根据实际的数据长度分配空间。

    2. char
      最长 255
      定长字符串
      不管实际的数据长度是多少。
      分配固定长度的空间去存储数据。
      使用不恰当的时候,可能会导致空间的浪费。

    varchar 动态的分配空间,速度慢
    char 固定的分配空间,速度快
    具体的选择根据实际情况来选择
    比如:姓名:varchar;性别:char

    1. int
      最长 11
      数字中的整数型。
      等同于 java 中的 int。

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

    3. float
      单精度浮点型数据。

    4. double
      双精度浮点型数据。

    5. date
      短日期类型。

    6. datetime
      长日期类型。

    7. clob
      字符大对象。
      最多可以存储 4G 的字符串。
      比如:存储一篇文章,存储一个说明。
      超过 255 个字符的都要采用 CLOB 字符大对象来存储。

    8. blob
      二进制大对象。
      专门用来存储图片、声音、视频等流媒体数据。
      往 BLOB 类型的字段上插入数据的时候,例如插入一个图片、视频等。
      你需要使用 IO 流才行。

    3. 模拟表

    t_movie 电影表(专门存储电影信息的)
    no(bigint):编号
    name(varchar):名字
    history(clob):故事情节
    playtime(date):上映日期
    time(double):时长
    image(blob):海报
    type(cahr):类型

    4. 创建一个学生表

    学号、姓名、年龄、性别、邮箱地址

    1. 创建表(create-DDL)

    mysql> create table t_student (no int, name varchar(32), sex char(1), age int(3), email varchar(255));
    
    • 1

    在这里插入图片描述
    在这里插入图片描述

    2. 插入数据(insert-DML)

    语法格式

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

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

    mysql> insert into t_student(no, name, sex, age, email) values(1, 'zhangsan', 'm', 20, 'zhangsan@123.com');
    
    • 1
    mysql> insert into t_student(no, name, sex, age, email) values(1, 'lisi', 'm', 20, 'lisi@123.com');
    
    • 1

    在这里插入图片描述

    mysql> insert into t_student(no) values(3);
    
    • 1

    没有给其他字段指定值的时候,默认值是 null
    在这里插入图片描述

    insert 语句中的字段名可以省略,省略的话默认是全部写上了,所以按照一一对应原则,values 中的值要全部写上。

    3. 插入日期

    format:数字格式化

    format(数字, '格式')
    
    • 1

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

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

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

    mysql> create table t_user(id int, name varchar(32), birth date);
    
    • 1

    在这里插入图片描述

    插入数据?

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

    str_to_date 将字符串类型的日期转换成 date 类型的日期
    在这里插入图片描述

    但是!!!如果提供的字符串日期格式%Y_%m-%d的话,就不需要str_to_date函数了,mysql会自动转换。

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

    在这里插入图片描述

    4. date和datetime的区别

    date:短日期,只包括 年月日
    dateime:长日期,包括 年月日时分秒

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

    在 mysql 中 now() 函数可以获取系统当前时间,是长时间格式

    5. 更新(update-DML)

    语法格式

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

    注意:如果没有限制条件,会导致所有的数据全部进行更新

    mysql> update t_user set name = 'jack', birth = '2022-9-2' where id = 2;
    
    • 1

    在这里插入图片描述

    mysql> select * from t_user;
    
    • 1

    在这里插入图片描述

    6. 删除(delete-DML)

    语法格式

    delete from 表名 where 条件;
    
    • 1

    注意:如果没有条件,整张表的数据都会被删除。

    mysql> delete from t_user where id = 2;
    
    • 1

    在这里插入图片描述

    mysql> delete from t_user;
    
    • 1

    在这里插入图片描述

    5. 快速创建表(复制表)

    原理:
    将一个查询结果当做一张表新建!!!
    这个可以完成表的快速复制!!!
    表创建出来,同时表中的数据也存在了!!!

    mysql> create table emp2 as select * from emp;
    
    • 1

    在这里插入图片描述

    6. 快速删除表中数据

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

    1. 表中的数据被删除了,但是这个数据在硬盘上的真实存储空间不会被释放!!!
    2. 这种删除的缺点是:删除效率比较低。
    3. 这种删除的优点是:支持回滚,后悔了可以再恢复数据!!!

    truncate 语句(DDL)删除数据的原理?

    1. 这种删除属于物理删除。
    2. 这种删除的缺点是:不支持回滚。
    3. 这种删除的优点是:效率较低。
    truncate table 表名;
    
    • 1
  • 相关阅读:
    一文精通HashMap灵魂七问,你学还是不学
    DVWA之SQL注入
    Salesforce ServiceCloud考证学习(5)
    2023快递高质量发展高峰论坛暨2023上海国际快递物流产业博览会
    TensorFlow入门(十五、数据读取机制(2))
    Fastdfs之多机房同步模拟测试
    Bug系列路径规划算法原理介绍(二)——BUG1 BUG2算法
    clickhouse基础介绍
    IDEA中如何使用debug调试项目 一步一步详细教程
    测试老中医、备战金九银十:38道关于软件测试技术面试题(附带答案)
  • 原文地址:https://blog.csdn.net/qq_52354698/article/details/126667279