select top 0 * into testAAA  FROM  tbl_User --sqlserver方法一复制表结构
select * into testAAA FROM tbl_User --sqlserver复制表结构和数据
INSERT INTO testAAA SELECT * FROM tbl_User --sqlserver复制数据 CREATE TABLE testB SELECT * FROM testa limit 0; mysql复制表结构
CREATE TABLE testC SELECT * FROM testa mysql复制表结构并复制数据
INSERT INTO testB SELECT * FROM testa MySQL复制数据
还有一种方法create table if not exists good LIKE lee 创建像表Lee一样结构的good表
select ROW_NUMBER()over( partition by officeid order by userid )as id, * from tbl_User sqlserver中表示根据officeid分组 然后根据userid排序
select ROW_NUMBER()over( order by officeid )as id, * from tbl_User 根据officeid排序

MySQL实现上面两个例子用一下方法

call testrank()  ---分组排序

create PROCEDURE testrank()
BEGIN
set @num=0;
set @pdept=null;
SELECT result.empid,result.deptid,result.salary,result.rank
FROM (SELECT s.empid,s.deptid,s.salary,
if(@pdept=s.deptid,@num:=@num+1,@num:=1) as rank,
@pdept:=s.deptid
FROM heyf_t10 s order by s.deptid asc ,s.salary desc )result ;
end

排序

call testpaixus()

create PROCEDURE  testpaixus()
BEGIN
set @num = 0 ;
select s.empid,s.deptid,s.salary, (@num:=@num+1 )as rank from heyf_t10 s ;
end

取得前一次MySQL操作所影响的记录行数

mysql_affected_rows() 返回最近一次与 连接句柄 关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数.FOUND_ROWS() : select ROW_COUNT() : update delete insert.

FOUND_ROWS() : select

ROW_COUNT() : update delete insert.

MYSQL的函数中,SELECT是另外一个单独的函数 FOUND_ROWS() , UPDATE等是 ROW_COUNT()

--------------------------------------MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值。两者具体的语法如下:

1.CAST(value as type);

2. CONVERT(value, type);

就是CAST(xxx AS 类型), CONVERT(xxx,类型)。

可以转换的类型是有限制的。这个类型可以是以下值其中的一个:

二进制,同带binary前缀的效果 : BINARY

字符型,可带参数 : CHAR()

日期 : DATE

时间: TIME

日期时间型 : DATETIME

浮点数 : DECIMAL

整数 : SIGNED

无符号整数 : UNSIGNED

  下面举几个例子:

例一

1mysql> SELECT CONVERT('23',SIGNED);

2+----------------------+

3| CONVERT('23',SIGNED) |

4+----------------------+

5|                   23 |

6+----------------------+

71 row in set

例二

1mysql> SELECT CAST('125e342.83' AS signed);

2+------------------------------+

3| CAST('125e342.83' AS signed) |

4+------------------------------+

5|                          125 |

6+------------------------------+

71 row in set

例三

1mysql> SELECT CAST('3.35' AS signed);

2+------------------------+

3| CAST('3.35' AS signed) |

4+------------------------+

5|                      3 |

6+------------------------+

71 row in set

像上面例子一样,将varchar 转为int 用 cast(a as signed),其中a为varchar类型的字符串。

例4

在SQL Server中,下面的代码演示了datetime变量中,仅包含单纯的日期和单纯的时间时,日期存储的十六进制存储表示结果。

01DECLARE @dt datetime

02

03--单纯的日期

04SET @dt='1900-1-2'

05SELECT CAST(@dt as binary(8))

06--结果: 0x0000000100000000

07

08--单纯的时间

09SET @dt='00:00:01'

10SELECT CAST(@dt as binary(8))

11--结果: 0x000000000000012C

MySQL的类型转换和SQL Server一样,就是类型参数有点点不同:CAST(xxx AS 类型) , CONVERT(xxx,类型)。

MySQL prepare用法

create PROCEDURE  testp19(
in ids varchar(20)
)
BEGIN
-- DECLARE strsql VARCHAR (2000);
set @strsql=concat('SELECT * from categories where id in (',ids ,')');
prepare str from @strsql;
EXECUTE str;
end
call testp19('1,3,5')
prepare strppp from 'SELECT * from categories';
EXECUTE strppp;

Mysql ON子句和USING子句

Mysql 中联接SQL语句中,ON子句的语法格式为:table1.column_name = table2.column_name。

当模式设计对联接表的列采用了相同的命名样式时,就可以使用 USING 语法来简化 ON 语法,格式为:USING(column_name)。

例如:

[sql]

SELECT f.color, c.is_primary, c.is_dark, c.is_rainbow
FROM flags f
INNER JOIN color c ON f.color = c.color
WHERE f.country = 'China';

等价于

[sql]

SELECT f.color, c.is_primary, c.is_dark, c.is_rainbow
FROM flags f
INNER JOIN color c USING(color)
WHERE f.country = 'China';

注意datediff 在MySQL于SqlServer中两个参数位置是相反的。

MySQL中  DATE_ADD(now(),INTERVAL 5 day) 与SqlServer中的

select dateadd(day,5,GETDATE()),select (getdate()-1) 效果是一样的

as 与=在mysql中是不同的

这里还是变量定义问题

update testa set uaddress=(select mytes as ddd from testa where id=37) where id=3 ; 这个是不行的 同一个表

 update testb set uaddress=(select mytes as ddd from testa where id=37) where id=3 ; 这个是可以的两个表

create PROCEDURE  testp27(in isx int)
BEGIN
DECLARE xxx VARCHAR(20);
set xxx=(select mytes as ddd from testa where id=37);
update testa set uaddress=xxx where id=isx ;
end
drop PROCEDURE testp27
call testp27(2) 这个可以的

mysql和mssql数据库快速创建表格 五的更多相关文章

  1. 如何利用Dreamwever快速创建表格???

    这样的一张表,用table写完感觉好累,很多单元格都不一样大,还要单独设置样式,今天还分享下用Dreamwever快速创建表格. 可能这会有人知道了!当然是插入表格了!

  2. mysql基础:数据库的创建,增删改查

    =============查看数据库========================== 使用SHOW语句找出服务器上当前存在什么数据库: mysql> SHOW DATABASES; +--- ...

  3. 版本12.2.0.1.0数据库,复制种子数据库快速创建租户数据库PDB

    实验测试:快速创建一个数据库PDB2: 实验环境:12.2.0.1.0版本数据库,dbca图形化安装,现有环境,CDB容器数据库ORCL,PDB可插拔数据库ABC   ---查询CDB名称,状态 SQ ...

  4. SQL监控:mysql及mssql数据库SQL执行过程监控审计

    转载 Seay_法师 最近生活有很大的一个变动,所以博客也搁置了很长一段时间没写,好像写博客已经成了习惯,搁置一段时间就有那么点危机感,心里总觉得不自在.所以从今天起还是要继续拾起墨笔(键盘),继续好 ...

  5. SQL-Server 创建数据库,创建表格

    use master --使用master权限 create database E_Market--创建新数据库 on primary--指定主数据文件,有且只有一个 ( name='E_Market ...

  6. mysql百万的数据快速创建索引

    测试数据本机一张表users有100百万条记录.在创建此表前没有未相应字段添加索引,所以此时需要为表添加索引.但是因为数据量大的原因,索引添加可能不成功,想了很多办法,终于挖坑成功. 开始准备工作, ...

  7. 基础 ADO.NET 访问MYSQL 与 MSSQL 数据库例子

    虽然实际开发时都是用 Entity 了,但是基础还是要掌握和复习的 ^^ //set connection string, server,database,username,password MySq ...

  8. mysql 在B数据库下 创建一个与A数据库中一样的表

    1.创建数据内容与结构一致(不会复制索引以及外键) create table B.test as select * from A.test; 2.把上面的步骤分开,先复制结构 create table ...

  9. 一分钟在云端快速创建MySQL数据库实例

    本教程将帮助您了解如何使用Azure管理门户迅速创建,连接,配置MySQL 数据库 on Azure.完成本教程后,您将在Azure上拥有一个示例MySQL数据库服务器,并了解如何使用管理门户执行基本 ...

随机推荐

  1. Python爬虫之BeautifulSoap的用法

    1. Beautiful Soup的简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: Beautiful Soup提供一些简单的.pyt ...

  2. BKP和RTC

    Stm32内部有多个BKP寄存器,在主电源被切断或者系统产生复位的时候,BKP寄存器仍然可以利用备用电源的支持保持其重要内容. BKP在实际应用中可以存入重要数据,防止被恶意查看. BKP有入侵检测, ...

  3. Leaflet 调用百度瓦片地图服务

    在使用 leaflet 调用第三方瓦片地图服务的项目,主要谷歌地图.高德地图.百度地图和 OSM 地图,与其他三种地图对比,百度地图的瓦片组织方式是不同的.百度从中心点经纬度(0,0)度开始计算瓦片, ...

  4. SQLSEVER 同台服务器下不同表 触发器实现数据实时同步

    触发器的使用: 1.首先建立两个相同结构的表,两个表明的列的名称不同. student_01   字段  name  ;  字段 age  ; 字段  class ; student_02   字段  ...

  5. django(模版)

    官方文档:https://docs.djangoproject.com/en/1.11/ref/templates/language/ 常用语法 Django模板中只需要记两种特殊符号: {{  }} ...

  6. Go 逃逸分析

    Go 逃逸分析 堆和栈 要理解什么是逃逸分析会涉及堆和栈的一些基本知识,如果忘记的同学我们可以简单的回顾一下: 堆(Heap):一般来讲是人为手动进行管理,手动申请.分配.释放.堆适合不可预知大小的内 ...

  7. Poj-3286- How many 0's? - 【基础数位DP】

    How many 0's? Description A Benedict monk No.16 writes down the decimal representations of all natur ...

  8. (一)python3.7的安装

    1.从官网https://www.python.org/下载相应版本的安装包.一般下载 executable installer,x86 表示是 32 位的,x86-64 表示 64 位的. 2.可选 ...

  9. appium+python+iOS 环境搭建与使用中常见问题的解决方案链接

    (1)WebDriverAgent 安装入门篇:https://www.cnblogs.com/zhanggui/p/9239827.html 重点摘要: 在WDA的Github上也给出了WDA的特性 ...

  10. Mac---使用tree生成目录结构

    作为测试或者程序员,平时都有需求来生成目录树,进行项目层级的讲解等.如下是样式图: 实现方式,即操作步骤: Mac下使用 brew install tree 进行安装,安装后,在terminal中输入 ...