MS SQLSERVER 各种乱七八糟

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

这个是看完了sql语法的一点个人练手,没什么价值,权且当做记录
select employee_id,dept_code,last_name,manager_id
from l_employees
where last_name like '%e%'--%代表任意字符串
order by dept_code,last_name;select distinct 选取不同的值
where manager_id is null or manager_id in (203, 206, 208);
where last_name like '%e%'    --%代表任意字符串order by manager_id desc;    --默认asc升序排列 加desc降序排列
--order by 2;   --使用列号来排序--SQL中 or比and高一个运算级create table SS(sno  char(10)  NOT NULL       /*学号字段*/CONSTRAINT PK_sno PRIMARY KEY CLUSTERED/*主键约束*/CHECK (sno like '31300501[0-9][0-9]')/*检查约束*/,sname      char(8)     NULL, /*姓名字段*/sex     char(2)   NULL, /*性别字段*/age    int  NULL, /*年龄字段*/dept   varchar(20)   NULL/*系别字段*/
)
--***********************************************
drop view tmd; --预防性删除
create view tmd as
select employee_id,first_name,last_name,dept_code
--into sec04_sales_staff   --创建表
from l_employees
where dept_code = 'SAL';drop table sec04_sales_staff;
select employee_id,first_name,last_name,dept_code
into sec04_sales_staff   --创建表
from l_employees
where dept_code = 'SAL';create view temd as
select * 
from l_employees
where manager_id in (202, 206, 203);
drop view temd;--****************************************************************delete from l_employees
where LAST_NAME = 'JACKSON';update l_employees 
set employee_id = '2001',first_name = 'LAZY',last_name = 'JACKSON'
where employee_id = null;	insert into l_employees
(employee_id, first_name, last_name, dept_code, manager_id)
values ('211', 'LAZY', 'JACKSON', 'XXX', '209');update sec04_sales_staff
set dept_code = 'XOX';--drop sequence sec_seq_lunch_id;  序列--***********************************************************************************************
--*********************************************
--创建索引
create index ix_l_employees
on l_employees (first_name, last_name)
--*********************************************select employee_id,first_name,last_name,hire_date
from l_employees
where hire_date >= '1999/8/01'and hire_date <= '2010/12/31'
order by last_name,hire_date,employee_id------------------------------------
--check约束条件
------------------------------------
alter table l_employees
drop constraint l_employees_min_employee_id;alter table l_employees
drop constraint l_employees_min_hire_date;alter table l_employees
add constraint l_employees_min_employee_id
check (employee_id > '200');alter table l_employees
add constraint l_employees_min_hire_date
check (hire_date > '1900/01/01');----------------------------------------
--unique约束条件  唯一
----------------------------------------
alter table l_employees
add constraint unique_employee_id
unique (employee_id);alter table l_employees
drop constraint unique_employee_id;----------------------------------------
--not null  非空
----------------------------------------
alter table l_employees
add constraint nn_l_employees_employee_id
check (employee_id is not null);alter table l_employees
drop constraint nn_l_employees_employee_id;----------------------------------------
--primary key主键约束
----------------------------------------
alter table l_employees
add constraint pk_l_employees
primary key (employee_id);alter table l_employees
drop constraint pk_l_employees;--*********************************************
--**设置RI(参照完整性)
--*********************************************--**首先设定state_code为查找表(引用表/父表)sec808_tates的主键
alter table sec0808_states
add constraint pk_sec0808_states
primary key (state_code);--**设定state_code为子表state_外键
alter table sec0808_clients
add constraint RI_sec0808_clients_state_code
foreign key(state_code) references sec0808_states (state_code) on delete set null;
--三种规则set null, cascade(删除外键行)
--**************************************************
--**因为RI错误的修改语句
--**************************************************
insert into sec0808_clients
values (700, 'GAIL HAUSER', 'MA');update sec0808_clients
set state_code = 'MA'
where client_id = 200;update sec0808_states
set state_code = 'MA'
where state_code = 'OR';delete from sec0808_states
where state_code = 'CA';alter table sec0808_clients
drop constraint RI_sec0808_clients_state_code;--*****************************************************************************
--**行函数
--*****************************************************************************
select l_foods.*,price+price_increase as new_price
into sec0902_foods
from l_foods;select l_employees.*,first_name + ' ' + last_name as full_name,--字符串连接用+credit_limit + 10 as new_credit_limit
into sec0902_employees
from l_employees;	select menu_item,description,price + price_increase as new_price
from l_foods
where menu_item < 15
order by menu_item;select employee_id,first_name + ' ' + last_name as full_name,--字符串连接用+credit_limit + 10 as new_credit_limit
from l_employees
order by employee_id;select menu_item,description,price + price_increase as new_price
from l_foods
where (price + price_increase) > 2
order by (price + price_increase);create view sec0905_step1_view as
select menu_item,description,price + price_increase as new_price
from l_foods;
--***************************
select 10.0 / 3;--自动的数据类型转换,与C相似select sqrt(3); --测试行函数
--**************************************************************
--**常用行函数
--***************************
--**power(10, 3)  指数函数
--**sqrt(9, 2)  平方根
--**sign(-9)  符号函数
--**abs(-9)  绝对值
--**floor(-9.5)  小于等于此数的最大值
--**round(9.213423423, 2)  四舍五入到一个精度
--***************************************************************
select n,n % 3  --求余运算
from sec0908_test_number
order by n;--**字符转换函数
select ASCII('A');  --字符转换ASCII码
select char(97);  --ASCLL码转字符
select lower('ASDASDasdsa');  --全部转换为小写
select upper('ASDasdasdASDASDasdasd');  --全部转换为大写
select str(12341231231256.78902323, 20, 3);  --将数值型转化为字符型--**去空格函数
select LTRIM('   ASDASD    ');  --去除左端空格
select RTRIM('   ASDASD    ');  --去除右端空格--**取字串函数
select left('ABCDEFGHIJK', 100);  --从字符串左端截取长度为i的字符串
select right('abcdefghijk', 3);  --从右端
select substring('ABCDEFGHIJK', 5, 3);  --返回从左端第i号开始的长度为j的字符串--**字符串比较函数
select charindex('CE', 'ABCDEFG');  --查询给定的字符串的位置,,没有返回0,'ABCDEFG'处可以是列函数
select patindex('%A_D%', 'ADSFASDFASSDAFDFSAASD'); --可以使用通配符的查询函数,此函数可用于CHAR、 VARCHAR 和TEXT 数据类型,下划线的位置代表不必匹配--**字符串操作函数
select quotename('ASD', '<>'); --返回被特定括号(),<>,{},[]括起来的字符串,默认为[]
select replace('ABCDEFGHI', 'ABC', '12345');  --替换字符串
select reverse('ASDASD');  --将给定的字符串颠倒顺序
select replicate('ASD', 3);  --返回重复多次的给定字符串
select space(5);  --返回一定长度的空格
select stuff('ABCDEFGHI', 5, 10, 'ASD');  --用另一子串替换字符串指定位置、长度的子串。--**数据类型转换函数
select cast(109.88 as int);
select convert(int, 109.88);  
--****************************************************
-- convert 还可以用于改变日期的格式
--****************************************************
SELECT 'Default Date:' + CONVERT(Varchar(50), GETDATE(), 100) SELECT 'US Date:' + CONVERT(Varchar(50), GETDATE(), 101) SELECT 'ANSI Date:' + CONVERT(Varchar(50), GETDATE(), 103) SELECT 'UK/French Date:' +CONVERT (Varchar(50), GETDATE(), 103) SELECT 'German Date:' + CONVERT(Varchar(50), GETDATE(), 104) 
--****************************************************select len('ADSASD');  --字符串长度
select cast(1009.89 as decimal(10, 3));  --decimal(i, j)用于规定显示数字的总长度和小数点后的精度
select convert(decimal(10, 3), 1009.89);--**日期函数select day(hire_date) as 日,month(hire_date) as 月,year(hire_date) as 年
from l_employees;select getdate();  --给出当前的日期
select dateadd(year,-1,getdate());  --指定的日期部分变化相应值之后的日期
select dateadd(day, 3, '1990-08-24');  --日期必须用''字符串表示
select datediff(month, '1990-12-10', '1990-09-10'); --两个日期在指定的日期部分下的差值,有正负
select datename(month, '1990-08-24');  --以字符串形式返回指定部分的日期值
select datepart(day, '1990-08-24');  --以数值形式返回指定部分的日期
--**yy相当于year,mm相当于month,dd相当于day--*******************************************
--**其他类型行函数
--*******************************************
select user;  --显示当前的用户名--**********************************************************************************************
--**列函数(聚合函数)
--**********************************************************************************************
declare @MyNum int --用户变量必须以@开头 用set或者select语句可以给变量赋值,但是select赋值语句不能和检索操作混用
set @MyNum = 144
select sqrt(@MyNum);select * 
from sys.messages;  --sys.messages是系统视图,出现标准错误时,错误是由数据库引擎引发的。所有的标准错误代码与消息都保存在sys.messages系统视图中select 5/0;
select * from master.dbo.sysmessages where error = @@error ;  -- @@error是配置变量,用于记录最后一次发生的错误SELECT alias, name, msglangid  --msglangid 被非正式的定义为Microsoft Global Language Identifier,可以检索出系统已经安装、支持的语言
FROM sys.syslanguages;--******************************************************************************
create table sec11(col_1 int NULL, col_2 int NULL,
)
go
insert into sec11 values(1, 4)
insert into sec11 values(NULL, 5)
insert into sec11 values(2, 6)
insert into sec11 values(3, NULL)--************************************************************************
--**一个简单的事务,将null设定为0再做运算
--************************************************************************
begin transactionupdate sec11
set col_1 = 0
where col_1 is NULL;update sec11
set col_2 = 0
where col_2 is NULL;select sum(col_1)+sum(col_2) as columns_add_first,sum(col_1 + col_2) as rows_add_first
from sec11;rollback transaction;
--************************************************************************
--汇总
--************************************************************************
select manager_id,dept_code,count(employee_id) as number_of_employees,min(credit_limit) as minimunm_credit,max(credit_limit) as maximum_credit
from l_employees
where not (employee_id = 202)
--having not(employee_id = 202)  having子句与where子句类似,都是限制条件的,,但是having子句可以使用列函数而且可以对已经汇总的数据进行处理.
group by manager_id,dept_code
order by manager_id,dept_code;--*************************************************************************
--内连接(inner join)
--*************************************************************************
select a.fruit,a.f_num.b.f_num,b.color
from sec_fruits a,sec_colors b
where a.f_num = b.f_num
order by a.fruit;select a.fruit,a.f_num.b.f_num,b.color
from sec_fruits ainner join sec_colors bon a.f_num = b.f_num
order by a.fruit;--********************************************************************
--外连接(outer join)
--********************************************************************
--**左外连接
select a.fruit,a.f_num.b.f_num,b.color
from sec_fruits aleft outer join sec_colors bon a.f_num = b.f_num
order by a.fruit;
--**右外连接
select a.fruit,a.f_num.b.f_num,b.color
from sec_fruits aright outer join sec_colors bon a.f_num = b.f_num
order by a.fruit;
--**全外连接
select a.fruit,a.f_num.b.f_num,b.color
from sec_fruits afull outer join sec_colors bon a.f_num = b.f_num
order by a.fruit;
--**全外连接的另一种实现方法
select a.fruit,a.f_num.b.f_num,b.color
from sec_fruits a,left outer join sec_colors bon a.f_num = b.f_num
union  --**union用于将两个结果表连接起来
select a.fruit,a.f_num.b.f_num,b.color
from sec_fruits a,right outer join sec_colors bon a.f_num = b.f_num--******************
--**union all与union类似,不过union all不负责数据的自动排序和去重
--**union语句中selec语句使用新列名必须在最开头
--**union语句中使用order by必须写在最后
--**union可以实现自动的数据类型转换
--**可以通过添加null列和使用类型转换函数实现两个表的union连接--******************
--union应用
--******************
--1.利用union自动排序和去重判断两张表是否完全相同
--2.使用加一列的直接量来确定数据的来源
--3.给异常、警告和错误的标志附加信息
--4.将数据从一个列中分到两个不同的列中
--5.将两个函数应用的数据的不同部分
--******************************************************************--交集操作 intersect  --交集 取出两个表中相同的数据 与where a=b and c=d 等效
--差集操作 可以通过先外连接再选取null行的操作来实现--*********************************************************************************
--**交叉操作
--*********************************************************************************
--交叉操作就是 叉积(笛卡尔积)
--结果表行数 = 初始表行数的总和
--结果表列数 = 初始表列数的乘积select a.*,b.*
from sec_fruit a,sec_color b;
--内连接源于交叉连接   交叉连接可以列出所有可能的组合--**************************************************
--**if-then-else
--**************************************************
--Oracle中使用decode 和 case 语句进行判断
--Access中使用iif进行判断
--SQL sever使用caseselect description,case when price > 2.00 then 'EXPENSIVE ITEM'else ' 'end as mess  --case必须有end结尾
from l_foods
order by description;--*********************************
--**子查询
--*********************************
--****in与exists的区别--  in 是把外表和内表作hash join,而exists是对外表作loop,每次loop再对内表进行查询。
--  绝对的认为exists比in效率高的说法是不准确的。这要看关联表的数据量大小.
--  如果查询的两个表大小相当,那么用in和exists差别不大。
--  如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:


转载于:https://my.oschina.net/atttx123/blog/77802

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/403659.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[C++11 std::thread] 使用C++11 编写 Linux 多线程程序

From: http://www.ibm.com/developerworks/cn/linux/1412_zhupx_thread/index.html 本文讲述了如何使用 C11 编写 Linux 下的多线程程序&#xff0c;如何使用锁&#xff0c;以及相关的注意事项&#xff0c;还简述了 C11 引入的一些高级概念如 promise/future 等。 前言 在这个…

div 背景图 居中

这里主要是 background-position: center;属性很给力 div{width: 100%;height: 100%;background-image: url(../../../assets/initialize.png);background-repeat: no-repeat;background-size:70px 70px;background-position: center;}

CCNA知识总结(一)

什么是路由&#xff1a; 路由就是为了形成“FIB”。 在路由器上分为2大类&#xff1a; 1&#xff09; Coutrol Plane 控制平面就是&#xff1a;“路由协议”&#xff0c;就是为了2个设备之间的交互来形成“FIB”。 2&#xff09; Data Plane 数据平面就是&#xff1a;“Forw…

记录uni-app弹框事件无生命周期问题;uni-popup-dialog打开触发事件;uni-popup-dialog调用接口时机

项目需求&#xff1a;点击页面的 品牌型号 按钮&#xff0c;打开弹框&#xff0c;将 车架号码 参数传入接口获取到对应的 品牌型号列表&#xff0c;在进行选择后关闭弹框。 实际开发中&#xff0c;我在父组件里面引入了弹框子组件&#xff1b;诡异的事情发生了&#xff1a; 在…

最常用的两种C++序列化方案的使用心得(protobuf和boost serialization)

From: http://www.cnblogs.com/lanxuezaipiao/p/3703988.html 导读 1. 什么是序列化&#xff1f; 2. 为什么要序列化&#xff1f;好处在哪里&#xff1f; 3. C对象序列化的四种方法 4. 最常用的两种序列化方案使用心得 正文 1. 什么是序列化&#xff1f; 程序员在编写应用程序…

SCCM 2012系列16 操作系统播发⑤

添加了操作系统映像&#xff0c;也创建了任务序列&#xff0c;那么我们改对创建的任务序列编辑一下了&#xff0c;以满足我们播发下去系统的要求是我们想要的&#xff0c;比如分区是怎么样的&#xff0c;当然分区不是固化的&#xff0c;是按照百分比来进行划分的&#xff0c;详…

vue旋转图片功能,旋转放大图片功能;vue旋转放大div元素

需求&#xff1a;可以旋转、放大、颠倒图片。 html: <div class"imgtop"><img class"imgboxele" id"xingshizhengzhengben" :src"imgurl" alt""></div><div class"imgtxt">行驶证正本<…

xp和win7安装telnet服务

xp&#xff1a; 有些ghost版本的xp会精简掉telnet服务 首先telnet服务需要的几个文件&#xff1a; tlntadmn.exe tlntsess.exe tlntsvr.exe tlntsvrp.dll 文件分享&#xff1a;https://yunpan.cn/cSaaaXjUrKFHu 访问密码 719d 将以上几个文件拷贝到c:\windows\system32下&…

linux centos7.2 nodeJs全局安装

先下载nodeJS 选一个linux版本的http://nodejs.cn/download/ 下载下来得到个node-v8.12.0-linux-x64.tar.xz这样的文件 用xftp上传到服务器你想安装的目录 xftp破解版链接:http://www.xue51.com/soft/1456.html xshell破解版链接:http://www.cncrk.com/downinfo/219821.html …

WebView 和JS 之间交互

2019独角兽企业重金招聘Python工程师标准>>> 1.android中利用webview调用网页上的js代码。 Android 中可以通过webview来实现和js的交互&#xff0c;在程序中调用js代码&#xff0c;只需要将webview控件的支持js的属性设置为true&#xff0c;&#xff0c;然后通过lo…

【libjpeg.lib】在Windows7下编译生成libjpeg.lib

一、准备&#xff1a; 下载最新的jpeg库源码&#xff1a;http://www.ijg.org/files/jpegsr9a.zip 二、编译 1. 解压到指定目录&#xff0c;我是&#xff1a;E:\program\opensource\jpeg-9a-win 2. 打开VS2010命令行窗口(为了得到VS2010的环境)&#xff0c;并切换到E:\program…

uni-app图片加水印;小程序图片添加水印;使用canvas上传图片加水印

原博主&#xff1a;点击查看 需求&#xff1a; 微信小程序&#xff0c;上传图片&#xff0c;成功后图片有水印&#xff0c;既图片的网络地址也有水印。 上传图片使用uni-app的uni.chooseImage&#xff08;&#xff09;方法&#xff0c;水印是用canvas。 以下代码可以直接使用…

vue或js解析文件excel表格js通过插件解析表格读取文件

安装插件 cnpm i xlsx --save-dev cnpm i jquery --save-dev 引入插件 html引入文件 <input type"file" id"excel-file" value"file"/> dom加载完成解析文件 mounted() {$(#excel-file).change(function(e) {var files e.target.fi…

微信小程序request请求封装;微信小程序封装request请求;uni-app小程序封装request请求;

本片封装了微信小程序request请求&#xff1b;为别是post get put请求&#xff0c;重点在request.js文件 1.新增四个文件 2.根目录下的utils下的request.js封装uni.request()请求 2.1 manifest.json&#xff1a;解决H5浏览器跨域问题-----配置代理一定要重启项目 // 自定义配…

关“视觉神经系统是怎么形成的?”的思考

http://www.cnblogs.com/mrxsc/p/5571358.html 视觉信息的处理是一个非常复杂的过程&#xff0c;这不由得让我想到了同样位于人们大脑中的新大脑皮层&#xff0c;作为人类智能的起始之地&#xff0c;它的运作也不简单&#xff0c;但是在婴儿时期&#xff0c;它的各部分单元并没…

uni-app控制小程序版本更新;小程序自动更新版本;uni-app发布新版本后仍旧是老版本问题

问题&#xff1a; 首先小程序&#xff0c;更新版本发布后&#xff0c;用户的版本一般情况下仍是旧版本&#xff1b;需要手动删除小程序后&#xff0c;在重新搜索打开才能使用新版本&#xff1b; 原因查看&#xff1a; 运营机制&#xff1b;更新机制&#xff1b; 解决办法&…

浅尝boost之format

From: http://www.cnblogs.com/WuErPIng/archive/2005/04/21/142308.html 概述 std::string是个很不错的东东&#xff0c;但实际使用时基本在每个程序里都会遇到不愉快的事情&#xff1a;格式化字符串。我甚至由于这个原因在代码里引入平台有关的MFC&#xff0c;ATL等本…

nuxt 服务器构建因太耗CPU进程被杀解决办法

在本地打包然后上传到github 再下载到服务器 如果你项目中有.gitignore那把里面的.nuxt删了(.gitignore是设置GIT不上传的文件)并把dist改为/dist 然后用git或者sourcetree上传项目到github&#xff0c;我这里用的sourceTree 上传完成 到服务器把项目下载下来 我这用的linu…

实用的rpm网站

http://www.rpmfind.net和 http://rpm.pbone.net/转载于:https://blog.51cto.com/nickcoco/993222

在VisualStadio2015上使用EF6.0建立MySql数据库

1.新建工程 2.建立类的文件夹DAL 3.建立相关类 【Student类】 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace ETTest3{ public class Student { public int Id { get; set; } public string La…