数据表简单操作(注意:语句后要有分号)
1、显示某个数据库中的所有表:
show tables;
2、显示数据表的结构:desc 表名;
示例:
desc personTable;
或:show columns from 表名;
示例:
show columns from personTable;
3、创建数据表:
(1)设置主键primary key
唯一性:create tabel 表名(字段名称 字段类型, ……);
示例:
create table personTable (personID int, name varchar(20), gender varchar(10), primary key(personID));
或判断表是否不存在 if not exists
才新建:
create table if not exists personTable (personID int, name varchar(20),gender varchar(10),primary key(personID));
或某个字段自增auto_increment
:
create table if not exists moneyTable (moneyID int auto_increment,personID int,date varchar(10),money decimal,primary key(moneyID));
(2)创建临时表temporary(临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。如果你使用了其他MySQL客户端程序连接MySQL数据库服务器来创建临时表,那么只有在关闭客户端程序时才会销毁临时表,当然你也可以手动销毁。):create temporary table 表名 (字段名称 字段类型,...);
示例:
create temporary table bookTable (bookID int, bookName varchar(20),bookMoney double);
(3)复制表
()只复制表结构(没有表数据):create table 新表名 like 旧表名;
示例:
create table moneyTmp like moneyTable;
(b)复制表结构和表数据:create table 新表名 select * from 旧表名;
示例:
create table moneyTmp select * from moneyTable;
(c)复制指定表字段并改字段名称和表数据:create table 新表名 as select 旧字段名 as 新字段名,... from 旧表名;
示例:
create table moneyTmp as select moneyID as id,personID,date as time,money from moneyTable;
4、数据表中列的操作:
(1)添加新列:alter table 表名 add 字段名称 字段类型;
示例:
alter table personTable add age int;
(2)删除列:alter table 表名 drop 字段名称;
示例:
alter table personTable drop age;
(3)修改列名称:alter table 表名 change 修改前字段名称 修改后字段名称 修改后字段类型;
示例:
alter table personTable change job gangwei varchar(20);
(4)修改列类型:alter table 表名 modify 字段名称 修改后字段类型;
示例:
alter table personTable modify name char(30);
5、删除数据表:drop table 表名;
示例:
drop table personTable;
6、复制表:create table 新表名 like 被复制表名;
示例:
create table personTmp like personTable;
7、数据简单操作
(1)查询数据:select * from 表名 where 字段 = 值;
示例:
查询全部:
select * from personTable;
条件查询:
select * from personTable where age = 35;
或:
select name,age,gender from personTable;
或某个值非空的条件:
select * from personTable where schoolID is not null;
或某个值为空的条件:
select * from personTable where schoolID is null;
或:
select name,age,gender from personTable where personID=1000;
或:
select * from personTable where age=30 or age=35;
或like模糊匹配:
select * from personTable where name like 'ios%';
或like模糊匹配时的并列多条件:
select * from personTable where name like 'ios%' and age=35;
或升序(默认升序):
select * from personTable order by age asc;
或降序:
select * from personTable order by age desc;
或双表查询去掉重复使用union
:
select schoolID from personTable union select schoolID from schoolTable;
或双表查询不去掉重复union all
:
select schoolID from personTable union all select schoolID from schoolTable;
或结果分组group by
计算个数count(*)
:
select job,count(*) from personTable group by job;
或结果分组(含计算个数,总数):
select coalesce(job,'总数'),count(*) from personTable group by job with rollup;
或join
连表查询某个值相同:
select a.personID,a.name,a.gender,a.age,b.name from personTable a join schoolTable b on a.schoolID=b.schoolID;
(2)插入数据:
(a)insert into 表名 (字段1, ……) values (值1, ……);
示例:
insert into personTable (personId, name, gender, age) values (1000, 'devZhang', "male", 35);
(b)避免重复数据ignore需要设置primary key主键:insert ignore into 表名 (字段名,...) values (值,...);
示例:
insert ignore into tmpTable (name,time) values ('devZhang','201806');
(3)更新数据:update 表名 字段=值,…,字段n=值n where 字段=值;
示例:
update personTable set age = 25,name = "uiChen",gender='female' where personId = 1001;
(4)删除数据:delete from 表名 where 字段=值;
示例:
delete from personTable where age = 23;