• SQL基础篇-----修改表内的数据,删除列


    知识点1----ALTER

    下列代码意义:向已存在的表my_foods中新增自动排列的列 作为主键

    ALTER TABLE my_contacts  --表名称
    
    ADD COLUMN id INT NOT NULL AUTO_INCREMENT FIRST,   --新的 列 id,自动排列,该列于第一位 
    ADD PRIMARY KEY (id);  --要求新命名的id列作为主键

    如果不需要作为主键,则去掉 PRIMARY KEY 即可!

    排序关键字:

    FIRST - --把 列id 安置于所有其他列的前面

    LAST -- 把列 id 安置于其他列的后面

    SECOND -- 把列 id 安置为 第二个列

    AFTER(column1) -- 将列 id 放在 column1 后面

    BEFORE(column2) -- 将列 id 放在 column2 前面

    功能关键字:

    ADD --- 在当前表中增加一列——可自选类型(见始端)

    CHANGE--- 可以同时改变现有的列名称和数据类型

    ALTER TABLE my_contacts
    CHANGE COLUMN breakfast morning_foods  VARCHAR(20);   -- 旧名称breakfast改为 morning_foods ,新的类型为 VARCHAR(20)

    MODIFY ---修改现有列的数据类型或者位置

    ALTER TABLE my_contacts
    MODIFY COLUMN morning_foods  AFTER id;

    DROP -- 从表中删除某列

    ALTER TABLE my_foods
    DROP COLUMN morning_foods; 

    RENAME TO ----给表重新命名

    ALTER TABLE my_contacts
    RENAME TO contacts;

    知识点2  DELETE

    ----删除单一行或者所有行的值

    DELETE FROM my_foods --my_foods是要删除的行所在的表
    WHERE breakfast = 'bread';

    DELETE 与 SELECT 区别:DELETE不需要指定删除的对象,因为他很残忍,会把整行的所有列都删除。

    所以,DELETE不能单一删除某一列中值或者某一列的所有值;但是可以删除一行或者多行(根据WHERE语句来定)。WHERE子句中的搭配关键字,类似SELECT的使用方法,如LIKE、IN、BETWEEN,都可以在此处使用,而且所有条件都能更准确地要求RDBMS删除特定行。

    要是想修改某一行的某一列值,可以使用DELETE和INSERT配合来完成:先确定需要改变的值是你真正需要的值(因为删除掉的难以恢复),然后插入数据,删除原来的数据

    SELECT *FROM my_foods
    WHERE breakfast = 'milk';
    
    INSERT  INTO my_foods
    VALUES('bread+milk');
    
    DELETE FROM my_foods
    WHERE breakfast = 'milk';

    这样做的缺点是:需要把全部的行的相同数据重新输入一次,效率降低!UPDATE可以化简这个问题!

     知识点3  UPDATE

    --改变单一列或者所有列的值(不加上WHERE就会把那一列的所有数据都修改为新的值)

    UPDATE my_foods
    SET breakfast = 'bread'

    要是需要更新单一行或者多行,一切都需要交给WHERE来决定

    UPDATE my_foods   ---选择更新的表
    SET breakfast = 'bread'    --设置列 的值为什么
    WHERE breakfast = 'milk';    --定位

     要是需要用到多个UPDATE,可以用一下方法(加入CASE关键字!!):

    UPDATE my_foods            --表名称
    SET breakfast =        --指定的列值将根据下列条件做适当的更新
    CASE 
        WHEN lunch = 'fish'    --当lunch 的值为 ‘fish’时,将breakfast的值修改为meat! 
            THEN 'meat'
        WHEN lunch = 'fruit'
            THEN 'apple'
        ELSE 'rice'
    END

    附:CASE语句可以适用于 SELECT ,INSERT, DELETE,UPDATE语句中!

    ...

    当然,SET 不但可以对各种数据类型赋值,也可以套用一些基础的运算,函数等等。

    UPDATE my_foods
    SET foods_num = foods_num +1
    WHERE breakfast IN ('bread','milk');
  • 相关阅读:
    hospital 基于反射的 在线医疗项目(三)
    hospital 基于反射的 在线医疗项目(二)
    【前端笔记】之 消息提示框
    hospital 基于反射的 在线医疗项目(-)
    【前端笔记】之一个简单好看的的下拉菜单 :select下拉框
    Dubbo和Zookeeper在Linux系统的安装
    记录一下Java String类的常用方法
    myeclipse与tomcat、jdk的安装和配置
    jQuery选择器总结
    js根据2个日期计算相差天数
  • 原文地址:https://www.cnblogs.com/simonLiang/p/5797730.html
Copyright © 2020-2023  润新知