SQL学习(一)

394 阅读4分钟

定义及作用

1,定义:SQL(结构化查询语言)是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

2,作用:

  • 是所有关系型数据库的统一查询规范,不同的关系型数据库都支持SQL
  • 所有的关系型数据库都可以使用SQL
  • 不同数据库之间的SQL 有一些区别(统称为:方言)

SQL通用语法

  • sql语句可以单行或者多行书写,以分号结尾

  • 可以使用空格缩进来提高代码可读性

  • Mysql中不区分大小写

  • 注释:

    语法解释
    --空格单行注释
    /* */多行注释
    #mysql独有的单行注释

SQL分类

分类说明
数据定义语言(DDL)定义数据库对象(数据库、表、列)
数据操作语言(DML)对数据库中表的记录进行更新
数据查询语言(DQL)查询数据库中表的记录
数据控制语言(DCL)定义数据库的访问权限和安全级别以及创建用户
  1. DDL操作数据库

    命令说明
    create database 数据库名;创建指定名称的数据库
    create database 数据库名 character set 字符集;创建指定名称的数据库并指定字符集
    use 数据库名切换数据库
    select database();切换数据库
    show databases;查询Mysql中有哪些数据库
    show create database 数据库名;查看数据库的定义信息
    alter database 数据库名 character set 字符集;数据库字符集修改
    drop database 数据库名;从Mysql中永久删除数据库
  2. DDL操作数据库表

    • MySQL常见的数据类型
    类型说明
    int整型
    double浮点型
    char / varchar字符串型
    date日期(只有年月日)
    • 详细的数据类型

    截屏2021-09-07 下午6.09.15.png

    注意:\color {red} {注意:}

    charvarchar的区别:\color {red} {char和varchar的区别:}

    char类型是长度固定的,比如设置为长度为10,当放入的字符串长度小于10的时候仍然会申请10个字符的长度;\color {red} {char类型是长度固定的,比如设置为长度为10,当放入的字符串长度小于10的时候仍然会申请10个字符的长度;}

    varchar长度是可变的,比如设置为长度为10,当放入的字符串长度小于10的时候会申请字符长度的存储空间\color {red} {varchar长度是可变的,比如设置为长度为10,当放入的字符串长度小于10的时候会申请字符长度的存储空间}

    • 创建表

      语法格式:

       CREATE TABLE 表名(
        字段名称1 字段类型(长度),
        字段名称2 字段类型 注意 最后一列不要加逗号
      );
      
    • 创建与某个表结构相同的表

      语法格式:

        create table 新表名 like 旧表名
      
    • 查看表

      命令说明
      show tables;查看当前数据库中的所有表名
      desc 表名;查看数据表的结构
    • 删除表

      命令说明
      drop table 表名;删除表(永久删除)
      drop table if exists 表名;判断表是否存在,存在删除,不存在不删除
    • 修改表

      语法格式:

        rename table 旧表名 to 新表名
      
    • 修改表的字符集

      语法格式:

        alter table 表名 character set 字符集
      
    • 向表中添加列, 关键字 ADD

      语法格式:

        alert table 表名 add 字段名称 字段类型
      
    • 修改表中列的 数据类型或长度 , 关键字 MODIFY

      语法格式:

        alter table 表名 modify 字段名称 字段类型
      
    • 修改列名称 , 关键字 CHANGE

      语法格式:

        alter table 表名 change 旧列名 新列名 类型(长度);
      
    • 删除列 ,关键字 DROP

      语法格式:

        alter table 表名 drop 列名;
      
  3. DML操作表中的数据

    • 插入数据

      语法格式:

        insert into 表名 (字段名1,字段名2...) values(字段值1,字段值2...);
      
    • 更改数据

      语法格式:

        不带条件的修改:update 表名 set 列名 = 值
        
        带条件的修改:update 表名 set 列名 =where 条件表达式:字段名 =
    • 删除数据

      语法格式:

        删除所有数据:delete from 表名
      
        指定条件 删除数据:delete from 表名 where 字段名 =
  4. DQL查询表中数据

    • 简单查询

      语法格式:

        select 列名 from 表名
      
        查询所有数据:select * from 表名
      
        查询指定字段数据:select 列名1,列名2... from 表名
      
    • 别名查询,使用关键字 as

      语法格式:

        select
           列名1 as ‘别名1’,
           列名2 as ‘别名2’,
           列名3 as ‘别名3’,
           列名4 ‘别名4from 表名;
         
         其中as可以省略
      
    • 使用去重关键字 distinct

      语法格式:

        select distinct 列名 from 表名;
      
    • 运算查询 (查询结果参与运算)

      语法格式:

        sleect 列名1,列名2(列名2 + 1000from 表名
      
    • 条件查询

      语法格式:

        select 列名 from 表名 where 条件表达式
      

      比较运算符

      运算符说明
      > < <= >= = <> !=大于、小于、大于(小于)等于、不等于
      BETWEEN ...AND...显示在某一区间的值 例如: 2000-10000之间: Between 2000 and 10000
      IN(集合)集合表示多个值,使用逗号分隔,例如: name in (悟空,八戒) in中的每个数据都会作为一次条件,只要满足条件就会显示
      LIKE '%张%'模糊查询
      IS NULL查询某一列为NULL的值, 注: 不能写 = NULL

      LIKE '%张‘ :表示以张结尾

      LIKE ’张%‘ :表示以张开头

      LIKE ’_张%‘:表示第二个字是张

      关系运算符

      运算符说明
      And &&多个条件同时成立
      Or ||多个条件任意一个成立
      Not不成立,取反