MySQL 表操作

MySQL修改表名称

MySQL提供修改表名称语法如下:

  1. rename table tb to tb1;
  2. alter table tb rename to tb1;
  3. alter table tb rename as tb1;

以上三种语法都可以实现修改MySQL表名称。

注意:
修改表名称有风险,如果应用服务仍然在访问该表,直接修改表名称,会导致应用服务报错,引起生产事故,不建议直接在生产环境修改表名称,除非真的确定有把握。

MySQL查询数据select

一、简单查询
查询表的所有字段:
select * from table_name;
查询指定字段:
select name,age from table_name;
查询表中记录总数:
select count(*) from table_name;
二、带where条件的查询
查询符合指定条件的记录:
select * from table_name where name=’Tom’;
多个条件AND查询:
select * from table_name where name=’Tom’ and age > 18;
多个条件OR查询:
select * from table_name where name=’Tom’ or name = ‘Bill’;
多个条件IN查询,与上例OR查询等同:
select * from table_name where name in (‘Tom’, ‘Bill’);
三、limit offset查询分页,限制最大返回记录数
最多只返回前10条记录
select * from table_name limit 10;
跳过前20之后取10条记录,这里20是offset,10是limit。
select * from table_name limit 20,10;
也可以显式地使用limit offset关键字,如下:
select * from table_name limit 10 offset 20;

MySQL更新数据update

MySQL使用update语法来更新表中的数据,下面介绍一些常见的update用法。

1、update语法

update table_name set field1=value1,field2=value2,…,fieldN=valueN [where clause]

如果没有指定where子句,则会将表中所有数据更新,谨慎使用,一不小心误更新数据,恢复起来很麻烦。

2、update示例

2.1 更新表中所有数据
update table_name set age = 20;

2.2 更新满足条件的数据
update table_name set age = 20 where id=1;

2.3 更新字段值,在原有值基础上加1
update table_name set age=age+1;

2.4 limit限制更新的记录数
update table_name set age=age+1 limit 10;

MySQL删除数据delete

MySQL使用delete语法来删除表中的数据,下面介绍一些常见的delete用法。

1、delete语法

delete from table_name [where clause]

如果没有指定where子句,则会将表中所有数据删除,谨慎使用,一不小心误删数据,恢复起来很麻烦。

2、delete示例

2.1 删除表中所有数据
delete from table_name;

2.2 删除满足条件的数据
delete from table_name where id=1;

2.3 limit限制删除的记录数
delete from table_name limit 10;

注:
删除全表数据,不建议使用delete 不加where条件,因为在表数据量很大的情况下,执行非常慢,且会导致严重的MySQL主从复制延迟。建议使用truncate table table_name; 进行全表数据删除。

MySQL插入数据insert

MySQL 使用 insert into 语法来向表中插入数据,下面来介绍几种常见的MySQL 插入数据的用法。

一、insert into values 语法

语法:
insert int table_name (field1,field2,…fieldN) values (value1,value2,…valueN);

示例:
insert into table_name(name, age) values(‘Tom’, 20);

一条SQL插入多条记录:
insert into table_name(name, age) values(‘Tom’, 20), (‘Bill’, 21);

不指定字段名称:
insert into table_name values(‘Tom’, 20), (‘Bill’, 21);;

二、insert into select

语法:
insert into table_name (field1,field2,…fieldN) select value1,value2,…valueN;

示例:
insert into table_name(name,age) select ‘Tom’, 20;

不指定字段名称:
insert into table_name select ‘Tom’, 20;

MySQL创建删除表

表是关系型数据库的核心,通常一个表包括字段、主键、索引等等,下面将介绍如何在MySQL中创建、删除表。

一、创建表:

创建表示例如下:

CREATE TABLE tb (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(50) DEFAULT NULL,
age int(11) NOT NULL,
PRIMARY KEY (id),
KEY idx_name(name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

如果表已经存在,则会报错,加上 if not exists 语法可以避免报错,表示只有在表不存在的条件下进行创建。示例如下:

CREATE TABLE IF NOT EXISTS tb (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(50) DEFAULT NULL,
age int(11) NOT NULL,
PRIMARY KEY (id),
KEY idx_name(name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

二、删除表:

删除表示例如下:

drop table tb;

删除表也可以使用if exists语法,来避免删除一个不存在的表时报错。示例如下:

drop table if exists tb;

发表评论