MySQL数据库学习第二天笔记

1.数据类型(列类型):
    1)所谓的数据类型:对数据进行统一的分类,从系统的角度出发为了能够使用统一的方式进行管理,更好的利用有限空间;
    2)SQL中将数据类型分为三大类:数值类型,时间日期类型,字符串类型;
         1、数值型:都是数值,系统将数值型分为整数型和小数型
            1.整数型:存放整形数据:在SQL中因为更多考虑如何节省磁盘空间,所以系统将整数型又细分为5类 :
                Tinyint :迷你整型1字节    Smallint:小整型2字节    Mediumint : 中整型3字节    Int :标准型 4字节    Bigint :大整型8字节
            2.小数型:带有小数点或超出整数范围的数值类型;在SQL中又把小数型分为两种:浮点型和定点型
                1.浮点型:小数点浮动,精度有限,而且会丢失精度
                2.定点型:小数点固定,精度固定,不会丢失精度
                    浮点型的数据是一种精度型数据,因为超出指定范围后,会丢失精度(自动四舍五入)
                    浮点型:理论分为两种精度:
                            float: 单精度4字节
                            double:双精度8字节
                            插入数据时可以是小数,也可以使科学计数法
                    定点型:Decimal:绝对的保证整数部分不会被四舍五入;
        2、时间日期类型:
            1.datetime :时间日期,格式是yyyy-mm-dd HH:ii:ss ,表示的是1000到9999年,有0值:0000-00-00 00:00:00
            2.date:日期,就是datetime种的date部分
            3.time:时间(段),值某个区间之间,时间到+时间
            4.timestamp:时间戳,并不是时间戳,只是从1970开始的YYYY-mm-dd HH:ii:ss 格式与datetime完全一致
            5.year:年份,两种形式,year(2)和year(4):1901-2156    
        3、字符串类型:
            1.在SQL中,将字符串分为6类:char ,varchar ,text ,blob ,enum ,set 
                1.定长字符串:char ,磁盘(二维表)在定义结构的时候,就已经确定了最终的数据的存储长度
                2.char(L):  L代表length ,可以存储长度,单位为字符,最大长度为255;
                3.char(4):  在UTF8环境下,需要4*3=12字节;
                4.变长字符串:varchar 在分配空间的时候,按照最大的空间分配,但是实际上最终用了多少,是根据具体的数据来确定的;
                5.varchar(L):  L 表示字符长度, varchar(10)在UTF8环境下,10*3+1=31字节
                6.如何选择定长或变长字符串呢? 
                    定长的磁盘空间比较浪费,但是效率高,如果数据基本长度都一样,就用定长;例子:身份证,电话号码,电话号码
                    变长的磁盘空间比较节省,但是效率低,如果数据不能确定长度,例子:姓名,地址等;
                7.文本字符串:
                    1.如果数据量非常大,通常说超过255个字符会使用文本字符串;
                    2.文本字符串根据存储的数据格式来分类:text, blob;
                        text:存储文字(二进制数据实际上都是存储路劲)
                        blob:存储二进制数据
                8.枚举字符串:enum
                    1.事先将所有可能出现的结果都设计好了,实际上存储的数据必须是定好的数据中的一个
                    2.定义:enum  例如:(“男”“女”  “不男不女”“保密”)
2.列属性:
    1)列属性:真正的约束字段是数据类型,但是数据类型的约束很单一,需要有一些额外的约束,来更加保证数据的合法性
    2)列属性有很多:NULL/NOT NULL  ,default , Primary  key  , auto_increment  ,comment  
3.空属性:
    1)两个值:NULL(默认的)和NOT NULL(不为空)
    2)虽然默认的,数据库基本都是字段为空,但是实际上在真是开发的时候,尽可能的要保证所有数据都不应该为空:空数据没有意义,空数据没办法参加运算。
4.列描述:
    1)列描述:comment  ,描述,没有实际含义:是专门用来描述字段,会根据表创建语句保存:用来给程序员(数据库管理员)进行了解的;
5.默认值:
    1)默认值:某一种数据会经常性的出现某个具体的值,可以在一开始就指定好:在需要真是数据的时候,用户可以选择性的使用默认值。
    2)默认值关键字:default  ,默认值得生效:使用,在数据进行插入的时候,不给改字段赋值,可以用关键字:default代替值;
6.字段属性:
    1)主键,唯一键和自增长;
    2)主键:primary key ,主要的键,一张表里只能有一个字段可以是用对应的键,用来唯一的约束该字段里面的数据,不能重复,这种键称为主键,一张表最多只能有一个主键;
        1、SQL中操作有很多种方式可以给表增加主键,大体可以分为3种:
            方案一:创建表的时候在字段后面直接跟primary key 关键字,主键本身不予许为空;优点:非常直接,缺点:只能使用一个字段作为主键
            方案二:在创建表的时候,在所有的字段之后,使用primary key 来创建主键(如果有多个字段作为主键,可以是复合主键)
            方案三:当表创建好了以后再额外的追加主键,可以通过修改表字段属性,也可以直接追加:
                语法:alter table  表名  add primary key(字段列表);前提表中的字段对应的数据本身是独立的(不重复)
                    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值