sql server 与 mysql 的区别

  由于博主之前学过mysql,目前在学习SQL server,原来以为这两个数据库之间的sql语句应该不会有太大区别。但是学sql server(用的版本是2012) 学久之后,发现与mysql 还是有很多不同的地方,有些时候写起来很不适应,所以就打算写这篇博客来记录一下这两个数据库的sql语句的区别,以备方便将来查询。(每隔一段时间会更新)


1. 首先说一下sql语句结束标志

mysql以;结束一条SQL语句;SQL server 以;go或不写结束都可以。不过建议写sql server的时候以go结束,因为sql server很多语句要以等一个语句结束后才能写下一个语句,不然会报批处理错误(深受其害)。

2. 查看表结构数量等

mysql 语句

-- 查看系统内所有数据库
show databases;
-- 查询数据库内所有表
show tables;
-- 显示表结构
desc 表名;

sql server语句

-- 查看系统内所有数据库
SELECT name, database_id, create_date FROM sys.databases ;
-- 查询数据库内所有表
select * from sysobjects where xtype= 'U' ;
-- 显示表结构
sp_help/sp_columns 表名;

相比来说,mysql 的更为简洁。

3、查询前几条记录

查询前10条记录:

mysql 语句

select * from student limit 10;

sql server 语句

select top 10 * from student ;

4、获取当前时间

MySQL写法:now()

SQLServer写法:getdate()

5、从数据库定位到某张表

mysql写法:库名.表名

select password from Info.users where userName='boss'

Sqlserver写法:库名.dbo.表名 ;或者:库名..表名 (注:中间使用两个点)

select password from Info.dbo.users where userName='boss'

或者

select password from Info..users where userName='boss'

6、强制不使用缓存查询

查询temp表

mysql写法:

select SQL_NO_CACHE * from temp

参考:https://www.cnblogs.com/eyesfree/p/7232559.html

Sqlserver的没有,它只缓存sql的执行计划,不会缓存结果。

参考:https://www.cnblogs.com/jeffwongishandsome/p/3235177.html

https://codeday.me/bug/20190701/1344787.html

6、查询一个数据库所有的表 和表下的所有列信息

MySQL写法:

写法1(查询选定数据库下所有的表):

select table_name tableName, engine, table_comment tableComment, create_time createTime from information_schema.tables where table_schema = (select database())

写法2(查询指定数据库名下所有的表):

select table_name tableName, engine, table_comment tableComment, create_time createTime from information_schema.tables where table_schema = 'db_name' 其中的db_name就是要查询的数据库的名

查询表下的所有列信息:

select column_name columnName, data_type dataType, column_comment columnComment, column_key columnKey, extra from information_schema.columns
where table_name = '表名' and table_schema = '数据库名' order by ordinal_position

参考:https://blog.csdn.net/huangbaokang/article/details/78049629

SQL Server写法:

查询数据库中的所有表:

select name from sysobjects where xtype='u'

查询指定表的所有列名

select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='表名')

参考:https://blog.csdn.net/ANXIN997483092/article/details/78468081

7.快速查询一个表的行数

Mysql写法:

SELECT TABLE_NAME, PARTITION_NAME, TABLE_ROWS, AVG_ROW_LENGTH, DATA_LENGTH FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME='table_name_t' ; 其中table_name_t是要查询下表名.

这里是通过 INFORMATION_SCHEMA数据库中的信息来得到行数,这样会快一点,但是可能会不太准确。

参考:https://blog.csdn.net/jiaxiaolei19871112/article/details/7161799

SqlServer 写法:

select schema_name(t.schema_id) as [Schema], t.name as TableName,i.rows as [RowCount]
from sys.tables as t, sysindexes as i
where t.object_id = i.id and i.indid <=1

这种写法可以列出所有表的行数,可以在该查询的基础之上去再去过滤器想要的表名

参考:https://www.cnblogs.com/kenyang/archive/2013/04/09/3011447.html

sql server 与 mysql 中常用的SQL语句区别的更多相关文章

  1. SQL Server 与MySQL中排序规则与字符集相关知识的一点总结

    字符集&&排序规则 字符集是针对不同语言的字符编码的集合,比如UTF-8字符集,GBK字符集,GB2312字符集等等,不同的字符集使用不同的规则给字符进行编码排序规则则是在特定字符集的 ...

  2. mysql 中常用的 sql 语句

    SQL分类: DDL-----数据定义语言(CREATE--创建,ALTER--修改. DROP--删除表,DECLARE--声明) DML-----数据定义语言(SELECT--查询,DELECT- ...

  3. 浅谈SQL Server、MySQL中char,varchar,nchar,nvarchar区别

    最近一次的面试中,被面试官问到varchar和nvarchar的区别,脑海里记得是定长和可变长度的区别,但却没能说出来.后来,在网上找了下网友总结的区别.在这里做个备忘录: 一,SQL Server中 ...

  4. sql server和mysql中分别实现分页功能

    MySQL 在MySQL中,可以用 Limit 来查询第 m 列到第 n 列的记录, 例如: select * from tablename limit m, n sql="select * ...

  5. TIMESTAMP类型字段在SQL Server和MySQL中的含义和使用

    公众号上转的满天飞的一篇文章,MySQL优化相关的,无意中瞄到一句“尽量使用TIMESTAMP而非DATETIME”,之前对TIMESTAMP也不太熟悉,很少使用,于是查了一下两者的区别. 其实,不管 ...

  6. 通过sql server 连接mysql

    图文:通过sql server 连接mysql   1.在SQL SERVER服务器上安装MYSQL ODBC驱动; 驱动下载地址:http://dev.mysql.com/downloads/con ...

  7. SQL Server on Ubuntu——Ubuntu上的SQL Server(全截图)

    本文从零开始一步一步介绍如何在Ubuntu上搭建SQL Server 2017,包括安装系统.安装SQL等相关步骤和方法(仅供测试学习之用,基础篇). 一.   创建Ubuntu系统(Create U ...

  8. SQL Server中常用的SQL语句(转):

    SQL Server中常用的SQL语句 转自:http://www.cnblogs.com/rainman/archive/2013/05/04/3060428.html 1.概述 名词 笛卡尔积.主 ...

  9. SQL Server和MySQL数据库

    导读:接下来的网上商城的项目,需要用到MySQL数据库了.这个对于我来说,是一个新接触的东西,按照惯例,在刚开始学习一个东西的时候,先从宏观上去了解它.本篇博客,先介绍SQL Server的基本内容, ...

  10. 对Oracle 、SQL Server、MySQL、PostgreSQL数据库优缺点分析

    对Oracle .SQL Server.MySQL.PostgreSQL数据库优缺点分析 Oracle Database Oracle Database,又名Oracle RDBMS,或简称Oracl ...

随机推荐

  1. Macos 安装md5sum、sha1sum、md5deep、sha1deep

    一.安装md5sum和sha1sum 方法一:brew 安装 # brew install md5sha1sum 方法二:编译安装 源码下载地址:http://www.microbrew.org/to ...

  2. 跟着 8.6k Star 的开源数据库,搞 RAG!

    过去 9 年里,HelloGitHub 月刊累计收录了 3000 多个开源项目.然而,随着项目数量的增加,不少用户反馈:"搜索功能不好用,找不到想要的项目!" 这让我意识到,仅仅收 ...

  3. Qt数据库应用1-数据导入导出csv

    一.前言 在经历过大大小小十几个甚至几十个纯QtWidget项目后,涉及到数据库相关的项目,几乎都有一个需求,将少量的信息数据比如设备信息.防区信息等,导出到文件保存好,然后用户可以打开该表格进行编辑 ...

  4. RestSharp使用方法2.0

    RestSharp使用方法 功能:在VS后端请求接口. (个人)用途:对接平台,做数据的转发. 1.引入Get包:RestSharp  2.简单的请求示例: /// <summary> / ...

  5. ICML 2022 | Graph Machine Learning 论文分享

    ICML 2022 | Graph Machine Learning 论文分享 国际机器学习大会(International Conference on Machine Learning,简称ICML ...

  6. 新一代python版本与依赖管理工具 uv

    uv python版本与依赖管理 选择原因 1. 新的好玩.rust开发的执行速度快 2. 确实方便 3. 轻,软件就十几二十兆,占磁盘小 4. uv.lock可以锁版本 场景应用 场景一 从 ana ...

  7. G1原理—1.G1回收器的分区机制

    大纲 1.G1垃圾回收器的分区(Region大小+G1分区+Region过大过小和计算) 2.Region大小的计算原理(先转字节然后确定2的n次幂再通过1左移n位) 3.新生代分区及自动扩展(新生代 ...

  8. C语言实现高阶阶乘(1000的阶乘C语言实现)

    由于C语言的变量的大小的限制,使用已有变量无法保存阶乘结果,所以使用数组保存结果,从而使得无法保存的结果得以保存. #include <stdio.h> void Print_Factor ...

  9. 对rpc长连接与短连接的思考

    大家好,我是思无邪,某go中厂开发工程师,也是OSPP2024的学生参与者! 如果你觉得我的文章有帮助,记得三连支持一下哦! 目前正在深入研究源码,与你们一起进步,共同攻克编程难关! 欢迎关注我的公众 ...

  10. 使用Gradle创建springcloud项目

    第一步新建项目,这都不用说了,有手就行 第二步选中SpringInitalizr  Project SDK 是项目使用的jdk版本 直接引入就可以了 Group 选你需要的依赖,无所谓,你也可以什么都 ...