A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小石姐姐 于 2018-1-24 15:59 编辑

SQL语句单表查询基本语法总结

SQL特点
     SQL不区分大小写
     一条SQL语句以;分号结尾, 一条语句可以多行书写
    单词之间通过空格分隔, 参数之间通过,逗号分隔
     字符串和日期要用''或""引起来, 建议单引号
SQL注释(2+1种)
      2种单行注释
            #单行注释
            -- 单行注释: 减号后必须有一个空格
      1种多行注释: /* 注释内容 */
SQL的数据类型
    INT: 整数
    DOUBLE: 小数
    VARCHAR: 可变长度字符
    CHAR: 固定长度字符
      其他看文档
VARCHAR和CHAR的区别:
      VARCHAR(200), 可变长度字符, 存储占用的内存空间是可变的, 如果你的数据容量小于我们指定的空间大小, 那么就会按照实际的数据空间来开辟内存大小
    优点: 节省内存
    缺点: 因为每次存入数据时都会判断数据的实际大小, 来动态修改内存空间, 所以需要占用资源, 效率低
CHAR(200), 固定长度字符, 存储占用的内存空间是不可变的. 无论实际存入的数据容量是多大, 都占用这么大的空间
     优点: 插入数据时不需要额外操作, 效率高
     缺点: 可能会浪费空间
SQL对库的操作
      创建库
      使用默认字符集创建库: CREATE DATABASE 库名;
      默认是UTF-8编码
      指定字符集: CREATE DATABASE 库名 CHARACTER SET '字符集';
删除库
    DROP DATABASE 库名;
查看所有库
    SHOW DATABASES;
使用库
     USE 库名;
查看当前使用的库
     SELECT DATABASE();
SQL对表的操作
    创建表: CREATE TABLE 表名 (列名1 数据类型 约束, 列名2 数据类型 约束);
    删除表: DROP TABLE 表名;
    查看当前库中的所有表: SHOW TABLES;
修改表的结构: ALTER TABLE 表名 操作关键字 列名 数据类型 约束;
    增加列: ALTER TABLE 表名 ADD 新列名 新数据类型 新约束;
    删除列: ALTER TABLE 表名 DROP 列名;
    修改列的数据类型和约束(不能修改列名): ALTER TABLE 表名 MODIFY 列名 新数据类型 新约束;
    修改列的列名, 数据类型, 约束: ALTER TABLE 表名 CHANGE 旧列名 新列名 新数据类型 新约束;
查看表结构:DESC 表名;
修改表名: RENAME TABLE 旧表名 TO 新表名;
SQL对记录的操作
         
                  一次插入一条记录: INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);
                 一次性插入一条记录(省略自增主键): INSERT INTO 表名 (非主键自增列1, 非主键自增列2) VALUES (值1, 值2);
                 一次插入所有列的记录(省略列名): INSERT INTO 表名 VALUES (值1, 值2);
                 值的数量和顺序必须和表的列一致
                 一次插入多个记录(指定列): INSERT INTO 表名 (列1, 列2) VALUES (记录1值1, 记录1值2), (记录2值1, 记录2值2);
                 一次插入多个记录(省略列): INSERT INTO 表名 VALUES (记录1值1, 记录1值2), (记录2值1, 记录2值2);
        
                 删除符合条件的记录: DELETE FROM 表名 WHERE 条件;
                 删除所有记录: DELETE FROM 表名;
                 清空表: TRUNCATE TABLE 表名;
                 DELETE FROM 表名;和TRUNCATE TABLE 表名;的区别
                 DELETE, 逐条删除记录, 不会重置自增计数器
                 TRUNCATE, 删除表再重建, 会重置自增计数器
        
                 修改符合条件的记录: UPDATE 表名 SET 列名1=新值, 列名2=新值 WHERE 条件;
                 修改所有记录: UPDATE 表名 SET 列名1=新值, 列名2=新值;
      
                 查询指定列: SELECT 列名1, 列名2 FROM 表名;
                 查询所有列: SELECT * FROM 表名;
                 条件查询: SELECT 列名1, 列名2 FROM 表名 WHERE 条件;
运算符
      比较运算符
           =: 相等
            <>或!=: 不等
            >: 大于
           <: 小于
            >=: 大于等于
          <=: 小于等于
          BETWEEN...AND...: 在一个范围内(包含头和尾)
           如: BETWEEN 0 AND 10
           IN (): 在列表中, 满足列表中一个即可
             如: IN (1, 3, 5)
           IS NULL: 是空
           LIKE '通配符': 模糊查询
           %: 一个百分号可以表示任意个字符. 比如'王%', 王大锤, 王五
             _: 一个下划线可以表示一个字符. 比如'王_', 只能匹配王五
逻辑运算符
         AND: 与. 两边条件同时成立才成立
        OR: 或. 两边条件只要有一个成立就成立
        NOT: 非, 取相反结果
        NOT BETWEEN ... AND ...: 不在范围内
        NOT IN: 不在列表中
        NOT LIKE: 不匹配
       IS NOT NULL: 非空
       去重: SELECT DICTINCT 列名1, 列名2 ... FROM 表名 WHERE 条件;
       别名:
              字段名 AS 别名
              表名 AS 别名

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马