对关键字,保留字的写法不同
sqlserver | mysql |
---|---|
select * from tbName where [key]=‘test’; | select * from tbName where ‘before’=‘test’; |
关键字一般用[ ]括起来即可 | 关键字一般用 ``括起来,即~这个键的下面那个字符 |
当前时间的写法,取n条记录
sqlserver | mysql |
---|---|
select top 10 * from tbName where CreateTime<getdate(); | select * from tbName where CreateTime<Now() limit 10; |
从数据库定位到表
sqlsever | mysql |
---|---|
select password from Info.dbo.users where userName='boss’或者select password from Info…users where userName=‘boss’ | select password from Info.users where userName=‘boss’ |
库名.dbo.表名 ;或者:库名…表名 (注:中间使用两个点) | 库名.表名 |
判断是否存在某个数据库,若存在,则删除
sqlserver | mysql |
---|---|
IF DB_ID(‘users’) IS NOT NULLDROP DATABASE users | Drop DATABASE if exists users |
拓展:若sqlserver数据库正在使用中,删除之前,先要把数据库变成“单一用户”,再删除
ALTER DATABASE users SET SINGLE_USER with ROLLBACK IMMEDIATE IF DB_ID(‘users’) IS NOT NULL DROP DATABASE users
判断某数据库中是否存在某张表,若存在,则删除
sqlserver | mysql |
---|---|
if exists(select * from sysobjects where name =‘Users_test’)drop table Users_test | DROP TABLE IF EXISTS Users_test |
符号的使用
mysql对参数可以使用单引号,也可以使用双引号,对字段名和表明可以使用反引号。
sqlserver只能使用单引号,且不能使用反引号。
Mysql写法:
Select password
from Users where userName=‘boss’ or username=”jmj”;
Sqlserver写法:
Select password from Users where userName=‘boss’ or username=’jmj’;
查询指定库中的所有表
mysql 语句
– 查看系统内所有数据库
show databases;
或
select * from information_schema.SCHEMATA;
– 查询数据库内所有表
show tables;
或
select * from information_schema.TABLES
where TABLE_SCHEMA=‘dbname’
– 显示表结构
desc 表名;
sql server语句
– 查看系统内所有数据库
SELECT name, database_id, create_date FROM sys.databases ;
– 查询数据库内所有表
select * from sysobjects where xtype= ‘U’ ;
– 显示表结构
sp_help/sp_columns 表名;
字符串的处理
截取字符串
sqlserver | mysql |
---|---|
只能使用SUBSTRING关键词来截取字符串 | 可以使用SUBSTRING和SUBSTR截取字符串取得字符串的长度 |
只能使用Len关键词取得字符串的长度 | 可以使用Length取得字符串的长度 |
注释符区别
sqlserver | mysql |
---|---|
注释符为–和/**/ | 注释符为/**/和# |
语法及兼容方面的不同点
sqlserver | mysql |
---|---|
支持enum,和set类型 | 不支持 |
不支持nchar,nvarchar,ntext类型 |