美文网首页
表的数据类型即sql总结-基础篇

表的数据类型即sql总结-基础篇

作者: 编程人生 | 来源:发表于2022-01-05 21:38 被阅读0次

    表的数据类型即sql总结

    在MySql数据库管理系统中,提供数值类型(整数型,浮点数,定点数类型,二进制类型),日期和时间类型以及字符串类型.

    例如 Int 型占4个32位,就比Tinyint 型占1个字节.

    时间类型:

    Date类型用在需要显示年月日的情况,在输入时,年月日中间的符号"-"是否加上第可以

    Time类型用于只需要时间值的情况

    DateTime用于需要显示年与日和时间的情况,年月日中的符号"-"和时分秒中的符号":"是否加上都可以.

    Timestamp 的显示格式与Datetime一样,只是Timestap的列值范围小于Datetime类型.另外一个最大不同是

    Timestamp的值与时区有关.

    字符串类型

    Char(n)类型和Varchar(n)类型的区别是Char(n)用于存储定长字符串,如果存入的字符串少于n个,但仍占n个字符的空间

    ,而Varchar(n)用于存储定长可变的字符串,其占用的空间长度为实际长度加一个字符.

    Text类型(Tinytext Mediumtext 和 Longtext)用于保存非二进制字符串,如文章内容 评论.

    Enum类型是一种枚举类型

    Bit(n)类型是为字段类型

    Binary类型和Varbinary类型用于存放二进制字符串.

    BLOB, 即二进制大对象.是一个可以存储二进制文件的容器.

    唯一性约束:

    用于保证列中不会出现重复数据,在一个数据表上可以定义多个唯一性约束,定义了唯一性约束的列可以去空值.

    在MySql中,主键约束和唯一性约束的区别是:唯一约束的字段可以为NULL,可以重复加入含有NULL的记录,但主键字段不能

    为null;一个表中只能定义一个主键约束,但可以定义多个唯一约束.

    定义唯一约束的语法规则:

    字段名 数据类型 UNIQUE

    默认约束:

    默认约束用于指定某列的默认值.在MySql的表中,可以给列设置默认值,如果某列已设置了默认值,用户在插入记录时,没有

    给该列输入数据,则系统自动将默认值填入该列.

    语法规则:

    字段名 数据类型 DEFAULT 默认值

    统计功能分类查询

    GROUP_CONCAT(列名) 可以显示出每个分组中指定的字段值

    select group_concat(列名) from 表名 where 条件  group by 列名1[,...n]

    多字段分类查询

    select 字段列表 from 表名

    where 条件

    group by 列名1, 列名2, ....

    在GROUP BY 子句中 ,按照列出的列名先后次序进行分类

    采用HAVING 子句的分类查询

    MYSQL 中提供了 HAVING 来实现条件限制分组数据记录.

    语法规则:

    select 字段列表 from 表名

    where 条件

    group by 列名1, 列名2, ....

    having 条件;

    多表查询:

    内连接查询:分为自连接,等值连接和非等值连接

    1.自连接 特殊的等值连接,所谓自连接就是指表与其自身进行连接.

    语法形式分为MySql 自身的语法形式, 可以采用ANSI连接的语法形式

    mysql语法形式

    select x.姓名 , x.性别 , z.专业名 from xsqk x, xsqk z where x.学号 = z.学号;

    ANSI语法形式

    select x.姓名 , x.性别 , z.专业名 from xsqk x inner join xsqk z on x.学号 = z.学号;

    2.等值连接:就是在关键字where后面的匹配条件中,利用等于关系符"="使得两张表中相同字段的值相等作为连接条件来实现的连接

    3.不等值连接:不等值连接与等值连接相比,就是把匹配的关系运算符"="改为">,>=,<,<=和!="

    外连接查询:

    1)左外连接:就是查询结果中显示左表中所有记录,以及右表中符合条件的记录,使用的连接关键字是LEFT JOIN.

    2)右外连接:就是在查询结果中显示右表中所有记录,以及左表中符合条件的记录,使用的连接关键字是 RIGHT JOIN

    由于连接查询效率不高, 因此出现了比连接查询性能更好的子查询.

    子查询:是指在一个SELECT语句中再包含一个SELECT语句,外层的SELECT语句称为外部查询,内层的SELECT语句称为内部查询或者

    子查询.

    子查询被包含在WHERE子句中作为条件,在执行时通常先执行子查询的SQL语句得到查询结果,然后再将其作结果作为条件完成查询的操作.

    子查询分为以下几种:

    1.使用比较运算符进行子查询

    2.使用in的子查询

    3.使用ANY的子查询

    有三种方式:=ANY >ANY  <ANY

    =ANY: 功能和IN子查询一样

    >ANY: 表示比子查询中返回的数据记录中最小值要大

    <ANY: 表示比子查询中返回的数据记录中最大值要小的记录                                         

    4.使用ALL的子查询,有两种方式>ALL(>=ALL)和<ALL(<=ALL)

    >ALL(>=ALL)

    5.使用EXISTS的子查询

    合并查询结果

    语法规则:

    select 列名 from 表名 1 

    union[all]

    select 列名 from 表名 2

    union 和 union all 的区别: 使用union 连接查询时结果时,会去掉相同行;而 union all 连接的时候, 不会去掉相同行.

    将查询结果输出到其他表

    在对表进行查询时,可以将查询结果保存到一个新表中,这种方法常用于创建表的副本或创建临时表.新表的列为SELECT子句指定的列,数据类型为原表的数据类型,属性方面保留了非空属性和默认值属性,忽略如主键, 外键约束等其他属性.

    1.输出前其他表未创建.

    CREATE TABLE 新表 SELECT 列名 列表 FROM 原表 WHERE 条件;

    2.输出前其他表已经存在

    语法规则:

    INSERT INTO 其他表 SELECT 列名 列表 FROM 原表 WHERE 条件;

    这里需要注意的是, 如果插入的表有主键约束, 则在通过查询输入时与其他表的输入一样, 主键不能有重复值.

    相关文章

      网友评论

          本文标题:表的数据类型即sql总结-基础篇

          本文链接:https://www.haomeiwen.com/subject/jhikcrtx.html