• SQL基本语法总结


    #创建数据库
    DROP DATABASE IF EXISTS 数据库名;
    CREATE DATABASE 数据库名;
    #展示所有的数据库:
    SHOW DATABASES;
    #查看某个数据库的定义信息:
    SHOW CREATE DATABASE 数据库名;
    #删除数据库:
    DROP DATABASE 数据库名;
    #使用某个(切换)数据库:
    USE 数据库名;
    #查看正在使用的数据库:
    SELECT DATABASE();
    #展示所有的数据表:
    SHOW TABLES;
    #-------------------------------------------------------------------------

    #创建数据表:
    PRIMARY KEY AUTO_INCREMENT 主键 自动增长
    CREATE TABLE 表名(列名1 该列的类型,列名2 该列的类型,列名3 该列的类型);
    #删除数据表
    DROP TABLE 数据表名;
    #查看数据表结构
    DESCRIBE 数据表名;
    #-------------------------------------------------------------------------

    #基本的语句
    #增:插入一条: 
    INSERT INTO 表名(列名1,列名2,列名3) VALUES(值1,值2,值3);
    #批量插入:
    INSERT INTO 表名(列名1,列名2,列名3) VALUES
    (值1,值2,值3),
    (值1,值2,值3),
    (值1,值2,值3)
    #-------------------------------------------------------------------------

    #SQL更新语句,对数据表中原有的数据进行修改
       #语法格式:
           UPDATE 表名  SET 字段1=值1, 字段2=值2  WHERE 修改的条件
           UPDATE gjp_ledger SET money = 50,ldesc='家庭PARTY' 
         #注意,UPDATE修改表数据的时候,加上WHERE条件

    UPDATE gjp_ledger SET money = 724 , ldesc = '家庭PARTY' WHERE lid=1
    #-------------------------------------------------------------------------

    #对已经做好的数据表,进行结构上的修改
    CREATE TABLE temp(
        id INT PRIMARY KEY AUTO_INCREMENT,
        t_name VARCHAR(50),
        t_text VARCHAR(100),
        t_money DOUBLE
    )

    -- RENAME TABLE 旧表名 TO 新表名 
    RENAME TABLE temp TO  newtemp

    -- ALTER TABLE 表名 ADD 列名 类型; 添加列操作
    ALTER TABLE temp ADD t_day DATE

    -- ALTER TABLE 表名 MODIFY 列名 类型;修改列类型
    ALTER TABLE temp MODIFY t_money INT

    -- ALTER TABLE 表名 DROP 列名;  删除列
    ALTER TABLE temp DROP t_day

    -- ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;  修改列名称
    ALTER TABLE temp CHANGE t_money newt_money DOUBLE

    -- DROP TABLE 表名
    DROP TABLE temp
    #-------------------------------------------------------------------------

    #删除数据表中的数据
       #语法:
         DELETE FROM 表名  删除表中的所有数据
        
         DELETE FROM 表名 WHERE 条件    删除的是指定满足条件的数据

        DELETE FROM gjp_ledger WHERE lid = 2
    #-------------------------------------------------------------------------

    #查询
    #DOS命令行执行SQL语句可能会出现乱码问题,怎么解决?
       SET NAMES 'GBK'
       SELECT 列名1,列名2...  FROM 表名  #查看指定列
       SELECT * FROM 表名;     #可以查看所有的列
       SELECT DISTINCT ACCOUNT FROM 表名;  #查询的时候,会去掉ACCOUNT类的重复项。
       SELECT * FROM 表名 WHERE 条件;    #带条件的查询
    #条件的分类:
       #1、比较运算符
         > < >= <= = !=(<>)
       #2、逻辑运算符:
         AND, OR , NOT  
       #3、区间的判断
         BETWEEN 值1 AND 值2;  #值2必须大于值1
       #4、固定值得判断
         IN (值1,值2,值3);
       #5、模糊查询:
         A:% 可以匹配多个  
         B:_ 只能匹配一个
    #-------------------------------------------------------------------------
    #SQL语句中的WHERE条件查询

    -- 查询所有支出记录
    SELECT * FROM gjp_ledger WHERE parent = '支出'

    -- 查询出金额价格大于1000的信息
    SELECT * FROM gjp_ledger WHERE money > 1000

    -- 查询出金额在2000-5000之间的账务信息
    SELECT * FROM gjp_ledger WHERE money >= 2000 AND money <=5000
    SELECT * FROM GJP_LEDGER WHERE MONEY BETWEEN 2000 AND 5000

    -- 查询出金额是1000或5000或3500的商品信息
    SELECT * FROM gjp_ledger WHERE money = 1000 OR money = 5000 OR money = 3500
    SELECT * FROM gjp_ledger WHERE money IN (1000,5000,3500)

    -- 查询出账务的银行有工商银行的账务信息 , 模糊查询
    -- 模糊查询出,ACCOUT 开头是工商就可以,后面必须是2个字符
    SELECT * FROM gjp_ledger WHERE account LIKE '工商__'

    -- 模糊查询出,ACCOUT 开头只要是工商就可以
    SELECT * FROM gjp_ledger WHERE account LIKE '工商%'

    -- 模糊查询出,ACCOUNT 只要有工商就可以
    SELECT * FROM gjp_ledger WHERE account LIKE '%工商%'

    -- 查询出账务ACCONT不为NULL账务信息
    SELECT * FROM gjp_ledger WHERE account IS NOT  NULL
    #-------------------------------------------------------------------------


    # 聚合函数

    -- COUNT  统计符合查询条件的数据,共有多少行
    SELECT COUNT(*) AS 'COUNT' FROM gjp_ledger;

    -- COUNT 统计所有工商银行的内容,共有多少条
    SELECT COUNT(*) FROM gjp_ledger WHERE account LIKE '%工商银行%'

    -- 统计账务表中金额大于3000的有多少条记录
    SELECT COUNT(*) FROM gjp_ledger WHERE money > 3000


    -- SELECT SUM(求和列,数字) FROM 表名
    -- 查询账务表,求出MONEY字段的和
    SELECT SUM(money) FROM gjp_ledger

    -- 查询账务表,统计所有支出的金额总和
    SELECT SUM(money) FROM gjp_ledger WHERE parent = '支出'

    -- MAX,MIN 求出最大和最小值
    -- 查询账务表,统计出 支出中的最大值 和 收入中的最小值
    SELECT MAX(money) FROM gjp_ledger WHERE parent = '支出'
    SELECT MIN(money) FROM gjp_ledger WHERE parent = '收入'

    -- AVG(自段) 计算这个字段的平均数
    -- 查询账务表,计算出,所有支出的平均数
    SELECT AVG(money) FROM gjp_ledger WHERE  parent = '支出'

    #-------------------------------------------------------------------------
    # 查询数据表后,对结果进行排序
      
       ORDER BY 子句
      
      #语法格式:写在查询语句的最后面
          ORDER BY 排序的列名 [DESC] 倒序排列

    -- 查询账务表,使用MONEY字段,进行排序
    SELECT * FROM gjp_ledger ORDER BY money

    #-------------------------------------------------------------------------
    #分组查询
        GROUP BY 要分组的列名
        #必须配合聚合函数

    -- 我们要统计出GJP_LEDGER表中所有分类账务的总数量
    -- 查询出,支出的共计多少钱,收入的共计多少钱
    SELECT SUM(money),parent FROM gjp_ledger GROUP BY parent

    -- 查询出,所有的金额总和,账务分类
    SELECT SUM(money),parent,account FROM gjp_ledger GROUP BY parent,account

    -- 查询出,支出的共计多少钱,收入的共计多少钱, 只显示大于20000元的
    -- HAVING 子句,跟随分组,分组后,对结果再次过滤
    SELECT SUM(money)AS 'summoney',parent FROM gjp_ledger  GROUP BY parent
    HAVING summoney >= 20000

    #-------------------------------------------------------------------------

  • 相关阅读:
    两道挺有意思的思考题
    IEEE浮点数表示法
    MD5 Bump Mapping
    MD5 PolyBump + DetailBump
    DOOM3 MD5渲染方式的另一种猜测
    Relief Mapping
    如何计算投影纹理坐标
    Toon Shading, step 3
    c++数组初始化赋值
    c++重载部分运算符以及输入输出运算符
  • 原文地址:https://www.cnblogs.com/huguangqin/p/7137580.html
Copyright © 2020-2023  润新知