mysql中一些约束和SQLServer 2005 中的区别:
Sqlserver:(唯一约束)
alter table t_name add constraint uq_name unique(column_name);
mysql:(唯一约束)
alter table t_name add constraint uq_name unique key(column_name);
Sqlserver:(默认约束)
alter table t_name add constraint df_name default(df_value) for column_name;
mysql:(默认约束)
数值默认
alter table t_name alter column column_name set default df_value;
-- 数字默认
alter table Student alter column stuAge set default 18;
-- 字符串默认约束
alter table Student modify stuAddress varchar(50) default '中国重庆';
取得当前时间:
sqlserver:getDate() mysql:now();
注意:
在mysql 中在建表是不支持系统时间函数,要用当前时间可采用以下方式
example:
create taber TestTime
(
id int auto_increment primary key,
nowtime timestamp(14) --14 代表YYYY-MM-DD hh:mm:ss
)
mysql中自增和sqlserver 中的区别
sqlserver:identity(1,1);
mysql:auto_increment;
mysql中创建存储过程和Sqlserver 中的区别:
无参或无输出参数的:
sqlserver:
create procedure pro_name
[变量1 类型1][变量1 类型1]....
as
sql........
go
mysql:
create procedure pro_name(变量名 变量类型)
sql.......
;
有输入参数的:
sqlserver:
create procedure pro_name
@a int,@b int output
as
sql......
go
注:在sqlserver 中有输出参数的在声明时和调用时都要标识成output
example:
declare @c int
execute pro_name @c output
print @c
go
mysql中:
5:创建存储过程
a:不带参数的
create procedure name()
select * from table_name;
执行存储过程
call name;
b:带输入参数的
create procedure name(变量名 变量的类型)
select * from table_name where 列名=变量名
执行
call name(值)
myslq 中的带输出参数的
example:
create procedure proc_test10(out time3 datetime,out time4 datetime)
set time3=(select nowtime1 from test2 where Id = 1),
time4 = (select nowtime1 from test2 where Id = 1);
delimiter call proc_test10(@a,@b); select @a,@b;