mysql中,一个表有多个字段是主键可不可以?可以的话,建表语句怎么写?

create table 表名(自己的字段,不要有primary key)

mysql游标多个字段 mysql游标的使用方法mysql游标多个字段 mysql游标的使用方法


mysql游标多个字段 mysql游标的使用方法


mysql游标多个字段 mysql游标的使用方法


constraint [pk](自己起名字) primary key clustered(要成为主键的多字段) [primary]

mysql中更新多个字段的值怎么做?

UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'

WHERE LastName = 'Wilson'

MySQL 是一个关系型数据库,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 的关系型数据库管理系统,在 WEB 应用方面 MySQL 是的 RDBMS (Relational Database Mament System,关系数据库管理系统) 应用软件之一。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的常用标准化语言。MySQL 软件采用了双授权政策(本词条"授权政策"),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP ,Linux和 Apache 可组成良好的开发环境,经过多年的web技术发展,在业内被广泛使用的一种web解决方案之一,称之为LAMP。

系统特性:

1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性

2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种作系统

3.为多种编程语言提供了API。这些编程语言包括C、C++、Python、Ja、Perl、PHP、Eiffel、Ruby和Tcl等。

4.支持多线程,充分利用CPU资源

5.优化的SQL查询算法,有效地提高查询速度

6.既能够作为一个单独的应用程序应用在客户端网络环境中,也能够作为一个库而嵌入到其他的软件中。

7.提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。

8.提供TCP/IP、ODBC和JDBC等多种数据库连接途径。

9.提供用于管理、检查、优化数据库作的管理工具。

10.支持大型的数据库。可以处理拥有上千万条记录的大型数据库。

11.支持多种存储引擎。

mysql之游标

游标:能够对结果集中的每一条记录进行定位,并对指向的记录中的数据进行作的数据结构。

创建游标: CREATE FUNCTION 函数名称 (参数)RETURNS 数据类型 程序体

存储过程中使用游标的4个步骤:定义游标、打开游标、读取游标数据和关闭游标。

定义游标: DECLARE 游标名 CURSOR FOR 查询语句

打开游标: OPEN 游标名称;

读取游标数据: FETCH 游标名 INTO 变量列表;

关闭游标: CLOSE 游标名;

条件处理语句: DECLARE 处理方式[CONTINUE 或EXIT] HANDLER FOR 问题 作;

流程控制语句:跳转语句(ITERATE语句和LEAVE语句)、循环语句(LOOP、WHILE、REPEAT)、条件判断语句(IF语句和CASE语句)

创建游标: CREATE FUNCTION 函数名称 (参数)RETURNS 数据类型 程序体

存储函数与存储过程很像,但有几个不同点:

1、存储函数必须返回一个值或者数据表,存储过程可以不返回。

2、存储过程可以通过CALL语句调用,存储函数不可以

3、存储函数可以放在查询语句中使用,存储过程不可以

4、存储过程的功能更强大,包括能够执行对表的作(比如创建表、删除表等)和事务作

游标作步骤包含4个:定义游标、打开游标、读取游标数据和关闭游标。

1、创建存储过程

求mysql的游标用法详细说明,有例子!!

参看手册即可:

给你个例子:来自手册(5.5 en version),部分内容加了注解:

CREATE PROCEDURE curdemo()

BEGIN

DECLARE done INT DEFAULT 0;

DECLARE a CHAR(16);

DECLARE b,c INT;

--下边声明两个游标,cur1, cur2

DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1;

DECLARE cur2 CURSOR FOR SELECT i FROM test.t2;

--下边声明handler,作用是在游标状态变量为not found时设置done=1

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

--打开游标

OPEN cur1;

OPEN cur2;

read_loop: LOOP

--获取游标指向的值到变量中

FETCH cur1 INTO a, b;

FETCH cur2 INTO c;

IF done THEN

LEAVE read_loop;

END IF;

IF b < c THEN

INSERT INTO test.t3 VALUES (a,b);

ELSE

INSERT INTO test.t3 VALUES (a,c);

END IF;

END LOOP;

--关闭游标

CLOSE cur1;

CLOSE cur2;

END;

mysql c语言 游标能取多行吗

1、 无返回结果语句,如:INSERT,UPDATE,DROP, DELETE等

2、 select语句返回单行变量并可传给本地变量(select ..into)

3、 返回多行结果集的select语句,并可使用MySQL游标循环处理

注意,存储过程返回的多行结果集,可以被客户端程序(如php)所接收,但要在一个存储过程中接收另一个存储过程的结果集是不可能的,一般解决办法是存入临时表供其它过程共用

4、 prepare语句

以下主要讲述游标及prepare部分

游标

定义

DECLARE cursor_name CURSOR FOR SELECT_statement;

游标作

OPEN 打开游标

OPEN cursor_name;

FETCH 获取游标当前指针的记录,并传给指定变量列表,注意变量数必须与MySQL游标返回的字段数一致,要获得多行数据,使用循环语句去执行FETCH

FETCH cursor_name INTO variable list;

CLOSE关闭游标

CLOSE cursor_name ;

注意:MySQL的游标是向前只读的,也就是说,你只能顺序地从开始往后读取结果集,不能从后往前,也不能直接跳到中间的记录.

一个完整的例子:

定义本地变量

DECLARE o varchar(128);

定义游标

DECLARE ordernumbers CURSOR

FOR

SELECT callee_name FROM account_tbl where acct_timeduration=10800;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_departments=1;

SET no_more_departments=0;

打开游标

OPEN ordernumbers;

循环所有的行

REPEAT

-- Get order number

FETCH ordernumbers INTO o;

update account set allMoneyallMoney=allMoney+72,lastMonthConsumelastMonthConsume=lastMonthConsume-72 where NumTg=@o;

循环结束

UNTIL no_more_departments

END REPEAT;

关闭游标

CLOSE ordernumbers;

DELIMITER $$

USE `kubauser`$$

DROP PROCEDURE IF EXISTS `cursortest`$$

CREATE DEFINER=`coo8new`@`%` PROCEDURE `cursortest`(OUT a VARCHAR(50),OUT b VARCHAR(50))

BEGIN

DECLARE _outuserid VARCHAR(50);

DECLARE _kubauserid VARCHAR(50);

DECLARE flag INT;

DECLARE update_cursor CURSOR

FOR

SELECT outuserid,kubauserid FROM ecuser_cooperationuser;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag=1;

SET flag=0;

OPEN update_cursor;

REPEAT /循环/

FETCH update_cursor INTO _outuserid,_kubauserid;

SET a=_outuserid;

SET b=_kubauserid;

/update set where/

UNTIL flag

END REPEAT;

CLOSE update_cursor ;

END$$

DELIMITER ;

转载,仅供参考。

mysql中怎么修改多个字段的数据

UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'

WHERE LastName = 'Wilson'

MySQL 游标的定义与使用

从字面可以这么理解什么是游标,游标就像是水面上漂浮的一个标记,这个标记可以来回游动,一会游到这里一会游到那里,这里的河水可以理解为是数据的,这个标记就是在这些数据间来回游动。

为什么 MySQL 会有游标这个概念,由于 SQL 语言是面向的语句,它每次查询出来都是一堆数据的,没有办法对其中一条记录进行单独的处理。如果要对每条记录进行单独处理就需要游标。

游标其实就像是编程语言中的 for/foreach 循环,把一个数组(数据的)中每条数据一条一条地循环出来,然后你在 for/foreach 循环中使用判断语句对你感兴趣的数据进行处理。

哪里可以使用游标呢,函数,存储过程,触发器中都可以使用。

说完概念,就来看下游标的固定写法。不管概念是否理解,记住下面的固定模式也可以完成搬砖任务。

1、声明游标

SELECT 语句就是正常的查询语句,例如:SELECT id,age FROM table;

2、打开游标

在打开游标之前,游标定义的 SQL 语句是不执行的。

3、取出记录

将当前的记录数据存入变量。

当 FETCH 没有找到记录时会抛出异常,异常的定义需要下面的 HANDLER FOR 语句。

声明游标语句中的 SELECT 如果有多个字段,INTO 后面需要多个变量进行接收。

4、设置结束条件

这个语句的作用是指定一个条件,告诉程序所有数据已经循环完毕,可以结束了。由于游标是使用 WHILE 循环进行每条数据的读取,就需要给 WHILE 一个结束条件。

处理种类:可以是, EXIT 立即结束。CONTINUE 继续下面的处理。

异常的类型:一般指定为 NOT FOUND ,意思是没有找到任何数据。

异常发生时的处理:当异常发生时需要做的事情,这里一般改变一个变量的值来记录异常已经发生了,如如 SET flat = 1 详细用法查看下面的例子。

5、关闭游标

实战代码:

完毕,看懂没,如果没看懂没关系,游标处理是一套固定的格式,按照上面例子中固定的格式套入到你的程序就可以了。

mysql怎么修改一个里的多个字段内容

update 表名称 set 属性1=?,属性2=? where id=?,这里的id值得是你表的主键,他的值是想要修改的那条记录的主键值。

具体修改方法:

0:表示数字占位符。如果值在格式字符串被设置为在"0" 出现的位置上有数字的格式,则该数字会被到输出字符串。否则"0" 会被保存在输出字符串的位置。例如:在整数栏位放置 0000,从表输出的整数将会有 0012 的格式。

#:表示数字占位符。如果值在格式字符串被设置为在"#"出现的位置上有数字的格式,则该数字会被到输出字符串。否则没有任何东西保存在输出字符串的位置。例如在整数栏位放置 ####,从表输出的整数将会有 12 34 的格式。 . :表示小数点。格式字符串的个"." 字符决定小数点分隔符的位置,任何额外的"." 字符会被忽略,在输出中实际作为一个小数点分隔符的字符是由 DecimalSeparator 全局变量决定。 DecimalSeparator 的默认值指定在 Windows 控制面板中地区及语言选项部分的数字格式。

, :表示千位数分隔符。如果格式字符串包含一个或多个"," 字符,输出的数中小数点左边将会插入千位数分隔符,每 3 个数字为一组。在输出中带有千位数分隔符的字符是由ThousandSeparator 全局变量决定。ThousandSeparator 的默认值指定 Windows 控制面板地区及语言选项部分的数字格式。

E+:科学记数法。如果任何一个"E+"、"E-" 、"e+"或"e-" 字符串包含在格式字符串中,数字设置为使用科学记数法格式。一组多四个"0" 字符立即跟随"E+"、"E-" 、"e+"或"e-" ,决定在指数中数字的少数。"E+"及"e+"格式输出加号到正的指数及输出减号到负的指数。"E-" 及"e-" 格式只会输出记号字符到负的指数。 'xx'/"xx":字符以单引号或双引号括住的会照原样显示,并不会影响格式。 ; :在格式字符串分隔正数、负数及零数部分。

二、Nicat for MySQL 如何设置日期时间格式

在小数点之前左边 "0" 的位置,及在小数点之后右边 "0" 的位置,格式字符串决定数字必须出示在输出字符串的范围。

数被设置为四舍五入至小数点右边多数字占位符("0" 或 "#")小数位的格式。如果格式没有包含小数点,值会被设置为四舍五入至接近整数的格式。 如果数字在格式字符串被设置为小数位分隔符左边的数字,比 "." 字符左边数字占位符多的格式,额外数字会输出在个数字占位符之前。