MySQL心得3--命令行操作表数据(二)

2014-11-24 09:39:23 · 作者: · 浏览: 1
有记录
从单个表中删除,语法格式:
Delete [low_priority] [quick] [ignore] from表名
[where where_definition] [orderby...] [limit row_count]
说明:
● quick修饰符:可以加快部分种类的删除操作的速度。
● from子句:用于说明从何处删除数据,后跟要删除数据的表名。
● where子句:where_definition中的内容为指定的删除条件。如果省略where子句则删除该表的所有行,where子句后面详细介绍
●order by子句:各行按照子句中指定的顺序进行删除,此子句只在与limit联用时才起作用。
●limit子句:用于告知服务器在控制命令被返回到客户端前被删除的行的最大值。
6. 从多个表中删除行,语法格式:
delete [low_priority] [quick] [ignore] 表名[.*] [,表名 [.*] ...] from table_references [wherewhere_definition]
或:
delete [low_priority] [quick] [ignore]
from tbl_name[.*] [, tbl_name[.*] ...]
Using table_references [where where_definition]
说明:对于第一种语法,只删除列于from子句之前的表中对应的行。对于第二种语法,只删除列于from子句之中(在using子句之前)的表中对应的行。作用是,可以同时删除多个表中的行,并使用其他的表进行搜索。
例子:
假设有3个表t1、t2、t3,它们都含有id列。要删除t1中id值等于t2的id值的所有行和t2中id值等于t3的id值的所有行,使用如下语句:
delete t1, t2
from t1, t2, t3
where t1.id=t2.id and t2.id=t3.id;
或: www.2cto.com
Delete from t1, t2
using t1, t2, t3
where t1.id=t2.id and t2.id=t3.id;
7. 使用truncate table语句将删除指定表中的所有数据,因此也称其为清除表数据语句。
语法格式:
truncate table 表名;
说明:由于TRUNCATETABLE语句将删除表中的所有数据,且无法恢复,因此使用时必须十分小心。
truncate table 在功能上与不带where子句的delete语句相同,二者均删除表中的全部行。但 truncate table比delete速度快,且使用的系统和事务日志资源少。delete语句每次删除一行,并在事务日志中为所删除的每行记录一项。而truncate table通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。使用 truncate table,auto_increment计数器被重新设置为该列的初始值。
注意:对于参与了索引和视图的表,不能使用 truncate table删除数据,而应使用delete语句。
8. 修改记录(更新记录)
要修改表中的一行数据,可以使用update语句,update可以用来修改一个表,也可以修改多个表。简要格式:
update 表名
set 字段名1=值1 [,字段名2=值2.。。。]
where 条件
修改单个表,语法格式:
update[low_priority] [ignore] 表名
set col_name1=expr1 [, col_name2=expr2 ...]
[where where_definition]
[order by ...] [limit row_count]
说明:
set子句:根据where子句中指定的条件对符合条件的数据行进行修改。若语句中不设定where子句,则更新所有行。col_name1、col_name2…为要修改列值的列名,expr1、expr2…可以是常量、变量或表达式。可以同时修改所在数据行的多个列值,中间用逗号隔开。
9. 修改多个表,语法格式:
update [low_priority] [ignore] table_references
set col_name1=expr1 [, col_name2=expr2 ...]
[where where_definition]
说明:table_references中包含了多个表的联合,各表之间用逗号隔开。
10. 按SQL包的格式导进来:source SQL包路径;
显示表的记录:select * from 表名; www.2cto.com
插入记录时,除了数值类型不用加引号,其他类型都要加单引号(比如:char、date等)
11. show语句
show tables或show tables from 库名:显示当前数据库中所有表的名称。
show databases:显示MySQL中所有数据库的名称。
show columns from 表名 from库名或show columnsfrom 库名.表名:显示表中列的名称。
show grants for user_name:显示一个用户的权限,显示结果类似于grant命令。
show index from table_name:显示表的索引。
show staus:显示一些系统特定资源的信息,例如,正在运行的线程数量。
show variables:显示系统变量的名称和值。
show processlist:显示系统中正在运行的所有进程,也就是当前正在执行的查询。大多数用户可以查看他们自己的进程,但是如果他们拥有process权限,就可以查看所有人的进程,包括密码。
show table status:显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间。
show privileges:显示服务器所支持的不同权限。
show create database 库名:显示创建某一个数据库的create database语句。
show create table 表名:显示创建一个表的create table语句。
show events:显示所有事件的列表。
show innoDB status: