zoukankan      html  css  js  c++  java
  • SQL语句

    一、什么是SQL

    SQL(Structured Query Language 结构化查询语言)

    二、SQL分类

    数据定义语言,简称DDL(Data Definition Language):定义数据库、表、列、关键字

    数据控制语言:简称DCL(Data Control Language):定义访问权限和安全级别

    数据操作语言:简称DML (Data Manipulation Language):操作表

    数据查询语言:简称DQL(Data Query Language):查询表

    三、操作

    1)数据库操作语句:

    -- 查看数据库
    SHOW DATABASES
    -- 创建数据库
    CREATE DATABASE xxx CHARACTER SET utf8
    -- 删除数据库
    DROP DATABASE xxx
    -- 使用数据库
    USE xxx
    -- 查看正在使用的数据库
    SELECT DATABASE()

    2)表格操作语句:

    -- 查看所有表
    SHOW TABLES
    -- 查看表个够
    DESC 表名
    -- 创建表
    /* 主键约束:primary key
      * 唯一约束:unique
      * 非空约束:not null
      * 外键:FOREIGN KEY
      * 默认值:DEFAULT
      * 值的范围:CHECK
    */
    CREATE TABLE 表名(
       字段名 类型(长度) 约束,
       字段名 类型(长度) 约束
    );
    -- 删除表
    DROP 表名
    -- 修改表名
    alter table 表名 add 列名 类型(长度) 约束;   --修改表添加列. 
    alter table 表名 modify 列名 类型(长度) 约束;  --修改表修改列的类型长度及约束.
    alter table 表名 change 旧列名 新列名 类型(长度) 约束;  --修改表修改列名.
    alter table 表名 drop 列名;  --修改表删除列.
    rename table 表名 to 新表名;  --修改表名
    alter table 表名 character set 字符集;  --修改表的字符集

    3)数据行查询语句:

    -- 一般查询语句
    SELECT xxx AS a, b FROM xxx_table AS c WHERE d LIKE '%xxx%' AND e='xxxx' AND f >= 666 OR g IS NULL OR not(h>100) ORDER BY i DESC
    
    -- 分组查询(查询对应type各自有多少条数据)
    SELECT type,COUNT(*) AS '总数' FROM xxx_table GROUP BY type
    
    -- HAVING
    /*
    *HAVING语句通常与GROUP BY语句联合使用,用来过滤由GROUP BY语句*回的记录集。
     *HAVING语句的存在弥补了WHERE关键字不能与聚合函数联合使用的不足。
     *常用的聚合函数
     *sum():求某一列的和
     *avg():求某一列的平均值
     *max():求某一列的最大值
     *min():求某一列的最小值
     *count():求某一列的元素个数
    */
    -- 查询各种类的平均价格,且要求平均价格>60
    SELECT type,AVG(price) FROM xxx_table GROUP BY type HAVING AVG(price)>60
    -- 查询各个省的最高房价,且要求最高房价>20w
    SELECT provice,max(price) FROM house GROUP BY provice HAVING AVG(price)>200000
    
    -- UNION 和 UNION ALL 合并SELECT语句
    SELECT aaa FROM house
    UNION ALL
    SELECT bbb FROM house
    /*
    *|aaa| 表头
    *|aaa1| 数据1
    *|aaa2| 数据2
    *|bbb1| 数据3
    *|bbb2| 数据4
    */
    
    -- 表连接 交叉、内、外连接
    -- 交叉连接,直接做“笛卡儿积”
    SELECT  *  FROM  A  CROSS  JOIN  B
    -- 内连接,做“笛卡儿积”后,要根据条件保留两表相同的数据
    SELECT  *  FROM  A  INNER JOIN  B ON A.id = B.id
    -- 外连接,做“笛卡儿积”后,保留相同数据和主表的数据
    SELECT  *  FROM  A  LEFT  JOIN  B ON A.id = B.id

    4)数据行操作语句:

    -- 插入数据
    -- 向表中插入某些列
    INSERT INTO 表 (列名1,列名2,列名3..) VALUES (值1,值2,值3..);
    --向表中插入所有列
    INSERT INTOVALUES (值1,值2,值3..); 
    -- 向表中插入来自别的表的某些列
    INSERT INTO 表 (列名1,列名2,列名3..) VALUES SELECT (列名1,列名2,列名3..) FROM-- 向表中插入来自别的表的所有列
    INSERT INTOVALUES SELECT * FROM-- 更新数据
    -- 更新表全部行的某些字段
    UPDATE 表名 SET 字段名=值,字段名=值;
    -- 更新表某些行的某些字段
    UPDATE 表名 SET 字段名=值,字段名=WHERE 条件;
    
    -- 删除数据
    -- 删除全部行
    DELETE FROM 表名;
    -- 删除某些行
    DELETE FROM 表名 WHERE 条件;
  • 相关阅读:
    textArea打印时,内容不显示
    自定义Metadata验证属性
    C# 扩展类与分布类
    JSON基础 JS操作JSON总结
    如何查看别人公众号的粉丝量
    Powerdesigner逆向工程从sql server数据库生成pdm
    springMVC中前台ajax传json数据后台controller接受对象为null
    Mybatis报错: Invalid bound statement (not found)
    Mysql批量插入数据性能问题
    java中String编码转换 UTF-8转GBK
  • 原文地址:https://www.cnblogs.com/amiezhang/p/10056236.html
Copyright © 2011-2022 走看看