sql小技巧
2017-01-16 21:27:57
1.查询数据库里有多少张表(把下面的表名换掉就行了)
SELECT count(*) TABLES, table_schema FROM information_schema.TABLES where table_schema = 'jg_game' GROUP BY table_schema;
2.修改数据库密码(在MYSQL-FRONT里执行就行了)
SET PASSWORD FOR 'root'@'localhost' = PASSWORD( '********' )
3.复制表数据到另外一个表insert into table select * from tableb;
1.INSERT INTO SELECT语句
语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1
要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量
2.SELECT INTO FROM语句
语句形式为:SELECT vale1, value2 into Table2 from Table1
要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中
查询一个表的数据复制到一个表中
insert into ddd(aid,tid,content) select 'admin' as aid,id,concat(a1,a2,a3,a4) as content from aaa;
查询多个表的数据复制到一个表中(循环插入)
insert into ddd(aid,tid,content,bcon) select 'admin' as aid,a.id as tid,concat(a1,a2,a3,a4) as content,concat(b1,b2,b3,b4) as bcon from aaa a inner join bbb b;
表不存在时:
select a.col1, b.col2, c.col3
into table4
from tableA a, tableB b, tableC c
where 1 = 0
但是,一旦表4已经存在的话,会报错。如果是想在表4中增加这几个字段,但这些字段的数据不需要添加到表4中来
select
*
into 表5
from
表4 m
left join
(select a.字段1,b.字段2,c.字段3 from 表A a,表B b,表C c where 1<>1) n
on
1=1
drop table 表4
exec sp_rename '表5','表4
3.截取字段的值,可以用left(字段名称,多少个字)如left(name,4)
也可以用substring(name,1,9)
如果要通过".",";","/"等来截取,可以用SUBSTRING_INDEX
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
-> 'www.mysql'
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);
-> 'mysql.com'
发表评论: