美文网首页数据库-mysql
6. DML数据操作语句2

6. DML数据操作语句2

作者: 光小月 | 来源:发表于2018-04-19 15:18 被阅读3次

    create table


    create table if not exists `employ`(
        id int  unsigned auto_increment,   
        version int(8) not null,
        `create_user` varchar(20),
        `create_time` datetime,
        name varchar(8),
        birthday datetime,
        constraint pk_employee primary key(id)
    );
    

    drop table

    drop table employ;
    

    insert into

    INSERT INTO employ 
    (version,`create_user`,`create_time`,name,
     birthday)
     VALUES
     (1, 'asd',now(), 'asd', now());
    

    insert into more

    INSERT INTO table_name  (field1, field2,...fieldN)  
    VALUES  (valueA1,valueA2,...valueAN),
    (valueB1,valueB2,...valueBN),
    (valueC1,valueC2,...valueCN)......; 
    

    select sql

    SELECT column_name,column_name
    FROM table_name
    [WHERE binary(条件是区分大小写) condition]
    [LIMIT N][ OFFSET M]     
    

    delete table values

    delete from tablename;
    truncat table tablename;
    

    update table

    UPDATE table_name SET field1=new-value1, field2=new-value2
    [WHERE Clause]              
     
    UPDATE table_name SET field=REPLACE(field, 'old-string', 'new-string') 
    [WHERE Clause]
    

    delete table values

    DELETE FROM table_name [WHERE Clause]
    

    LIKE ...% 进行模糊匹配

    SELECT field1, field2,...fieldN 
    FROM table_name
    WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
    

    union

    SELECT expression1, expression2, ... expression_n
    FROM tables
    [WHERE conditions]
    UNION [ALL | DISTINCT]
    SELECT expression1, expression2, ... expression_n
    FROM tables
    [WHERE conditions];
    :::DISTINCT: 可选,删除结果集中重复的数据。
    默认情况下 UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。
    :::ALL: 可选,返回所有结果集,包含重复数据。
    

    与oralce 的区别,oracle中的列需要明确,并加入一些分组函数
    mysql 可以*, 列的是分组列与min(各列)

    select * 
    FROM employee_tbl
    group by name;
    

    coalesce(name, '总数') 函数与 oracle的nvl2(col, col, alias2)相似


    连接

    INNER JOIN(内连接,或等值连接:获取两个表中字段匹配关系的记录。
    LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
    RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录
    

    NULL 值处理

    IS NULL: 当列的值是 NULL,此运算符返回 true。
    IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
    <=>: 比较操作符(不同于=运算符),当比较的的两个值为 NULL 时返回 true。
    NULL 值与任何其它值的比较(即使是 NULL)永远返回 false,即 NULL = NULL 返回false 。
    

    正则表达式

    SELECT name FROM person_tbl WHERE name regexp '^st';
    

    相关文章

      网友评论

        本文标题:6. DML数据操作语句2

        本文链接:https://www.haomeiwen.com/subject/czuwkftx.html