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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL是一种开源的关系型数据库管理系统,它支持多种操作系统,并且广泛应用于Web应用程序的后端数据存储。MySQLDDL(Data Definition Language)是用于定义和管理数据库结构的基础操作。 以下是MySQLDDL的基础操作: 1. 创建数据库:使用CREATE DATABASE语句可以创建一个新的数据库。例如,CREATE DATABASE mydatabase; 2. 删除数据库:使用DROP DATABASE语句可以删除一个已存在的数据库。例如,DROP DATABASE mydatabase; 3. 创建表:使用CREATE TABLE语句可以创建一个新的数据表。在CREATE TABLE语句中,需要指定表名和表的列及其属性。例如,CREATE TABLE mytable (id INT, name VARCHAR(50)); 4. 删除表:使用DROP TABLE语句可以删除一个已存在的数据表。例如,DROP TABLE mytable; 5. 修表结构:使用ALTER TABLE语句可以修已存在的数据表的结构,包括添加、修和删除列等操作。例如,ALTER TABLE mytable ADD COLUMN age INT; 6. 添加主键:使用ALTER TABLE语句可以为数据表添加主键约束,以确保每行数据的唯一性。例如,ALTER TABLE mytable ADD PRIMARY KEY (id); 7. 添加外键:使用ALTER TABLE语句可以为数据表添加外键约束,以确保与其他表的关联完整性。例如,ALTER TABLE mytable ADD FOREIGN KEY (customer_id) REFERENCES customers(id); 8. 创建索引:使用CREATE INDEX语句可以为数据表创建索引,以提高查询性能。例如,CREATE INDEX idx_name ON mytable (name); 这些是MySQLDDL的基础操作,通过这些操作可以定义和管理数据库的结构。如果你有更具体的问题或者需要了解更多高级的DDL操作,请告诉我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值