MySql 必须要知道的一些语法
2018-06-17 23:05:52来源:未知 阅读 ()
如果你初识MySql的话,那么这些语法糖你有必要知道。
1.Sql创建数据库
-- 如果存在数据库order,则删除。否则创建数据库 drop database if exists `order`; -- 创建数据库 create database `order`;
2.Sql创建数据表
CREATE TABLE `Users` ( `ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '客户id', `Member` varchar(20) DEFAULT NULL COMMENT '会员号', `Name` varchar(100) DEFAULT NULL COMMENT '姓名', `Phone` varchar(20) DEFAULT NULL COMMENT '手机号码', `QQ` varchar(20) DEFAULT NULL COMMENT 'QQ', `PassWord` varchar(50) DEFAULT NULL COMMENT '密码', `IsOpen` char(2) DEFAULT 'Y' COMMENT '是否禁用', `Createtime` datetime DEFAULT NULL COMMENT '创建时间', PRIMARY KEY (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8;
我这里创建了一个Users表,如果你的MySql里面存在多个数据库的话你可以使用 关键词 Use 来告诉mysql你所创建的表属于哪一个库,我这里创建到了上面新建的Order库里面,如果你有mysql或者SQLserver的基础的话
你会觉得这些都很简单,确实如此,主键,默认值,是否为空,是否自增等等,你都了解,不过还是有两个东西值的说一下,一个是没个字段的备注,我个人开发过程中觉得这个非常重要,所以一个简单的备注能让你快速的回忆起
这个字段的作用,COMMENT 就是专门做这个的。第二个是我创建表中的1000这个值,这个是该表的记录会从1000开始,可以自己去定义。uft8设置编码格式。
3.创建存储过程
DELIMITER $$ CREATE DEFINER=`root`@`%` PROCEDURE `RecordPage`( tblName varchar(2000), SelectFieldName varchar(4000), strWhere varchar(4000), OrderField varchar(2000), PageSize int, PageIndex int, out iRowCount int , -- 总记录数 out pagecount int -- 总分页数 ) $$:begin declare v_sqlcounts varchar(4000); declare v_sqlselect varchar(4000); #拼接查询总记录的SQL语句 set strWhere=concat(' where ', strWhere); set OrderField=concat(' order by ', OrderField); #拼接分页查询记录的动态SQL语句 set v_sqlselect = concat('select ',SelectFieldName,' from ',tblName,strWhere,if(OrderField is not null,OrderField,''),' limit ',(PageIndex-1)*PageSize,' , ',PageSize); #select v_sqlselect;leave $$; set @sqlselect = v_sqlselect; prepare stmtselect from @sqlselect; execute stmtselect; deallocate prepare stmtselect; -- set v_sqlcounts = concat('select count(*) into @recordcount from ',tblName,strWhere); set v_sqlcounts = concat('select SQL_CALC_FOUND_ROWS ',SelectFieldName,' from ',tblName,strWhere); #select v_sqlcounts;leave $$; set @sqlcounts = v_sqlcounts; prepare stmt from @sqlcounts; execute stmt; deallocate prepare stmt; #获取动态SQL语句返回值 -- set iRowCount = @recordcount; set iRowCount = (select FOUND_ROWS()); end $$$$ DELIMITER ;
创建存储过程的格式,上面是我创建的一个通用分页的存储过程,亲测,可用,只需要对应传参数就行了
4.关于批量更新和插入数据到mysql
-- 批量插入
INSERT INTO `order`.`users`(`ID`,`Member`,`Name`,`Phone`,`QQ`,`PassWord`,`IsOpen`,`Createtime`) VALUES(),(),(),(),(),(),()......;
--批量更新 UPDATE `order`.`users` SET Name= case ID WHEN 1 THEN '111' WHEN 2 THEN '222' WHEN 3 THEN '333' END WHERE `ID` in(1,2,3) ;
更新多个字段的时候可以将SET与END之间的部分复制替换成要更新的字段信息
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- MySQL replace函数怎么替换字符串语句 2020-03-09
- PHP访问MySQL查询超时怎么办 2020-03-09
- mysql登录时闪退 2020-02-27
- MySQL出现1067错误号 2020-02-27
- mysql7.x如何单独安装mysql 2020-02-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash