zoukankan      html  css  js  c++  java
  • Mysql(1)_ 基本sql语句

    TRUNCATE TABLE rdrssit_4.pysbig_table1;
    
    DELETE from  rdrssit_5.test_table01 where userid>=1 and userid<=200;

         truncate语句只是清空表中的数据,delete语句如果后面不带where条件,也会清空表中的数据。

         DDL语句是Data Definition Language 的缩写,这些语句定义了不同的数据段,数据库,表,索引和对象。包括create,drop,以及alter等!drop在上次研究院的还面试过!

    -- 新建数据库
    create DATABASE test01;
    -- 查询数据库
    show DATABASES;
    -- 选择数据库
     use test01;
    -- 查看数据库的表
     show tables;
    --
     CREATE TABLE emp(
        ename VARCHAR(10),
        hiredate DATE,
        sal DECIMAL,
    -- 注意最后一个字段后面没有分号,并且分好在括号外面!
        deptno INT(2)
    );
    -- 查看表的定义
     DESC emp;
    
    -- 在表中增加一个字段
    alter table emp  add COLUMN age  INT(3);
    -- 删除字段
    alter TABLE emp DROP COLUMN age;
    -- 修改表字段的定义
    ALTER table emp MODIFY ename VARCHAR(20);
    -- 字段改名
    ALTER TABLE emp CHANGE age age1 INT(5);
    -- 修改字段排列顺序
    ALTER TABLE emp add birth DATE AFTER hiredate;
    -- 修改age,把它放在最前面
    ALTER TABLE emp MODIFY age1 INT(5) FIRST;
    -- 更改表名
    ALTER TABLE emp1 rename emp;
    -- 删除表
    drop table emp;
    -- 删除数据库
    drop DATABASE test01;

     DML语句

    INSERT INTO emp(ename,hiredate,sal,deptno) values('bowen2','2001-09-01','2900',2);
    -- 也可以不指定字段,但是values后面的值要和字段一一对应
    insert INTO emp VALUES('bowen2','2012-09-11',2121,1);
    -- 只插入指定字段值
    insert INTO emp(ename,sal) VALUES('bowen3',1000);
    -- 插入多条数据
    insert into dept VALUES(1,'tech'),(2,'sale'),(3,'fin');
    UPDATE emp set sal = 5000 where ename = 'bowen1';
    -- 同时更新多个表中的数据,多表更新多用于根据一个表的字段来动态更新另外一个表的字段
    UPDATE emp a,dept b set a.sal=a.sal*2,b.deptname=a.ename where a.deptno=b.deptno;
    DELETE from emp where ename = 'bowen3';
    -- 把dept表和emp表deptno为3的数据删除,不管是单表还是多表,不加where条件的会把表的记录都删除
    DELETE  a, b from emp a,dept b where a.deptno=b.deptno and a.deptno=3;
    SELECT DISTINCT deptno from emp;
    -- 条件查询
    select * from emp where deptno=1;
    -- 排序和限制
    SELECT * from emp order BY sal;
    SELECT * FROM emp ORDER BY deptno;
    -- 按部门排序后,再按薪水排序
    SELECT * from emp ORDER BY deptno,sal DESC;
    -- 对排序后,只显示一部分而不是全部.
    SELECT * from emp ORDER by  sal DESC LIMIT 3;
    -- 如果要显示emp表按照sal排序后从第二条记录开始的3条记录,可如下
    -- LIMIT 经常和orderby一起配合使用,进行记录的分页显示
    SELECT * from emp ORDER BY sal DESC LIMIT 1,3;
    -- 聚合
    -- 在emp表中查找公司的总人数
    select COUNT(1) from emp;
    -- 在此基础上统计各个部门的人数
    select deptno,COUNT(1) from emp GROUP BY deptno;
    -- 既要统计各部门人数,又要统计总人数
    select deptno,COUNT(1) from emp GROUP BY deptno with  ROLLUP;
    -- 统计大于一的人数部门
    SELECT deptno,COUNT(1) FROM emp GROUP BY deptno HAVING COUNT(1)>1;
    -- 
    SELECT SUM(sal),max(sal),MIN(sal) from emp;
    -- 显示雇员名字和所在部门名称
    SELECT ename,deptname from emp,dept WHERE emp.deptno=dept.deptno;

    -- 记录联合
    select deptno from emp 
     UNION ALL
    SELECT deptno from dept;
    -- 记录联合去重
    SELECT deptno from emp UNION
    SELECT deptno from dept;
  • 相关阅读:
    Java遍历Map、List、Array
    自签名SSL生成
    oracle_round
    Timestamp_时间戳
    oracle_substr
    eval
    orcale_聚合函数
    oracle_decode
    js_JSON
    sql拼接
  • 原文地址:https://www.cnblogs.com/sunnybowen/p/9857966.html
Copyright © 2011-2022 走看看