zoukankan      html  css  js  c++  java
  • MySQL常用SQL语句|函数|存储过程

    【本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究。若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!】

    一句话总结

    SELECT count(*) FROM user WHERE id>0 GROUP BY name HAVING count(*)>1 ORDER BY count(*)DESC;<br />
    

    看懂了吗?

    1.数据库

    /*查看已有数据库*/
    SHOW DATABASES;
    
    /*创建数据库*/
    CREATE DATABASE table_name;
    
    /*查看表结构*/
    SHOW COLUMNS FROM table_name;
    
    /*使用数据库*/
    SE dataBase_name;
    
    /*删除数据库*/
    DROP DATABASE table_name;
    

    2.数据表

    /*查看已有数据表*/
    SHOW TABLES;
    
    /*删除数据表*/
    DROP TABLE table_name ;
    
    /*创建数据表*/
    CREATE TABLE IF NOT EXISTS `runoob_tbl`(
       `runoob_id` INT UNSIGNED AUTO_INCREMENT,
       `runoob_title` VARCHAR(100) NOT NULL,
       `runoob_author` VARCHAR(40),
       `submission_date` DATETIME,
       PRIMARY KEY ( `runoob_id` )
    )ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    3.增删改查

    如果数据是字符型,必须使用单引号或者双引号,如:”value”

    /*插入语句*/
    INSERT INTO table_name ( field1, field2,...fieldN )
                           VALUES
                           ( value1, value2,...valueN );
    
    /*查询语句*/
    SELECT column_name,column_name
    FROM table_name
    WHERE clause
    LIMIT n OFFSET m
    

    LIMIT 限制条数 OFFSET 起始位置

    /*更新语句*/
    UPDATE table_name 
    SET field1=new-value1, field2=new-value2
    [WHERE clause]
    
    /*删除语句*/
    DELETE FROM table_name 
    [WHERE Clause]
    

    4.where子句

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

    实例

    SELECT * from runoob_tbl  WHERE runoob_author = 'Mary';
    

    5.Order by排序

    你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列

    SELECT field1, field2,...fieldN table_name1, table_name2...
    ORDER BY field1, [field2...][ASC [DESC]]
    

    实例

    SELECT * from runoob_tbl ORDER BY submission_date ASC;
    

    6.Like子句

    SQL LIKE 子句中使用百分号 %字符来表示任意字符,类似于UNIX或正则表达式中的星号 *。
    如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的。LIKE '%ABC'

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

    实例

    SELECT * from runoob_tbl  WHERE runoob_author LIKE '%Mary';
    

    7.GROUP BY分组

    【本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究。若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!】

    GROUP BY 语句根据一个或多个列对结果集进行分组。

    在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。

    SELECT column_name, function(column_name)
    FROM table_name
    WHERE column_name operator value
    GROUP BY column_name;
    

    实例

    SELECT name, COUNT(*) FROM   tablename GROUP BY name;
    

    8.事务

    BEGIN 开始一个事务
    ROLLBACK 事务回滚
    COMMIT 事务确认
    

    9.索引

    /*创建表的时候指定*/
    CREATE TABLE mytable(  
    ID INT NOT NULL,   
    username VARCHAR(16) NOT NULL,  
    INDEX [indexName] (username(length))  
    );  
    
    /*单独指定*/
    CREATE INDEX indexName ON mytable(username(length)); 
    
    /*修改表结构(添加索引)*/
    ALTER table tableName ADD INDEX indexName(columnName)
    

    删除索引的语法

    DROP INDEX [indexName] ON mytable; 
    

    唯一索引

    它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:
    创建索引

    CREATE UNIQUE INDEX indexName ON mytable(username(length)) 
    

    修改表结构

    ALTER table mytable ADD UNIQUE [indexName] (username(length))
    

    创建表的时候直接指定

    CREATE TABLE mytable(  
    ID INT NOT NULL,   
    username VARCHAR(16) NOT NULL,  
    UNIQUE [indexName] (username(length))  
    );  
    

    10.自定义函数

    创建

      CREATE [AGGREGATE] FUNCTION function_name(parameter_name type,
         [parameter_name type,...])
     
      RETURNS {STRING|INTEGER|REAL}
    
      runtime_body
    

    删除

    DROP FUNCTION function_name
    

    示例

    DELIMITER //  /*这句话设置//为sql语句结束符,更改原先的; */
    CREATE FUNCTION addTwoNumber(x SMALLINT UNSIGNED, Y SMALLINT UNSIGNED) 
    RETURNS SMALLINT
    BEGIN   
    DECLARE a, b SMALLINT UNSIGNED DEFAULT 10;  /*定义变量a,b类型smallInt无符号默认值10*/
    SET  a = x, b = y;  /*赋值语句*/
    RETURN a+b;
    END//
    

    更多自定义函数方面的知识推荐:http://blog.csdn.net/rzq228/article/details/73498172

    11.存储过程

    语法
    CREATE PROCEDURE 过程名([[IN|OUT|INOUT] 参数名 数据类型[,[IN|OUT|INOUT] 参数名 数据类型&hellip;]]) [特性 ...] 过程体

    DELIMITER // /*这句话设置//为sql语句结束符,更改原先的; */
      CREATE PROCEDURE myproc(OUT s int)
        BEGIN
          SELECT COUNT(*) INTO s FROM students;  /*过程体*/
        END
        //
    DELIMITER ; /*恢复*/
    

    更多SQL教程参考请阅读:Mysql中文教程

    版权声明

    【本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究。若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!】

  • 相关阅读:
    spyder学习记录---如何调试
    Pycharm学习记录---同一目录下无法import明明已经存在的.py文件
    python库之matplotlib学习---图无法显示中文
    python之字典遍历方法
    python库之matplotlib学习---关于坐标轴
    将博客搬至CSDN
    C代码实现栈
    Android进程间通讯
    Android进程间通讯之messenger
    C代码实现非循环单链表
  • 原文地址:https://www.cnblogs.com/onblog/p/13043522.html
Copyright © 2011-2022 走看看