• Mysql之增删改查


    这篇文章旨在介绍mysql的增删改查中的基本操作
    所有命令皆是以分号(;)结尾。

    1.显示命令

    在写增的有关命令前,我们更应该知道如何显示,这样有助于更好的检查我们的结果是否正确。

    #显示数据库列表
    show databases;
    
    #显示数据库中的数据表
    use mysql; #在这里,mysql代指你需要使用的数据库名
    show tables;
    
    #显示数据库的结构
    describe 表名;
    
    #显示表中的记录
    select * from 表名;
    
    #查看当前数据库
    select database();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    2.建立命令

    建立分为建立数据库与建立数据表,

    #建数据库
    create database 数据库名;
    
    #建数据表
    create table 表名(
      字段设定
      );
    
    #请注意,在建数据表前应该使用use 数据库名以指定数据库
    
    #添加数据
    insert into 数据表名 values(数据);
    #在这里,数据要跟字段的顺序相对应,也可指定字段
    insert into 数据表名(字段名) values(数据);
    #不能为null的数据不可空掉,这里要注意表建立时的字段定义
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    3.删除命令

    删除命令也分为删库和删表。

    • delete主要用于删除数据,它会删除表的数据但不会改变表。
    • truncate主要用于删除数据,但保留表结构,且数据不可恢复,该命令也不能添加查询条件。
    • drop主要用于删除结构,可以理解为格式化,彻底删除。

    truncate在功能上与不带 where 子句的delete语句相同:二者均删除表中的全部行。但 truncate比 delete速度快,且使用的系统和事务日志资源少。delete语句每次删除一行,并在事务日志中为所删除的每行记录一项。truncate通过释放存储表数据所用的数据页来删除数据。

    #删除数据库
    drop database 数据库名;
    
    #删除数据表
    drop table 数据表名;
    
    #将表中记录清空
    delete from 数据表名;
    
    #删除指定条件的行
    delete from 数据表名 where 指定条件;
    
    #也可以将delete改为truncate,但是truncate无法添加查询条件。truncate的删除原理是重新创建一个表,然后将原先的表删除。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    4.改变命令

    #更新一般使用update命令
    UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
    #table_name是要更新的表名,column1和column2是要更新的列名,value1和value2是要更新的值,condition是更新的条件。
    
    • 1
    • 2
    • 3

    –例子

    a.建库和建表以及插入数据
    drop database if exists school; //如果存在SCHOOL则删除
    
    create database school; //建立库SCHOOL
    
    use school; //打开库SCHOOL
    
    create table teacher //建立表TEACHER
    
    (
    
    id int auto_increment not null primary key,
    
    name char(10) not null,
    
    address varchar(50) default '深圳',
    
    year date
    
    ); //建表结束
    
    //以下为添加内容
    
    insert into teacher values(1,'glchengang','深圳一中','1976-10-10');
    
    insert into teacher(name,address,year) values('jack','深圳一中','1975-12-23');
    
    #在建表中(1)将 ID 设为整数字段 int;让它每个记录自动加一,auto_increment ;不能为空 not null ;而且让他成为主字段 primary key(2)将 NAME 设为长度为 10 的字符字段(3)将 ADDRESS 设为长度 50 的字符字段,而且缺省值为深圳。varchar 和char 有什么区别呢,等以后再说。(4)将 YEAR 设为日期字段。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    b.将表users中id为1的用户的name改为Alice
    UPDATE users SET name = 'Alice' WHERE id = 1;
    
    • 1
    c.插入数据一条与多条
    #插入一条数据
    insert into teacher values(1,'glchengang','深圳一中','1976-10-10');
    
    #插入多条数据
    INSERT INTO students (name, age)
        VALUES ('John', 20), 
               ('Jane', 22),
               ('Mike', 19);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 相关阅读:
    Spring Boot 定义接口的方法是否可以声明为 Private?
    科研宝典·工具篇 | CiteSpace: 科学文献分析
    Python的计数器怎么用啊?Counter
    化工机械基础复习要点
    SparkML
    c++ 对象模型
    redis-哨兵模式&集群(无中心化)
    background-size
    Qt拖拽文件到窗口、快捷方式打开
    Excel中Alt快捷键的用法
  • 原文地址:https://blog.csdn.net/xiaoyu070321/article/details/133776091