數據庫mysql原生代碼基本操做

建立表:

CREATE TABLE `biao` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '測試表', `createtime` datetime DEFAULT NULL COMMENT '時間', `title` varchar(10) CHARACTER SET latin1 DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

刪除表:
DROP TABLE IF EXISTS `biao`;
DROP TABLE IF EXISTS t1,t2;

顯示錶結構,簡寫desc:describe biao

顯示錶結構語句:show create table biao
修改表名:alter table old rename new
顯示錶結構:show tables
修改字段類型:alter table biao modify id int(5)
修改表字段,新舊字段同樣和modify就同樣功能:
ALTER TABLE test ADD qqq VARCHAR(10) DEFAULT '1' NOT NULL
ALTER TABLE test CHANGE test test1 CHAR(32) NOT NULL DEFAULT '123';
刪除字段:ALTER TABLE ims_mm DROP ttt
定義主鍵 primary key
非空 not null
惟一性 unique
默認值 default
自動 auto_increment
函數:
DROP TABLE IF EXISTS `biao`;
DROP TABLE IF EXISTS t1,t2;

顯示錶結構,簡寫desc:describe biao

顯示錶結構語句:show create table biao
修改表名:alter table old rename new
顯示錶結構:show tables
修改字段類型:alter table biao modify id int(5)
修改表字段,新舊字段同樣和modify就同樣功能:
ALTER TABLE test ADD qqq VARCHAR(10) DEFAULT '1' NOT NULL
ALTER TABLE test CHANGE test test1 CHAR(32) NOT NULL DEFAULT '123';
刪除字段:ALTER TABLE ims_mm DROP ttt
定義主鍵 primary key
非空 not null
惟一性 unique
默認值 default
自動 auto_increment
函數:
describe biaoshow create table biao
修改表名:alter table old rename new
顯示錶結構:show tables
修改字段類型:alter table biao modify id int(5)
修改表字段,新舊字段同樣和modify就同樣功能:
ALTER TABLE test ADD qqq VARCHAR(10) DEFAULT '1' NOT NULL
ALTER TABLE test CHANGE test test1 CHAR(32) NOT NULL DEFAULT '123';
刪除字段:ALTER TABLE ims_mm DROP ttt
定義主鍵 primary key
非空 not null
惟一性 unique
默認值 default
自動 auto_increment
函數:
alter table old rename new
顯示錶結構:show tables
修改字段類型:alter table biao modify id int(5)
修改表字段,新舊字段同樣和modify就同樣功能:
ALTER TABLE test ADD qqq VARCHAR(10) DEFAULT '1' NOT NULL
ALTER TABLE test CHANGE test test1 CHAR(32) NOT NULL DEFAULT '123';
刪除字段:ALTER TABLE ims_mm DROP ttt
定義主鍵 primary key
非空 not null
惟一性 unique
默認值 default
自動 auto_increment
函數:
show tables
修改字段類型:alter table biao modify id int(5)
修改表字段,新舊字段同樣和modify就同樣功能:
ALTER TABLE test ADD qqq VARCHAR(10) DEFAULT '1' NOT NULL
ALTER TABLE test CHANGE test test1 CHAR(32) NOT NULL DEFAULT '123';
刪除字段:ALTER TABLE ims_mm DROP ttt
定義主鍵 primary key
非空 not null
惟一性 unique
默認值 default
自動 auto_increment
函數:
alter table biao modify id int(5)ALTER TABLE test ADD qqq VARCHAR(10) DEFAULT '1' NOT NULL
ALTER TABLE test CHANGE test test1 CHAR(32) NOT NULL DEFAULT '123';
刪除字段:ALTER TABLE ims_mm DROP ttt
定義主鍵 primary key
非空 not null
惟一性 unique
默認值 default
自動 auto_increment
函數:
ALTER TABLE ims_mm DROP ttt

隨機數 rand()
鏈接字符串 concat('中國','打日本')
轉換小寫 lcase('ABC') lower
轉換大寫 upper ucase
去除空格 trim(str)
獲取日期函數

curdate()+0 返回20160916 curdate() 2016-09-16 

時間測試

curtime() 

日期時間 now()
時間戳編碼

UNIX_TIMESTAMP(), UNIX_TIMESTAMP(now()) 日期轉換時間戳 FROM_UNIXTIME( 1539659520) 時間戳轉換成日期時間 

月份spa

month('2016-04-28') 

季度,1,2,3,4code

QUARTER('2016-04-28') 

星期orm

DAYOFWEEK('2016-04-28') 1是星期日 weekday 0是星期1 

天數排序

DAYOFYEAR('2016-04-28') 1-366 

年 year
分鐘 minute
小時 hour
秒 second
版本version索引

聚合函數
avg(col) 平均值
count(*) 記錄數
min(col) max(col)最小 最大值
sum(col)求和token

SET NAMES utf8 設置編碼
基本查詢rem

select * from biao 

條件

select * from biao where id=1 

結果字段不重複

select distinct id from biao

排序,默認升序asc,降序desc

select * from biao order by id; select * from biao order by id desc ,time asc; 

分組,having 限定條件

select * from biao group by sex; select * from biao group by sex having; 

查詢條數

select * from biao limit 4 返回4條 select * from biao 4,3 返回3條,從第5條記錄開始 

內鏈接兩個功能相同

select a,b,c from A inner join B on A.id = B.id; select a,b,c from A,B where A.id=B.id; 

左右鏈接

select * from A left join B on A.id=B.id; select * from A right join B on A.id=B.id; 

子查詢

select id from Table where id2 in(select id3 from Table2) 

合併結果集

select * from A union all select * from B select * from A union select * from B 去重複 

表或字段別名




select id as ID from A as a
 

插入

 
insert into Table(id,name) values (null,'Li') ;插入數據 insert into T(id,name) values (null,'Li'),(null,"Zhao"); insert into T values (null,"Li",null,"數據");插入全部列 insert into T(id,name) select id,name from T2; 查詢插入 insert ignore into Table(id,name) values (null,'Li') ; 惟一索引插入 有效防止重複數據 
 

修改

 
update T set name='Li' where id=1; 更新 update t set num=num+1 where id=1 自動加一 update T left join T1 on T.id=T1.id set u='1',u1='2' where id=1;多表更新 update T set user=replace(user,'a','a1') 替換表字段 
 

刪除

 
delete from T where id =1;刪除 delete from T where id in(1,2,3);刪除多條 
 

清空

 
truncate table test

經常使用的查詢:
select * from ims_rank where DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= date(createtime); 七天以前數據 30天 select * from ims_rank where to_days(createtime) =to_days(now()); 今天數據 select * from ims_rank where TO_DAYS( NOW( ) ) -TO_DAYS( createtime) <= 1 昨天今天數據 select * from ims_rank where DATE_FORMAT( createtime,'%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )本月 select * from ims_rank where PERIOD_DIFF( date_format(now( ) , '%Y%m' ) , date_format( createtime, '%Y%m' ) ) =1 上月 select * from ims_rank where YEARWEEK(date_format(createtime,'%Y-%m-%d')) =YEARWEEK(now()); 本週(第一天星期日) select * from ims_rank where YEARWEEK(date_format(createtime,'%Y-%m-%d')) = YEARWEEK(now())-1; 上週數據
相關文章
相關標籤/搜索