數據表簡單操作(注意:語句後要有分號)
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;