• 与MYSQL的零距离接触(笔记四) 慕课网


    操作数据表中的记录


    插入记录
    INSERT [INTO] tb1_name [(col_name)] {VALUES|VALUE} ({expr | DEFAULT},...),(...),...

    net start mysql
    mysql -uroot -p123456

    use test;
    CREATE TABLE users(
    id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(20) NOT NULL,
    password VARCHAR(32) NOT NULL,
    age TINYINT UNSIGNED NOT NULL DEFAULT 10,
    sex BOOLEAN
    );

    第一种常见的插入方法:
    INSERT users VALUES(NULL,'TOM','123',25,1);
    INSERT users VALUES(NULL,'John','123',25,1);
    SELECT * FROM users;
    INSERT users VALUES(DEFAULT,'John','123456789',25,1);
    INSERT users VALUES(NULL,'John','123',DEFAULT,1);
    INSERT users VALUES(DEFAULT,'John','123456789',25*5/25-1,1);
    INSERT users VALUES(DEFAULT,'Tom','12345',3*7-5,1),(NULL,'Rose',md5('123'),DEFAULT,0);

    第二种:
        INSERT [INTO] tb1_name SET col_name={expr|DEFAULT},...
        说明:和第一张方式的区别在于,此方法可以使用子查询(SubQuery)
        INSERT users SET username='Ben',password='456';
        第一种方法可以插入多条记录。第二种一次只能插入一条记录

    第三种:
    INSERT [INTO] tb1_name [(col_name,...)] SELECT ...
        说明:此方法可以查询结果插入到指定数据表。
        CREATE TABLE test(
        id TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
        username VARCHAR(20)
        );
        INSERT test(username) SELECT username FROM users WHERE age>=30;
        
        
    UPDATE
    更新记录(单表更新)
        UPDATE[LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr1|DEFAULT}
        [,col_name2={expr2|DEFAULT}] ... [WHERE where_condition]
        
    UPDATE users set age= age +5; 修改一条
    UPDATE users set age = age - id,sex =0; 修改两条
    UPDATE users set age = age +10 WHERE id % 2 = 0; 加入条件



    DELETE
    删除记录(单表删除)
        DELETE FROM tb1_name [WHERE where_condition]
        DELETE FROM users WHERE id = 6; 删除id为6 的记录
        
        INSERT users VALUES(NULL,'T111','123',33,1);
    删除记录后 继续创建记录,将会以已有的最大id+1的形式创建id记录




    SELECT
    查找记录
    SELECT select——expr [.select——expr ...]
    [
    FROM table_reference
    [WHERE where_condition]
    [GROUP BY {col_name |position}[ASC|DESC],...]
    [HAVING where_condition]
    [ORDER BY {col_name|expr|position}[ASC|DESC],...]
    [LIMIT {[offset,] row_count |row_count OFFSET offset}]
    ]

    查询表达式    
        每个表达式表示想要的一列,必须有至少一个。
        每个列之间以英文逗号分隔。
        星号(*) 表示所有列。tb1_name.*可以表示命名表的所有列。
        查询表示式可以使用[AS] alias_name 为其赋予别名。
        别名可用于GROUP BY,ORDER BY 或HAVING子句。

    SELECT id,username FROM users;
    SELECT username,id FROM users;   查询表达式的顺序将影响结果的顺序

    SELECT users.username,users.id FROM users;  确认指定的数据表查询

    SELECT id  FROM users; 单列查询
    SELECT id AS uesrid,username AS uname FROM users;  查询并用AS赋予别名


    WHERE
    条件表达式
        对记录进行过滤,如果没有指定WHERE子句,则显示所有记录。
        在WHERE表达式中,可以使用MYSQL支持的函数或运算符。

        
    GROUP BY
        查询结果分组
        [GROUP BY {col_name|position}[ASC|DESC],...]
        SELECT sex FROM users GROUP BY sex;
        SELECT sex FROM users GROUP BY 1;
    HAVING
        分组条件
        [HAVING where_coundition]
        SELECT sex,age FROM users GROUP BY 1 HAVING age > 30;
        SELECT sex FROM users GROUP BY 1 HAVING count(id) >= 3;
    ORDER BY
        对查询结果进行排序
        [ORDER BY {col_name|expr|position}[ASC|DESC],...]
        SELECT * FROM users ORDER BY id DESC;       倒序排列
        SELECT * FROM users ORDER BY age,id DESC;
        
    LIMIT
    限制查询结果返回的数量
        [LIMIT {[offset,]row_count|row_count OFFSET offset}]
        SELECT * FROM users LIMIT 2;   返还前面两条数据
        SELECT * FROM users LIMIT 2,2;  返还从第三条开始 返还2条记录
        

        
        
       

  • 相关阅读:
    [你必须知道的异步编程]——基于事件的异步编程模式
    [.Net线程处理系列]专题三:线程池中的I/O线程
    [.Net 线程处理系列]专题一:线程基础
    [.Net线程处理系列]专题四:线程同步
    [你必须知道的异步编程]——异步编程模型(APM)
    C#软件程序无法启动的故障
    CSS疑难杂症
    DIV+CSS排版时 如何解决img图片元素下多余空白
    SQL备份相关的语句大全
    SQLServer2000同步复制技术实现步骤
  • 原文地址:https://www.cnblogs.com/zzl112893/p/10216824.html
Copyright © 2020-2023  润新知