MYSQL学习笔记(二)

 mysql数据类型:

 整型:

数据类型字节
TINYINT(有符号-128~127 无符号0~255)1
SMALLINT(有符号-32768~32767 无符号0~65535)2
MEDIUMINT(有符号-8388608~8388607 无符号0~16777215)3
INT(有符号-2的31次方到2的31次方减1  无符号2的32次方减1)4
BIGINT8

   浮点型:

数据类型字节
FLOAT[(M,D)]M为数字总位数,D是小数点后面的位数,如省略,根据硬件允许的限制来保存,数据类型精确到大约小数点后7位4
DOUBLE[(M,D)]8

日期:

日期类型范围
YEAR年份yyyy
TIME时间(hh-mm-ss)
DATE日期(yyyy-mm-dd)
DATETIME日期与时间組合(yyyy-mm-dd hh-mm-ss)
TIMESTAMPyyyymmddhhmmss

字符型:

数据类型最大长度
CHAR(M)255
VARCHAR(M)255
TINYTEXT255
TEXT65535
MEDIUMTEXT2^24 - 1
LONGTEXT2^32 - 1
ENUM(‘value1’, ‘value2’, …)集合最大数目为65535
SET(‘value1’, ‘value2’, …)集合最大数目为64

创建数据表:

CREATE TABLE [IF NOT EXISTS] table_name(column_name data_type,...)

 查看数据表的列表:

 SHOW TABLES [FROM db_name] [LIKE 'prttern' | WHERE expr]

 查看数据表的结构:

 SHOW COLUMNS FROM tbl_name


插入数据:

INSERT [INTO] tbl_name [(col_name,...)] VALUES(val,...)



记录查找:

SELECT expr,... FROM tbl_name


约束:

    1,约束保证数据的完整性和一致性

    2,分为表级约束和列级约束

    3,类型包括

            NOT NULL(非空约束)

            PRIMARY KEY(主键约束)

            UNIQUE KEY(唯一约束)

            DEFAULT(默认约束)

            FOREIGN KEY(外键约束) 

空值与非空值注意:需先写数据类型,再注明数据是否能为空;

自动编号:AUTO_INCREMENT


创建表失败,原因是id字段必须为主键才能使用自动编号.

主键约束:PRIMARY KEY

    每张数据表只能存在一个主键

    主键保证数据的唯一性

    主键自动为NOT NULL



注意:AUTO_INCREMENT必须与PRIMARY KEY一起使用,但PRIMARY KEY不一定与AUTO_INCREMENT一起使用


唯一约束:UNIQUE KEY

    唯一约束保证数据的唯一性

    唯一约束的字段可为空NULL

    每张表可存在多个唯一约束


默认约束:DEFAULT

    当插入记录时,如没有明确赋值,则使用默认值


外键约束:FOREIGN KEY

    保持数据的唯一性,完整性,实现一对一或者多对多的关系。

    要求:

            1,父表和子表要使用相同的存储引擎,禁止使用临时表

            2, 数据表的存储引擎只能为InnoDB

            3,外键列和参照列必须具有相似的数据类型。数字长度或是否有符号位必须相同,字符的长度可以不同

            4,外键列和参照列必须创建索引,如外键列不存在索引,MYSQL将自动创建

首先 在my.ini文件里面设置MYSQL的默认存储引擎:

                       default-storage-engine=INNODB

   外键约束的参照操作

    1,CASCADE :从父表删除或更新将自动更新子表中匹配的行

    2,SET NULL:从父表删除或更新行,将设置子表中的外键列为NULL,前提该列的字段约束不是NUT NULL

    3,RESTRICT:拒绝对父表的删除或更新操作

    4,NO ACTION:标准SQL的关键字,在MYSQL中与RESTRICT相同

    注:因引擎必须为INNODB 所以外键约束在实际开发中很少使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值