新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
修改表 - 修改列的数据类型
成都创新互联服务项目包括名山网站建设、名山网站制作、名山网页制作以及名山网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,名山网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到名山省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
使用 CHANGE COLUMN 来修改列的数据类型,还必须 设置 列名。
使用 MODIFY COLUMN 不用输入2次列名。
mysql ALTER TABLE test_tab
- CHANGE COLUMN age age TINYINT;
- //
Query OK, 0 rows affected (0.16 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql ALTER TABLE test_tab
- MODIFY COLUMN age BIGINT NOT NULL;
- //
Query OK, 0 rows affected (0.14 sec)
Records: 0 Duplicates: 0 Warnings: 0
修改表 - 修改列的默认值
通过MODIFY COLUMN来处理
mysql ALTER TABLE test_tab
- MODIFY COLUMN sex VARCHAR(2) DEFAULT '男';
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0
修改表 - 修改列名
使用 CHANGE COLUMN 来修改列的名字,还必须 设置 列的数据类型
mysql desc test_tab
- //
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | 0 | |
| name | varchar(10) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| val | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql ALTER TABLE test_tab
- CHANGE COLUMN val val2 VARCHAR(10); //
Query OK, 0 rows affected (0.13 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql desc test_tab
- //
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | 0 | |
| name | varchar(10) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| val2 | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.02 sec)
mysql
DECLARE var_name[,...] type [DEFAULT value]
这个语句被用来声明局部变量。
要给变量提供一个默认值,请包含一个DEFAULT子句。
值可以被指定为一个表达式,不需要为一个常数。
如果没有DEFAULT子句,初始值为NULL。
局部变量的作用范围在它被声明的BEGIN ... END块内。
它可以被用在嵌套的块中,除了那些用相同名字声明变量的块。
CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INTEGER NOT NULL
)
类似如上。或者:
CREATE TEMPORARY TABLE tmp_table SELECT * FROM tables
---
以上,希望对你有所帮助。
一、局部变量
局部变量一般用在sql语句块中,比如存储过程的begin/end。其作用域仅限于该语句块,在该语句块执行完毕后,局部变量就消失了。
局部变量一般用declare来声明,可以使用default来说明默认值。
二、用户变量
用户变量的作用域要比局部变量要广。用户变量可以作用于当前整个连接,但是当当前连接断开后,其所定义的用户变量都会消失。
用户变量使用如下(这里我们无须使用declare关键字进行定义,可以直接这样使用):
select @变量名
对用户变量赋值有两种方式,一种是直接用"="号,另一种是用":="号。其区别在于使用set命令对用户变量进行赋值时,两种方式都可以使用;当使用select语句对用户变量进行赋值时,只能使用":="方式,因为在select语句中,"="号被看作是比较操作符。
就是通过连接字符串建立的连接,该链接用一个可识别的变量或常量来表示。例如有两个人:张四,王五,那么这个名字就是这两个人的标识符。
如在php中
?php
//声明mysql连接标识符mysql_connect("mysql主机地址","用户名","密码");
$Conn1 = mysql_connect("192.168.1.110","root1","root1pwd");
$Conn2 = mysql_connect("192.168.1.112","root2","root2pwd");
//查询1
$SQL1 = "select * from YourTable1 ";
$_r_s1 = mysql_query($SQL1, $Conn1);
//查询2
$SQL2 = "select * from YourTable2 ";
$_r_s2 = mysql_query($SQL2, $Conn2);
//在每次查询中,对应的连接标识符$Conn1,$Conn2不能出错,否则会得到不一样的结果或者根本就无法运行啦。
?
begin
declare i int;
declare b int;
declare c int;
set @i=2;
set @b=6;
set @c=0;
set @stmt = concat('insert into t_j_goods_name (id,`code`,`name`)
values(?,?,(select distinct `a` from sheet1 limit ?, 1))');
while @i442 do
prepare s1 from @stmt;
execute s1 using @b,@i,@c;
deallocate prepare s1;
set @i=@i+1,@b=@b+1,@c=@c+1;
end while;
end
这是我今天刚写的一个存储,你参考下。