• 124复习前一天的内容


    一、含义
    union:合并、联合,将多次查询结果合并成一个结果
    二、语法
    查询语句1
    union 【all】
    查询语句2
    union 【all】
    ...

    三、意义
    1、将一条比较复杂的查询语句拆分成多条语句
    2、适用于查询多个表的时候,查询的列基本是一致的


    四、特点
    1、要求多条查询语句的查询列数必须一致
    2、要求多条查询语句的查询的各列类型、顺序最好一致
    3、union默认去重,union all包含重复项


    语法: 执行顺序
    select 查询列表 #7
    from 表1 别名 #1
    连接类型 join 表2 #2
    on 连接条件 #3
    where 筛选 #4
    group by 分组列表 #5
    having 筛选条件 #6
    order by 排序列表 #8
    limit 起始条目索引,条目数 #9


    插入:
    一、方式一
    语法:
    insert into 表名 (字段名,...) values (值,...);
    特点:
    1.要求值的类型和字段的类型要一致或兼容
    兼容:如果是int类型的数据,插入'123'不会报错.
    原因在于'123'可以隐式地转换成int类型的123。
    但是类似'john'不能转换成int类型会报错
    2、字段的个数和顺序不一定与原始表中的字段个数和顺序一致,但必须保证值和字段一一对应
    3、假如表中有可以为null的字段,注意可以通过以下两种方式插入null值
    ①字段和值都省略
    ②字段写上,值使用null

    二、方式二
    语法:
    insert into 表名 set 字段=值,字段=值...;


    两种方式的区别:
    ①方式一支持一次插入多行,语法如下:
    insert into 表名 【(字段名,...)】 values
    (值,...),
    (值,...),
    ...;
    ②方式一支持子查询,语法如下:
    insert into 表名
    查询语句;


    一、修改单表的记录
    语法:
    update 表名 set 字段=值,字段=值,... 【where筛选条件】;

    二、修改多表的记录【补充】
    语法:
    update 表1 别名
    left outer|right outer|inner join 表2 别名
    on 连接条件
    set 字段=值,字段=值,...
    【where 筛选条件】;


    删除表:

    方式一:使用delete
    一、删除单表的记录
    语法:
    delete from 表名 【where 筛选条件】 【limit条目数】;
    二、级联删除【补充】
    语法:
    delete 表1的别名,表2的别名
    from 表1
    left outer|right outer|inner join 表2
    on 连接条件
    【where 筛选条件】;

    方式二:使用truncate
    语法:truncate table 表名;

    两种方式的比较【面试题】
    1.truncate删除后,如果再插入,标识列(自增长列)从1开始
    delete删除后,如果再插入,标识列从断点开始
    2.delete可以添加筛选条件
    truncate不可以添加筛选
    3.truncate效率较高
    4.truncate没有返回值(0行受影响),delete可以返回受影响的行数
    5.truncate可以不可以回滚,delete可以回滚


    DDL语言
    一、创建库
    create database 【if not exists】 库名 【character set 字符集名】

    二、修改库名
    安全:
    ①先关停数据库服务
    ②找到数据库data文件夹下对应的数据库文件后,直接重命名。然后再启动服务

    alter database
    三、删除库
    drop database 【if exists】 库名;


    一、创建表
    create table 【if not exists】表名(
    字段名 字段类型 【约束】,
    字段名 字段类型 【约束】,
    。。。
    字段名 字段类型 【约束】
    );
    二、修改表
    1.添加列
    alter table 表名 add column 列名 类型【first|after 字段名】;
    添加的列默认放在所有列的最后。
    如果要将添加列放在所有字段之前,加上first。 #不支持last
    放在指定的列之后,用after 字段名。

    2.修改列的类型或约束
    alter table 表名 modify column 列名 新类型 【新约束】;

    3.修改列名
    alter table 表名 change column 旧列名 新列名 类型;

    4.删除列
    alter table 表名 drop column 列名;

    5.修改表名
    alter table 表名 rename 【to】新表名;

    三、删除表
    drop table 【if exists】 表名;

    四、复制表
    1.复制表的结构
    create table 表名 like 旧表;

    2.复制表的结构+数据
    create table 表名
    select 查询列表 from 旧表【where筛选】;


    一、数值型
    1.整型
    tinyint smalint mediumint int/integer bigint
    1 2 3 4 8

    特点:
    ①都可以设置无符号和有符号,默认有符号,通过unsigned设置无符号
    ②如果超出了范围,会报out of range异常,插入临界值
    ③长度可以不指定,默认会有一个长度
    长度代表显示的最大宽度,如果不够则左边用0填充,
    但需要搭配zerofill,并且默认变为无符号整型


    二、浮点型
    定点数:decimal(M,D)
    浮点数:double(M,D)

    特点:
    ①M代表整数部位+小数部位的个数,D代表小数部位
    ②如果超出范围,则报out of range异常,并且插入临界值
    ③M和D都可以省略,但对于定点数,M默认为10,D默认为0
    ④如果精度要求较高,则优先考虑定点数


    三、字符型
    char varchar binary varbinary enum set text blob

    char:固定长度的字符,写法为char(M),长度不能超过M,其中M可以省略,默认为1
    varchar:可变长度的字符,写法为varchar(M),最大长度不可以省略


    四、日期型
    year年
    date日期
    time时间
    datetime 日期+时间 8byte #可以只提供日期,则时间默认为00:00:00
    timstamp 日期+时间 4byte 比较容易受时区、语法模式、版本的影响,更能反映当前时区的真实时间

     

  • 相关阅读:
    Android studio 3+版本apk安装失败问题
    解决华为手机图片选择无效及产生的open failed: EACCES (Permission denied)错误
    Caused by:java.lang.IllegalStateException at android.media.MediaPlayer._setDataSource(Native Method)
    android尺子的自定义view——RulerView
    自定义shareSDK的验证码短信内容
    解决java.lang.IllegalStateException: The application’s PagerAdapter changed the adapter’s content
    解决Android 7.0 App内切换语言不生效的问题
    ClassNotFoundException和NoClassDefFoundError的解决办法
    viewpager+fragment滑动切换卡顿问题
    ios的并发队列控制库
  • 原文地址:https://www.cnblogs.com/tan-y-q/p/10602682.html
Copyright © 2020-2023  润新知