php程序员对数据库设置必须要知道的一些语法
发表时间:2023-09-04 来源:明辉站整理相关软件相关文章人气:
[摘要]如果你初识MySql的话,那么这些语法糖你有必要知道。Sql创建数据库-- 如果存在数据库order,则删除。否则创建数据库drop database if exists `order`;-- 创建数据库create database `order`;2.Sql创建数据表CREATE TABLE ...
如果你初识
MySql的话,那么这些语法糖你有必要知道。
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设置编码格式。
我这里创建了一个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.关于批量
-- 批量插入
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之间的部分复制替换成要更新的字段信息
以上就是php程序员对数据库操作必须要知道的一些语法的详细内容,更多请关注php中文网其它相关文章!
学习教程快速掌握从入门到精通的SQL知识。