sql 基础语法

sql 基础语法:

创建数据库:
CREATE DATABASE 数据库名
on
(
name =‘数据库名’,–主文件逻辑名称
filename=‘数据库文件位置’, --主文件存放位置
size = 5,–主文件初始大小
filegrowth= 10% --主文件增长方式
)
log on
(
name=‘日志文件名’,–日志文件的逻辑名称
filename= ‘日志文件位置’,–日志文件的位置
size= 5, --日志文件的初始大小
filegrowth= 10% --日志文件的增长方式
)

约束:
1.primary key 主键约束
2.identity 自增约束 一般用于主键
3.check check约束 限制列中的值的范围
4.not null 非空约束
5.default 默认值约束

逻辑表达式:
and :并且 如 (表达式一) and (表达式二)
or :或者 如 (表达式一) or (表达式二)
not :取反 如查找 age不为20的人 not(age=20)

插入语句
一次插入一行数据
insert into 表名称 (列名称一,列名称二,列名称三,…)
values (列一对应的值,列二对应的值,列三对应的值,…)
一次插入多行
INSERT INTO table1 (列一,列二,列三)
SELECT(‘aa’,b,c)union
SELECT(‘bb’,d,0)union
SELECT(‘dd’,s,1)

删除语句
删除一条数据
delete from 表名称 where 列的值=‘想要删除的值’
删除一张表的数据
delete table 表名称

修改语句
update 表名称 set 列名称1=‘修改的值1’,列名称2=‘修改的值2’

查询语句
查询一个表的数据
select * from 表名称
查询一个表中的任何一列的数据
select 列名称1,列名称2,from 表名称
查询一个表中一条数据
select * from 表名称 where 列名称=‘值’

order by 子句:对结果集排序 ,asc表示升序,desc表示降序,默认的是升序 asc

distinct 去掉重复的信息 select distinct 列名称 from 表名称

as关键字 改列名称 select 列名称1 as 姓名,列名称2 as 年龄 from 表名称

查询一个表中固定的几行数据
select top 2(写几就返回多少行 可以把2换成 50 percent:返回百分之50的数据) * from 表名称

sql内置函数
CharIndex(‘ab’,‘cdab’)返回3 返回’ab’ 在’cdab’中的位置,返回第一个字母的位置
Len(‘我是谁’)返回3 返回字符串的长度
Upper(‘abc好’) 返回ABC好 转换字母为大写
Replace(‘abb’,‘b’,‘z’) 返回 ‘azz’ 把b换成z

日期函数
GetDate() 返回电脑当前时间
DareAdd(mm,2,‘2009-10-08’) 像日期指定部分添加数据 yy年 mm月 dd日 hh时 mi分 ss秒
DateDiff(dd,‘2009-09-09’,‘2010-09-09’)返回365 返回两个日期中的日 dd换成mm就是12
DateName(DW,‘2009-09-09’)返回星期三 字符串的形式返回某个日期的指定部分

数学函数
Abs(-1) 返回:1 求绝对值
Ceiling(24.1) 返回:25 大于24.1的最小的整数
Floor(24.1) 返回:24 小于24.1的最小的整数
Power(2,3)返回:8 计算2的3次方
Round(748.32,1)返回:748.30 返回一个数值,舍入到指定长度或精度
Sign(100) 返回:1 正整数返回1 负整数返回-1
Sqrt(4) 返回:2 开平方

系统函数
Convert(varchar(3),123) 返回:123 转换数据类型
DateLength(‘12中国’) 返回:6 返回任何数据类型的字节数 “中国”是汉字,一个汉字等于2个字节 所以返回 6

模糊查询
select * from 表名称 where name like ‘_e%’ 得到一个条数据 name列第二个字母等于e的这一条数据
select * from 表名称 where name like ‘%e[a,b,c,d]’ 得到一个条数据 name列最后个字母不等于(a,b,c,d)的这一条数据

聚合函数
SUM() 返回选取结果所有值的总和
MAX() 返回选取结果所有值中的最大值
MIN() 返回选取结果所有值中的最小值
AVG() 返回选取结果所有值的平均值
CUNT() 返回选取结果集中行的数目

多表连接查询
select 表1.列1,表1.列2,
表2.列1,表2.列2,
from 表1 inner join 表2
on 表1.列1=表2.列1
where 表1.列1 in(‘表1的列1’,‘表2的列1’)
and 表2的列2 like ‘c%’
左外连接:left Outer join 右外连接:Righte Outer join 全外连接:Full Outer join

sql 高级语法:
declare @varname DateType @varname为局部变量,declare为声明变量 DateType为数据类型
SET @varname=value SELECT @varname=value 左边两种都是将确定value值赋给@varname

全局变量
@@ERROR 返回执行的上一行 Transact-SQL 语句的错误号
@@IDENTITY 返回最后插入的标示值
@@ROWCOUNT 返回上一语句影响的行数。如果行数大于20亿,使用ROWCOUNT_BIG

输出语句
PRINT 局部变量或者字符串

流程控制语句
IF 条件
语句块
else
语句块

IF 条件
BEGIN
语句块
END
ELSE
BEGIN
语句块
END
BEGIN END 相当于c#语言中的if语句的( )

子查询
select * from 表一 wher id=(select max(id) from 表二) 查出表一中id和表二中id对应的一整条数据

高级子查询
in 用法:select * from Employ where empno in(select empno from Expertise group by empon having MAX(skillevel)>3) in后面的子查询查出的是一个数据集 不能用= 只能用 in
not in 用法:就是反之 not in后面的子查询的结果 与前面的父查询不匹配的数据被查出来。

事物:
开始事物:BEGIN TRANSACTION 提交事物:COMMTT TRANSACTION 回滚事物:ROLLBACK TRANSACTION

select * from sysobjects 查询表的信息

系统存储过程:
sp_stored_procedure 列出前环境中所有的存储过程
sp_helptext 显示默认值,未加密的存储过程,用户定义的存储过程,触发器或者视图的实际文本
xp_cmdshell 使用DOS命令操作文件或目录

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值