加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql必读MySQL的增删查改语句用法示例总结

发布时间:2020-12-12 00:51:31 所属栏目:MySql教程 来源:网络整理
导读:《Mysql必读MySQL的增删查改语句用法示例总结》要点: 本文介绍了Mysql必读MySQL的增删查改语句用法示例总结,希望对您有用。如果有疑问,可以联系我们。 1.创建列 ???? MYSQL入门 alter table tablename add colname type not null default '0′; ??? 例:

《Mysql必读MySQL的增删查改语句用法示例总结》要点:
本文介绍了Mysql必读MySQL的增删查改语句用法示例总结,希望对您有用。如果有疑问,可以联系我们。

1.创建列
????MYSQL入门

alter table tablename add colname type not null default '0′;

??? 例:
MYSQL入门

  alter table mmanapp_mmanmedia add appid_id integer not null default 372;

2.删除列
MYSQL入门

  alter table tablename drop column colname;

??? 例:
MYSQL入门

  alter table mmanapp_mmanmedia drop column appid_id;

3.在已经存在的列上创建外键关联
????MYSQL入门

ALTER TABLE yourtablename  ADD [CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name,…)  REFERENCES tbl_name (index_col_name,…)  [ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION}]  [ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION}]

??? 例:
???MYSQL入门

ALTER TABLE mmanapp_mmanmedia ADD CONSTRAINT fk_mdappid FOREIGN KEY(appid_id)

4.删除外键关联:
MYSQL入门

  ALTER TABLE yourtablename DROP FOREIGN KEY fk_symbol;

??? 例:
???MYSQL入门

 ALTER TABLE mmanapp_mmanmedia DROP FOREIGN KEY fk_mdappid

附文档两份:
一.mysql对列和表的相关操作MYSQL入门

增加主键
MYSQL入门

alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment,add primary key (new_field_id);

增加一个新列
MYSQL入门

alter table infos add ex tinyint not null default '0′;

删除列
MYSQL入门

alter table t2 drop column c;

重命名列/改变列类型
MYSQL入门

alter table t1 change a b integer;
alter table t1 change b b bigint not null;
alter table infos change list list tinyint not null default '0′;

重命名表
MYSQL入门

alter table t1 rename t2;

加索引
MYSQL入门

mysql> alter table tablename change depno depno int(5) not null;
mysql> alter table tablename add index 索引名 (字段名1[,字段名2 …]);
mysql> alter table tablename add index emp_name (name);

加主关键字的索引
MYSQL入门

mysql> alter table tablename add primary key(id);

加唯一限制条件的索引
MYSQL入门

mysql> alter table tablename add unique emp_name2(cardnumber);

删除某个索引
MYSQL入门

mysql>alter table tablename drop index emp_name;

二.对表增/删约束关系MYSQL入门

InnoDB允许你用ALTER TABLE往一个表中添加一个新的 外键约束:
MYSQL入门

ALTER TABLE yourtablename
  ADD [CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name,…)
  REFERENCES tbl_name (index_col_name,…)
  [ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION}]
  [ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION}]

记住先创建需要的索引.你也可以用ALTER TABLE往一个表添加一个自引用外键约束.
InnoDB也支持使用ALTER TABLE来移除 外键:
MYSQL入门

ALTER TABLE yourtablename DROP FOREIGN KEY fk_symbol;

当年创建一个外键之时,如果FOREIGN KEY子句包括一个CONSTRAINT名字,你可以引用那个名字来移除 外键.另外,当外键被创建之时,fk_symbol值被InnoDB内部保证.当你想要移除一个外键之时,要找出标记,请使用SHOW CREATE TABLE语句.例子如下:
MYSQL入门

mysql> SHOW CREATE TABLE ibtest11cG
*************************** 1. row ***************************
    Table: ibtest11c
Create Table: CREATE TABLE ibtest11c (
 A int(11) NOT NULL auto_increment,D int(11) NOT NULL default '0′,B varchar(200) NOT NULL default ”,C varchar(175) default NULL,PRIMARY KEY (A,D,B),KEY B (B,C),KEY C (C),CONSTRAINT 0_38775 FOREIGN KEY (A,D)
REFERENCES ibtest11a (A,D)
ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT 0_38776 FOREIGN KEY (B,C)
REFERENCES ibtest11a (B,C)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=INNODB CHARSET=latin1
1 row in set (0.01 sec)
 
mysql> ALTER TABLE ibtest11c DROP FOREIGN KEY 0_38775;

InnoDB解析程序允许你在FOREIGN KEY … REFERENCES …子句中用`(backticks)把表和列名名字围起来.InnoDB解析程序也考虑到lower_case_table_names系统变量的设置.
InnoDB返回一个表的外键定义作为SHOW CREATE TABLE语句输出的一部分:
MYSQL入门

SHOW CREATE TABLE tbl_name;

从这个版本起,mysqldump也将表的正确定义生成到转储文件中,且并不忘记 外键.
你可以如下对一个表显示外键约束:
MYSQL入门

SHOW TABLE STATUS FROM db_name LIKE ‘tbl_name';

外键约束被列在输出的Comment列.
当执行外键检查之时,InnoDB对它照看着的子或父记录设置共享的行级锁.InnoDB立即检查外键约束,检查不对事务提交延迟.
要使得对有外键关系的表重新载入转储文件变得更容易,mysqldump自动在转储输出中包括一个语句设置FOREIGN_KEY_CHECKS为0.这避免在转储被重新装载之时,与不得不被以特别顺序重新装载的表相关的问题.也可以手动设置这个变量:
MYSQL入门

mysql> SET FOREIGN_KEY_CHECKS = 0;
mysql> SOURCE dump_file_name;
mysql> SET FOREIGN_KEY_CHECKS = 1;

如果转储文件包含对外键是不正确顺序的表,这就以任何顺序导入该表.这样也加快导入操作.设置FOREIGN_KEY_CHECKS为0,对于在LOAD DATA和ALTER TABLE操作中忽略外键限制也是非常有用的.
InnoDB不允许你删除一个被FOREIGN KEY表约束 引用的表,除非你做设置SET FOREIGN_KEY_CHECKS=0.当你移除一个表的时候,在它的创建语句里定义的约束也被移除.
如果你重新创建一个被移除的表,它必须有一个遵从于也引用它的外键约束的定义.它必须有正确的列名和类型,并且如前所述,它必须对被 引用的键有索引.如果这些不被满足,MySQL返回错误号1005 并在错误信息字符串中指向errno 150.
MYSQL入门

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读