zoukankan      html  css  js  c++  java
  • MySQL学习笔记——增删改查

    有关数据库的DML操作

      -insert into

      -delete、truncate

      -update

      -select

        -条件查询

        -查询排序

        -聚合函数

        -分组查询

    DROP、TRUNCATE、DELETE

    -DELETE删除数据,保留表结构,可以回滚,如果数据量大,很慢,回滚就是因为备份删除的数据

    -TRUNCATE删除所有数据,保留表结构,不可以回滚,一次全部删除所有数据,速度相对很快

    -DROP删除数据和表结构,删除数据最快(直接从内存抹去这一块数据)

    #1.指明字段进行插入,注意字段和值的数量和类型都需要匹配
    INSERT INTO tb_dept (NAME,loc,description) VALUES('开发部','广州','负责软件开发工作');
    
    #2.如果插入的values是所有字段,可以不同显式写插入的字段名,不推荐
    INSERT INTO tb_dept VALUES(3,'财务部','广州','负责财务工作');
    
    #auto_increment会记住曾经生成的值
    
    #3.一次插入多条记录 mysql特有
    INSERT INTO tb_dept (NAME,loc,description)
    VALUES('开发部','广州','负责软件开发工作'),
    ('财务部','广州','负责财务工作'),
    ('市场部','广州','负责采购工作');
    
    #4.可以从一张表中插入数据
    #创建一张表和tb_dept表的结构一样,通过这种方式建表只是复制表结构,不复制约束
    CREATE TABLE tb_dept2
    SELECT * FROM tb_dept
    #where id = 99
    
    #先建表再插入
    INSERT INTO tb_dept2(id,NAME,loc,description)
    SELECT id,NAME,loc,description FROM tb_dept
    
    INSERT INTO tb_emp(id,NAME,sex,age,address,email,dept_id)
    VALUES(1,'Tony','',26,'广州','Tony@163.com',1);
    
    #更新 UPDATE table SET column = value [,column = value] [WHERE condition]
    #where建议使用主键或者唯一键,建议是主键
    UPDATE tb_emp SET age=23 WHERE id = 1;
    UPDATE tb_emp SET age=23,sex='' WHERE id = 2;
    
    #删除 DELETE [FROM] table [WHERE condition];
    DELETE FROM tb_emp;    #删除表所有数据
    DELETE FROM tb_emp WHERE id=2;
    
    #阶段,DDL语句 TRUNCATE语句 作用是完全清空一个表
    TRUNCATE TABLE tb_emp;

    最简单的SELECT语句

    #查找 字段、字段。。。从 表 *表示所有的列
    SELECT NAME,loc,description FROM tb_dept
    SELECT * FROM tb_dept 
    SELECT NAME FROM tb_dept
    
    #SELECT语句中的算数表达式
    SELECT NAME,age,age*2
    FROM tb_emp;
    
    #NULL和0还有空字符不是一个概念
    SELECT * FROM tb_emp;
    SELECT * FROM tb_emp WHERE age = 0;
    SELECT * FROM tb_emp WHERE age IS NULL;
    
    #改变列的标题头,别名
    SELECT NAME '姓名',age AS '年龄',age*2 '年龄乘2'
    FROM tb_emp;
    
    #重复记录
    #缺省情况下查询显示所有行,包括重复行
    SELECT dept_id
    FROM tb_emp;
    
    #使用DISTINCT关键字可从查询结果中清楚重复行
    SELECT DISTINCT dept_id
    FROM tb_emp;
    
    #DISTINCT作用的范围是后面字段的组合
    SELECT DISTINCT dept_id,age
    FROM tb_emp WHERE dept_id=1;
    
    #使用WHERE子句限定返回的记录
    SELECT *
    FROM tb_emp
    WHERE age=22;
    
    #字符串和日期要用单引号括起来
    SELECT *
    FROM tb_emp
    WHERE NAME = 'Tom';
    
    #比较运算符>  <  >=  <=  =  <>
    SELECT NAME,age
    FROM tb_emp
    WHERE age>=24;
    
    SELECT NAME,age
    FROM tb_emp
    WHERE age>=24 AND age<27;
    
    #BETWEEN AND 包含最小值和最大值
    SELECT NAME,age
    FROM tb_emp
    WHERE age BETWEEN 24 AND 27;
    
    #使用IN运算符
    SELECT NAME,age
    FROM tb_emp
    WHERE age IN (22,26);
    
    SELECT NAME,age
    FROM tb_emp
    WHERE age NOT IN (22,26);
    
    #使用LIKE运算符进行模糊查询 _代表一个字符  %代表一个或者多个字符
    SELECT NAME
    FROM tb_emp
    WHERE NAME LIKE '_a%';
    
    #IS NULL
    SELECT NAME,age
    FROM tb_emp
    WHERE age IS NULL;
    
    #对结果进行排序 ORDER BY 从高到低
    SELECT * 
    FROM tb_emp
    ORDER BY age DESC;
    
    #默认从低到高或者ASC
    SELECT * 
    FROM tb_emp
    ORDER BY age;

     

        

  • 相关阅读:
    『C#基础』数据库死锁笔记
    『C#基础』IIS的权限问题
    『C#基础』调用CMD的一个小工具
    『C#基础』获取系统图标的一个操作类
    『程序人生』其实,做软件与打游戏是一样一样的……
    『C#基础』C#调用存储过程
    『Linux』Arch Linux与VirtualBox的结合
    sql server 触发器简单学习
    用触发器替换原来的insert
    食物增肥一方
  • 原文地址:https://www.cnblogs.com/tonglin0325/p/4657178.html
Copyright © 2011-2022 走看看