mysql与sql server总结部分不同点

1.关键字

在sql server中是关键字,若要创建user表则要用create table [user]();

在mysql中则不用,直接create table user;

2.  自增

id int  primary key auto_increment,    mysql中可用

id int primary key identity(1,1),    sql server 2005中可用

3.日期时间格式

INSERT INTO emp VALUES (7369,'SMITH','CLERK',7902,cast('1980-12-17'as datetime ),800,NULL,20); //sql servers和mysql都可用,而且mysql还可以直接用'1980-12-17';

INSERT INTO emp VALUES (7499,'ALLEN','SALESMAN',7698,convert(datetime,'1981-2-20',110),1600,300,30); //sql server可用,但mysql不可用

INSERT INTO emp VALUES (7935,'MILLER','CLERK',7782,convert(nvarchar,getdate(),120),1300,NULL,10);  //sql server可用,但mysql不可用

4.取指定范围内的记录

sql server不支持limit语句,只能用top 取代limt 0,N,row_number() over()函数取代limit N,M

select * from book limit ?,?    //适用mysql,但注意,第一个?,代表开始的行数,第二个?是取多少条记录


//以下适用于sql server

    //ROW_NUMBER()

SELECT * FROM

(
    SELECT ROW_NUMBER() OVER (ORDER BY id ASC) AS 'RowNumber', * FROM book
) AS UserInfo

WHERE RowNumber BETWEEN ( ( ( @pageIndex - 1 ) * @pageSize ) + 1 ) AND ( @pageIndex * @pageSize )

//top

一种:select top 2 * from emp;    //取前两个

两种:select top 20 percent * from emp; //总记录数的百分比数

//over

开窗函数over的常用方法

a.为每条数据显示聚合信息.(聚合函数() over())    //聚合函数() 如AVG,例: select * AVG(每季度销售总额) over() as 平均销售额 from  销售总表;

b.位每条数据提供分组的聚合函数结果(聚合函数() over(partition by 字段) as 别名)

c.与排名函数一起使用(row number() over(order by 字段) as 别名)


5.mysql的存储过程中变量的定义去掉@;

6.修改表名也有差异,将表emp改为emp2

ALTER TABLE emp RENAME emp2      //适用mysql

exec sp_rename 'test1', 'test2' 或exec sys.[sp_rename] @objname=N'test2',@newname='test1'    //两句有何区别??sql server

7. 修改字段的数据类型

alter table test2 modify id bigint;    //适用mysql

alter table emp alter column[id] bigint    //适用sql server

8.级连删除

constraint department_id_FK foreign key(department_id) references department(id)  on delete set null;当主表被删除时,级联表的外键删除
constraint department_id_FK foreign key(department_id) references department(id)  on delete cascade; 当主表被删除时,级联表全部删除

以上操作适用于mysql,但不知sql server中是否有相应操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值