高频sql语句汇总。不断更新。。
小知识点:
1)通配符。%(百分号):表示任意长度字符。 _(下划线):表示任意一个字符。
2)
操作 | 语句 |
---|---|
创建数据库 | CREATE DATABASE dbname/* DEFAULT CHARSET utf8 COLLATE utf8_general_ci;*/ |
删除数据库 | DROP DATABASES dbname; |
显示数据库列表 | SHOW DATABASES; |
显示表列表 | SHOW TABLES; |
建表 | CREATE TABLE `tablename` (`id` INT(3) NOT NULL AUTO_INCREMENT, `fieldname` type isnull default 'defaultvalue',PRIMARY KEY(`id`))AUTO_INCREMENT=1 ENGINE=MyISAM DEFAULT CHARSET utf8 COLLATE utf8_general_ci; |
切换数据库 | USE dbname; |
当前使用的数据库 | SELECT DATABASE(); |
查看建表信息 | SHOW CREATE TABLE tablename; |
列表显示表的信息(含注释) | SHOW FULL COLUMNS FROM tablename; |
修改表引擎 | ALTER TABLE tablename TYPE=innodb; 建表默认myisam类型不支持事务,innodb支持事务insert和update时比myisam快,select比myisam慢。 |
查看支持的引擎 | SHOW ENGINES; |
删除表 | DROP TABLE tablename; |
清空(截断)表 | TRUNCATE TABLE tablename; 会清空自增 |
查看表的索引 | SHOW INDEX FROM tablename; |
添加主键 | ALTER TABLE tablename ADD PRIMARY KEY(fieldname); |
删除主键 | ALTER TABLE tablename DROP PRIMARY KEY(fieldname); |
添加唯一键 | ALTER TABLE tablename ADD UNIQUE KEY(fieldname); |
添加普通键 | ALTER TABLE tablename ADD INDEX(fieldname); |
添加字段 | ALTER TABLE tablename ADD fieldname fieldtype ... AFTER fieldname; |
修改字段信息 | ALTER TABLE tablename MODIFY fieldname fieldtype ...; |
修改字段名 | ALTER TABLE tablename CHANGE old_field_name new_field_name fieldtype ...; |
增加自增属性(auto_increment) | 上一句 最后加AUTO_INCREMENT;前提该字段要是key。 |
删除字段 | ALTER TABLE tablename DROP fieldname; |
字段加注释(comment) | ALTER TABLE tablename MODIFY fieldname fieldtype ... COMMENT 'commentinfo'; |
表加注释 | ALTER TABLE tablename COMMENT 'commentinfo'; |
增删改查 | |
增 | INSERT INTO tablename (`fieldname1`, `fieldname2`) VALUES ('value1', 'value2'); |
删 | DELETE FROM `tablename` WHERE search_condition; |
改 | UPDATE `tablename` set `fieldname1`='value1', `filedname2`='value2' WHERE search_condition; |
查 | SELECT `fieldname1`, `fieldname2` FROM `tablename` WHERE search_condition; |
分组查询 | SELECT `fieldname1`, count(`fieldname2`) FROM `tablename` GROUP BY (`fieldname`); |
范围查询(几个值中的一个) | SELECT `fieldname1`, `fieldname2` FROM `tablename` WHERE `fieldname1` IN ('value1', 'value2', 'value3'); |
排除范围查询(不是这几个值的) | SELECT `fieldname1`, `fieldname2` FROM `tablename` WHERE `fieldname1` NOT IN ('value1', 'value2', 'value3'); |
模糊查询 | |
查找含有n个a | SELECT * FROM `tablename` WHERE fieldname LIKE '%a%'; |
查找?bc? | SELECT * FROM `tablename` WHERE fieldname LIKE '_bc_'; |
查找1a、2a、3a、4a | SELECT * FROM `tablename` WHERE fieldname LIKE '[1-4]a'; |
查找[^1-8]a外的?a | SELECT * FROM `tablename` WHERE fieldname LIKE '[^1-8]a'; |
left join查询 | select * from product left join category_supply on product.`category_supply_id` = category_supply.`category_id`; |
数组查询 | select * from user where username in (1,2,3,4,5); |
函数相关 | (每次看到点数据库的鬼相测试一下都要去php写一大段连接代码,劳资要直接测试,用sql就够了 哈哈哈哈) |
生成1到50随机数 | FLOOR(1+(RAND()*50); |
拼接字符串 | CONCAT('abc', 'def'); |
查看配置全局变量 | SHOW GLOBAL VARIABLES; |
查看状态 | SHOW STATUS(LIKE '%XXX%'); |
局部变量声明 | DECLARE @num1 = 1; //局部变量一个@;全局变量俩@,一般用不到 |
变量赋值 | SET @num1 = 1;//不用上一步声明变量,直接赋值使用也是可以的。 |
json解析 | select id,json_extract(msg_params, '$') as 奖金 from msg_ready where w_time > 1529889960; |
时间戳 | select from_unixtime(1529905118); |