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. 【转载】 C#中日期类型DateTime的日期加减操作

    在C#开发过程中,DateTime数据类型用于表示日期类型,可以通过DateTime.Now获取当前服务器时间,同时日期也可以像数字一样进行加减操作,如AddDay方法可以对日期进行加减几天的操作,A ...

  2. EntityFramework进阶(五)- 分页

    本系列原创博客代码已在EntityFramework6.0.0测试通过,转载请标明出处 我们创建分页信息类CommonPagedList,包含了字段总条数,总页数,当前页码,页大小,当前页数据. us ...

  3. OpenWrt增加软件包

    变量名含义 SECTION //包的种类 CATEGORY //显示在menuconfig的哪个目录下 SUBMENU //menuconfig子目录 TITLE //简单的介绍 DESCRIPTIO ...

  4. 50个Sql语句实战

    /* 说明:以下五十个语句都按照测试数据进行过测试,最好每次只单独运行一个语句. 问题及描述:--1.学生表Student(S#,Sname,Sage,Ssex) --S# 学生编号,Sname 学生 ...

  5. Vue列表动画----自己做的

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Android笔记(二十二) Android中的GridView

    GridView和ListView一样,是Android中比较常见的布局控件,譬如我们的手机桌面其实就是一个GridView. 效果: 实现过程和ListView类似,也是通过Adapter将数据源展 ...

  7. cdh的web管理界面503

    503 Service Unavailable No server is available to handle this request.       重启 agent  以及 server   

  8. vue-loader was used without the corresponding plugin. Make sure to include VueLoaderPlugin in your webpack config.

    默认,webpack无法打包.vue文件,需要安装 相关的loader: cnpm i vue-loader vue-template-compiler -D 提示以下错误信息: Module Err ...

  9. 优化你的HTTPS(上),你需要这么做

    HTTP/2 HTTP 2.0即超文本传输协议 2.0,是下一代HTTP协议.是由互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis (httpbis)工作小 ...

  10. HTTP请求响应过程以及与HTTPS区别

    HTTP协议 HTTP协议主要应用是在服务器和客户端之间,客户端接受超文本. 服务器按照一定规则,发送到客户端(一般是浏览器)的传送通信协议.与之类似的还有文件传送协议(file transfer p ...