MySQL使用(数据表)

数据表简单操作(注意:语句后要有分号)

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;
发布了804 篇原创文章 · 获赞 135 · 访问量 142万+

猜你喜欢

转载自blog.csdn.net/potato512/article/details/105214348