-
MySQL修改数据表(添加和删除列)
添加单列:ALTER TABLE 表名 ADD [COLUMN] 列名 列定义 [FIRST(添加这一列放在指定列前方)|AFTER 列名(添加这一列放在指定列的后面)]。(如果省略FIRST或者AFTER则插入表最后面)
添加多列:ALTER TABLE 表名 ADD [COLUMN] (列名,列定义,...)
1、添加的列需要放置在();
2、不能指定位置关系,只能在数据表的下方。
删除单列:ALTER TABLE 表名 DROP [COLUMN] 列名
删除多列:ALTER TABLE 表名 DROP 列名,DROP,列名2
查看全部 -
MySQL表级约束与列级约束(所有的约束不一定都存在表级约束和列级约束,例如NOT NULL 、 DEFAULT不存在表级约束,主键、外键、唯一都存在)
列级约束:对一个字段建立的约束,既可以在列定义时声明,也可以在列定义后声明。
表级约束:对两个或两个以上的字段建立的约束,只能在列定义后声明(所有的列定义后,在后面使用语法进行约束的建立)。
查看全部 -
MySQL外键约束的参照操作(指进行外键约束的创建以后,更新父表的时候,子表是否也进行相应操作,实际开发中很少使用物理的外键约束(只有InnoDB这种引擎支持,不支持myisam引擎),常使用逻辑的外键约束[定义两张表的结构时,按照某种存在的结构方式去定义,但不使用FOREIGN KEY关键字去定义)
1、CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行。
2、SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL。
3、RESTRICT:拒绝对父表的删除或更新操作。
4、NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同。
CASCADE的删除案例:(子表中外键列添加ON DELETE CASCADE,父表进行删除时,子表也进行相应删除)
注意:插入记录时,应该先插入父表的记录,再插入子表的记录。
查看全部 -
MySQL外键约束
语法:FOREIGN KEY (外键列名称) REFERENCES 父表名称 (参照列名称)。
150错误:子表中的外键列和父表中的参照列数据类型不一致。
约束概念:
1.约束保证数据的完整性和一致性。
2.约束分为表级约束和列级约束(针对字段数目的多少决定的,针对一个字段约束,称为列级约束。针对两个或者两个以上的约束,称为表级约束)
3.约束按功能划分:
NOT NULL(非空约束)
PRIMARY KEY (主键约束)
UNIQUE KEY (唯一约束)
DEFAULT (默认约束)
FOREIGN KEY (外键约束)
外键约束:保持数据一致性、完整性、实现一对一或者一对多关系。(这也是为什么称为MySQL关系型数据库的原因)
外键约束的要求
1.父表(子表所参照的表)和子表(具有外键列的表)必须使用使用相同的存储引擎,而且禁止使用临时表。
2.数据表的存储引擎只能为InnoDB。
3.外键列(加FOREIGN KEY关键词的一列)和参照列(外键列参照的一列)必须具有相似的数据类型,如果是数字数据类型,则数字长度或者是否有符号位必须相同;如果为字符数据类型长度可以不同。
4.外键列和参照列(主键在创建的同时,会自动创建索引seq_in_index)必须创建索引。如果外键列不存在索引的话,MySQL将自动创建。
编辑数据库的默认存储引擎(实现1和2的要求,修改完需要重启MySQL服务)
MySQL配置文件(my.ini):default-storage-engine=INNODB。
查看数据表的存储引擎和字符集:SHOW CREATE TABLE 表名。
查看数据库是否创建索引:SHOW INDEXES FROM 表名。(SHOW INDEXES FROM 表名\G以网格显示索引)如果seq_in_index:后有值,说明创建了索引。
查看全部 -
MySQL的默认约束
DEFAULT:插入记录时,如果没有明确为字段赋值,系统自动赋予该字段默认值。
查看全部 -
MySQL的唯一约束
UNIQUE KEY:保证记录的唯一性。
特点1:字段可以存在空值(NULL)。(如果保存了多个NULL,最终只会保留1个)
特点2:一张表可以存在多个唯一约束。
查看全部 -
MySQL初涉主键约束
PRIMARY KEY:保证了记录的唯一性,对于整形数据类型如果使用了AUTO_INCREMENT可以不赋值。
特点1:主键自动为NOT NULL。
特点2:主键不一定必须和AUTO_INCREMENT一起使用。
特点3:一张数据表只可以存在一个主键。
查看全部 -
MySQL自动编号(保证了每一条记录的唯一性)
自动编号:为某一字段(必须为数值型,如果为浮点数,小数位数一定要为0)添加AUTO_INCREMENT属性,针对主键这一属性的特性。
特点1:必须与主键组合使用。
特点2:默认情况下,起始值为1,每次增量为1.
查看全部 -
MySQL字段的空值与非空
NULL:字段值可以为空,字段默认为NULL。
NOT NULL:字段值不允许为空,如果为空可能会产生错误。
查看全部 -
数据表的记录的插入与查找
记录插入语法:INSERT [INTO] 表名 [(列名,...)] VALUES (val,...);
如果省略列名,则需要为每一个字段进行赋值。
记录查询语法(基本):SELECT 表达式 FROM 表名;
SELECT * FROM 表名;(查询所有)
查看全部 -
MySQL查看数据表
查看数据表:SHOW TABLES [FROM 数据库名] [LIKE 'pattern' |WHERE expr]。(可以查看某一数据库下的数据表)
查看全部 -
MySQL创建数据表
数据表(或称表):数据库最重要的组成部分之一,是其他对象的基础。
使用数据库:USE 数据库名。
显示当前正在打开的数据库:SELECT DATABASE();
创建数据表:CREATE TABLE [IF NOT EXISTS] 表名(
列名 数据类型,
...
)
整形无符号关键字:UNSIGNED。
查看全部 -
MySQL数据类型之字符型
CHAR:定长类型,数据不足指定字节数,补空格。
VARCHAR:变长类型,数据的字节就是存储的字节。
查看全部 -
MySQL数据类型之日期时间型
DATE:支持1000年1月1号——9999年12月31号。
DATETIME:支持1000年1月1号0点——9999年12月31号23点59分59秒。
TIMESTAMP:1970年1月1号0点——2037年。
查看全部 -
MySQL数据类型之浮点型
查看全部
举报