各位用户为了找寻关于MySQL的增删查改语句用法示例总结的资料费劲了很多周折。这里教程网为您整理了关于MySQL的增删查改语句用法示例总结的相关资料,仅供查阅,以下为您介绍关于MySQL的增删查改语句用法示例总结的详细内容
1.创建列
? 1alter
table
tablename
add
colname type
not
null
default
'0′;
例:
? 1alter
table
mmanapp_mmanmedia
add
appid_id
integer
not
null
default
372;
2.删除列
? 1alter
table
tablename
drop
column
colname;
例:
? 1alter
table
mmanapp_mmanmedia
drop
column
appid_id;
3.在已经存在的列上创建外键关联
? 1ALTER
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
}]
例:
? 1ALTER
TABLE
mmanapp_mmanmedia
ADD
CONSTRAINT
fk_mdappid
FOREIGN
KEY
(appid_id)
4.删除外键关联:
? 1ALTER
TABLE
yourtablename
DROP
FOREIGN
KEY
fk_symbol;
例:
? 1ALTER
TABLE
mmanapp_mmanmedia
DROP
FOREIGN
KEY
fk_mdappid
附文档两份: 一.mysql对列和表的相关操作
增加主键
? 1alter
table
tabelname
add
new_field_id
int
(5) unsigned
default
0
not
null
auto_increment ,
add
primary
key
(new_field_id);
增加一个新列
? 1alter
table
infos
add
ex tinyint
not
null
default
'0′;
删除列
? 1alter
table
t2
drop
column
c;
重命名列/改变列类型
? 1 2 3alter
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′;
重命名表
? 1alter
table
t1 rename t2;
加索引
? 1 2 3mysql>
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
);
加主关键字的索引
? 1mysql>
alter
table
tablename
add
primary
key
(id);
加唯一限制条件的索引
? 1mysql>
alter
table
tablename
add
unique
emp_name2(cardnumber);
删除某个索引
? 1mysql>
alter
table
tablename
drop
index
emp_name;
二.对表增/删约束关系
InnoDB允许你用ALTER TABLE往一个表中添加一个新的 外键约束:
? 1 2 3 4 5ALTER
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来移除 外键:
? 1ALTER
TABLE
yourtablename
DROP
FOREIGN
KEY
fk_symbol;
当年创建一个外键之时,如果FOREIGN KEY子句包括一个CONSTRAINT名字,你可以引用那个名字来移除 外键。另外,当外键被创建之时,fk_symbol值被InnoDB内部保证。当你想要移除一个外键之时,要找出标记,请使用SHOW CREATE TABLE语句。例子如下:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21mysql> 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语句输出的一部分:
? 1SHOW
CREATE
TABLE
tbl_name;
从这个版本起,mysqldump也将表的正确定义生成到转储文件中,且并不忘记 外键。 你可以如下对一个表显示外键约束:
? 1SHOW
TABLE
STATUS
FROM
db_name
LIKE
‘tbl_name';
外键约束被列在输出的Comment列。 当执行外键检查之时,InnoDB对它照看着的子或父记录设置共享的行级锁。InnoDB立即检查外键约束,检查不对事务提交延迟。 要使得对有外键关系的表重新载入转储文件变得更容易,mysqldump自动在转储输出中包括一个语句设置FOREIGN_KEY_CHECKS为0。这避免在转储被重新装载之时,与不得不被以特别顺序重新装载的表相关的问题。也可以手动设置这个变量:
? 1 2 3mysql>
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。