MySQL
1.mysql
2.MySQL数据表操作之记录的操作与查找
查看数据表结构:
DESC table_name;
SHOW COLUMNS FORM table_name;
插入数据:
INSERT [INTO] table_name [(col_name,......)] VALUE;
查找数据:
SELECT* FROM table_name;
SELECT col_name,... FORM table_name;
3.Mysql基础数据类型之超出范围处理
严格数据模式
SET sql_mode = 'TRADITIONAL';
关闭严格模式
SET sql_mode ='';
3.MySQL字段约束
有时只定义了字段的数据类型还不够,还要设置其他一些附加的属性,如自动增量的设置、自动补0的设置和默认值的设置等一些特殊的设置。下面具体介绍这些特殊字段的属性。
1. UNSIGNED
该属性只能用于设置数值类型,不允许数据列出现负数。如果不需要向某字段中插入负数,则使用该属性修饰可以使该字段的最大存储长度增加一倍。例如,正常情况下数据类型TINYINT的数值范围在128 127,而使用UNSIGNED属性修饰以后最小值为0,最大值可以达到255。
2. ZEROFILL
该属性也只能用于设置数值类型,在数值之前自动用0补齐不足的位数。例如,将5插入-一个声明为int(3) ZEROFILL的字段,在之后查询输出时,输出的数据将是“005"。当给一个字段使用ZEROFIL修饰时,该字段自动应用UNSIGNED属性。
3. AUTO INCREMENT
该属性用于设置字段的自动增量属性,当数值类型的字段设置为自动增量时,每增加条新记录,该字段的值就自动加1,而且此字段的值不允许重复。此修饰符只能修饰整数类型的字段。插入新记录时自增字段可以为NULL、0或留空,这时自增字段自动使用上次此字段的值加1,作为此次的值。插入时也可以为自增字段指定某一非零数值,这时,如果表中已经存在此值将出错;否则使用指定数值作为自增字段的值,井且下次插入时,下个字段的值将在此值的基础上加1。
4. NULL和NOT NULL
默认为NULL,即没有在此字段插入值。如果指定了NOT NULL,则必须在此字段插入值。
5. DEFAULT
可以通过此属性来指定一个默认值,如果没有在此列添加值,那么默认添加此值。例如,在用户表users中,可以将性别字段的默认值设置为“男”。在为该列插入数据时,只在当用户为“女”时才需要指定,否则可以不为该字段指定值,默认值就为“男”。
3.1 MySQL字段约束之主键约束
- 主键约束PRIMARY KEY
- 每张数据表中只能存在一个主键
- 主键保证记录的唯一性
- 主键自动为NOT NULL
- AUTO_INCREMENT必须和PRIMARY KEY 一起使用,但是PRIMARY KEY 不需要
3.2 MySQL字段约束之唯一约束
- 唯一约束UNIQUE KEY
- 唯一约束可以保证记录的唯一性
- 唯一约束的字段可以为空值(NULL)
- 每张数据表可以存在多个唯一约束
3.3 MySQL字段约束之外键约束
- 1.父表和子表必须使用相同的存储引擎,而且禁止使用临时表。
- 2.数据 表的存储引擎只能为InnoDB。
- 3.外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同。
- 4.外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。
- 5.查看索引: SHOW INDEXES FROM tab_ name
3.4 MySQL字段约束之外键约束参照操作
- 1.CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行
格式: ON UPDATE| DELETE CASCADE - 2.SET NUL:从父表删除或更新行,并设置子表中的外键列为NULL。如果使用该选项必须保证子表列没有指定NOT NULL。
- 3.RESTRICT: 拒绝对附表的删除或更新操作
- 4.NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同
4.MySQL字段操作之修改数据表
添加单列
ALTER TABLE tab_ name ADD [COLUMN] col name column_ _definition [FIRST | AFTER col _name]
添加多列
ALTER TABLE tab_ name ADD [COLUMN] (col name column_ difnitie.......
删除列
ALTER TABLE tab_ name DROP [COLUMN] col_ name;
删除多列
ALTER TABLE tab_ name DROP [COLUMN] col_ name,DROP [COLUMN] col_ am.....
添加主键约束
ALTER TABLE tab_ name ADD [CONSTRAINT [symbol] PRIMARY KEY [index_type] (index_ _col_ name)
添加唯一约束
ALTER TABLE tab_ name ADD [CONSTRAINT [symbol] UNIQUE [INDEX|KEY] [index_ name] [index_type](index_ col name.....)
添加外键约束
ALTER TABLE tab_ name ADD [CONSTRAINT [symbol]] FOREIGN KEY (index_name) REFERENCES ftab_name (index_name)
4.1 MySQL字段操作之修改数据表
- 添加/删除默认约束
ALTER TABLE tab_name ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
- 删除主键约束
ALTER TABLE tab_name DROP PRIMARY KEY
- 删除唯一约束
ALTER TABLE tab_name DROP {INDEX|KEY} index_name
- 删除外键约束
ALTER TABLE tab_name DROP FOREIGN KEY fk_symbol
- 修改列定义
ALTER TABLE tab_name MODIFY [COLUMN] col_name comumn_definition [FIRST| AFTER col_name]
- 修改列名称
ALTER TABLE tab_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST | AFTER col_name]
- 修改数据表
方法1:
ALTER TABLE tab_name REBANE [TOIAS] new_tab_name
方法2:
RENAME TABLE tab_name TO new_tab_name[,tab_name2 TO new_tab_name2]...