select * from table
update table set coumn=1 where id=1
delete from table where id=1
insert into table(id,nam) values(1,'aa'),(2,'bb')
SELECT sex,sum(age),GROUP_CONCAT(age),GROUP_CONCAT(name) FROM test group by sex
Insert into Table2(field1,field2,...) select value1,value2,... from Table1
#Table2必须存在(mysql不支持)SELECT vale1, value2 into Table2 from Table1
#Table2不存在CREATE TABLE 新表 SELECT * FROM 旧表
CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2
CREATE TABLE 新表 LIKE 旧表
ALTER TABLE 表名 ADD INDEX 索引名 (哪些列)
ALTER TABLE 表名 ADD UNIQUE (哪些列)
ALTER TABLE 表名 ADD PRIMARY KEY (哪些列)
CREATE INDEX index_name ON table_name (column_list)
CREATE UNIQUE INDEX index_name ON table_name (column_list)
DROP INDEX index_name ON talbe_name
ALTER TABLE table_name DROP INDEX index_name
ALTER TABLE table_name DROP PRIMARY KEY
show index from tblname;
show keys from tblname;
select str_to_date('20181111','%Y%m%d %H:%i:%s')
select from_unixtime(javatime/1000,'%Y%m%d %H:%i:%s');
select unix_timestamp('2013-01-01 10:10:10')*1000;
select * from product where date(add_time) between '2013-01-01' and '2013-01-31'
select * from product where Year(add_time) = 2013 and Month(add_time) = 1
SELECT * FROM table WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;
#date_col的值是在最后30天以内:SELECT exam.id FROM exam exam WHERE DATE_FORMAT(exam.date,"%Y-%m-%d %H:%i:%s") in ('2017-02-22')
SELECT * FROM table1 LEFT JOIN table2 ON table1.id=table2.id;
select arc.creNo, COUNT(arc.creNo) AS coun from t_staff_archive arc GROUP BY arc.creNo HAVING coun>1;
#重复数据SELECT COUNT( arc.id) FROM archive arc WHERE NOT EXISTS ( SELECT DISTINCT qua.id FROM qualification qua WHERE arc.id=qua.id );
SELECT COUNT( arc.id) FROM archive arc WHERE arc.id not in ( SELECT DISTINCT qua.id FROM qualification qua WHERE arc.id=qua.id );
SELECT COUNT(*) FROM t_staff_training_plan plan WHERE plan.qualificationType NOT in (SELECT dic.code FROM dictionary dic WHERE dic.groupType ='CYZGLB_D' );
select (SELECT COUNT(* ) FROM qualification1 qual)-( SELECT COUNT(*) FROM t_staff_qualification2 qual2 );
select LENGTH(No),LEFT(oldNo,6),RIGHT(oldNo,6) FROM archive;
UPDATE archive SET No= CONCAT(LEFT(oldNo,6),RIGHT(oldNo,6));
update 表名 set 字段名=replace(字段名,"Z01","Z02")
select concat('11','22','33');
#112233 select concat('11','22',null);
#NULLconcat_ws(',','11','22','33')
#11,22,33 concat_ws(',','11','22',NULL);
#11,22 select id,group_concat(distinct name order by name desc separator ';') from aa group by id;
select repeat('ab',2);
#ababEXPLAIN
SELECT count(*) AS '总数',
count(
CASE oup.status
WHEN '1' THEN
oup.id
END
) AS '未绑定' FROM passport oup
# 方案二:
SELECT count(*) AS '总数' FROM lab_org_uc_passport oup
UNION ALL
SELECT count(*) AS '未绑定' FROM lab_org_uc_passport oup WHERE oup.status = '1'
SELECT (@i:=@i+1) as '序号',FROM_UNIXTIME( val.createTime/1000,'%Y-%m-%d')
AS '操作日期', FROM eval_record eval,archive arc,(select @i:=0) as it
WHERE eval.staffId=arc.archiveId order by eval.operator;
explain extended select * from users where email like '303578599%'
explain extended select * from users where email like '303%578599%'
-- SET SESSION tmp_table_size=64*1024*1024*1024
SET SESSION max_heap_table_size=2*1024*1024*1024;
DROP TABLE IF EXISTS `tmp_table`;
create temporary table tmp_table ENGINE=memory (
select distinct a.archiveId,a.staffName
left join apply qa on q.applyId = qa.applyId
left join exam e on q.applyId = e.applyId
where 1=1 );
create temporary TABLE `temtable` (
`jws` varchar(100) character set utf8 collate utf8_bin NOT NULL,
`tzlb` varchar(100) character set utf8 collate utf8_bin NOT NULL,
`uptime` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1″
mysql创建临时表,本连接断开自动删除表并释放所有空间
create temporary table tmp_table TYPE = HEAP SELECT * FROM table_name
insert into temtable (select a,b,c,d from tablea)
#在内存中创建临时表:
create temporary table tmp_table (
name VARCHAR(10) NOT NULL,
value INTEGER NOT NULL
) TYPE = HEAP ENGINE=MEMORY DEFAULT CHARSET=gbk
show create table
alter table orig_name rename new_name
create temporary table new_table select * from old_table
DROP TEMPORARY TABLE IF EXISTS temp_tb
执行释放内存 DELETE FROM heap_table或DROP TABLE heap_table
ORDERY BY price GROUP BY name
;SELECT * from TableA, TableB ORDER BY TableA.price GROUP by TableB.name
ORDERY BY DISTINCT(price)
ORDER BY FIELD(排序字段,3,4,0,2,1)
alter table t_vehicle alter column tonnage drop default;
alter table t_vehicle alter column tonnage set default 0;
CREATE table t_vehicle222 SELECT veh.* FROM t_vehicle veh,test aa where aa.vehNo=veh.vehNo;
alter table vehicle modify column dateEnd varchar(20);
select * from information_schema.tables where TABLE_NAME like 'veh';
SELECT MAX(LENGTH(remark)) FROM vehicle ;
DESC vehicle
select if(type='FREIGHT',"普通","危险") as '类型' FROM vehicle
INSERT INTO dic (code,label) VALUES('531','济南'),('532','青岛');
select if(sva=1,"男","女") as ssva from taname;
select CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two'
ELSE 'more' END as ssva from taname;
SELECT IFNULL(1,0); # 1
SELECT IFNULL(NULL,10); # 10
create procedure dbname.Grade(stu_no varchar(20),cour_no varchar(10));
BEGIN
declare stu_grade float;
select grade into stu_grade from grade where student_no=stu_no and course_no=cour_no;
if stu_grade>=90 then
select stu_grade,'A';
elseif stu_grade<90 and stu_grade>=80 then
select stu_grade,'B';
else
select stu_grade,'E';
end if;
END;
select a.id, a.name FROM a
union all
SELECT b.id, b.name FROM b
ELT(N,str1,str2,str3,...)
<!-- 如果N= 1,返回str1,如果N= 2返回str2,等等。。ELT()是FIELD()反运算。 -->
INTERVAL(N,N1,N2,N3,...)
<!-- 如果 N < N1,返回0,如果N < N2 返回1,等等。。 -->
SELECT * FROM `user` WHERE `name` LIKE regexp'3|4';
<!-- 导出一个库 -->
mysqldump --user=db_user --password=pwd --complete-insert=TRUE --default-character-set=utf8 --skip-triggers dbname > "./dbname.sql"
<!-- 导出一个库,并压缩 -->
mysqldump --user=db_user --password=pwd --complete-insert=TRUE --default-character-set=utf8 --skip-triggers dataBase | gzip > "./dataBase.sql.$(date +%Y%m%d%H%M%S).tar.gz"
<!-- 导出一个表 -->
mysqldump -u db_user -p pwd dbname tablename > tablename.sql
<!-- 导出一个数据库结构 -->
mysqldump -u db_user -p pwd -d --add-drop-table dbname> d:\dbname.sql
mysql --user=root --password=_pwd
use dataBase
source ./dataBase.sql
shell文件 import.sh
mysql --user=root --password=_pwd;
use $1;
source "./$2";
exit;
使用 ./import.sh dataBase dataBase.sql
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
SELECT if(name is null||name ="",id,name) AS aa FROM `user`;
LENGTH('鲁AA0295·')
CHARACTER_LENGTH('鲁AA0295·')
locate('·','鲁AA0295·')
find_in_set('3','3,13')
cType分组
并且cStatus=4
,按cNo排序
后每组取前2条
排序 SELECT cert.cType,cert.cNo,cert.cStatus FROM cert_entity cert
WHERE (SELECT COUNT(*) FROM cert_entity cert1 WHERE cert.cType=cert1.cType
AND cert1.cStatus=4 AND
CAST(cert.cNo AS signed)>CAST(cert1.cNo AS signed) )<2 AND cert.cStatus=4
ORDER BY CAST(cert.cNo AS signed);
DATE_SUB(DATE_ADD('2016-05-03',Interval 6 YEAR),Interval 1 DAY )