赞
踩
插入数据
#语法: insert into 表名 (列名) values (值列表) #注意: #每次插入一行,不能只插入半行或者几列 #每个值的数据类型要与相应的列匹配 #不能为标识列指定值 #如果设计表时指定列不能为空,则该列必须插入值 #插入数据时一定要符合约束要求 #具有缺省值的列,可以使用DEFAULT关键字代替
将表中的数据复制到新表中
#语法: insert into 新表名 (列名) select 列 from 源表名 #注意:新表需提前创建且插入列与源表列一致
将表中的数据复制到新表中
#语法: Select 列名 into 新表 from 源表名 #注意:新表无需提前创建,且该命令只能执行一次
一次性给表插入多条数据
#语法: Insert into 表名 (列1,列2) Select ‘值1’,’值2’ union Select ‘值1’,’值2’ union Select ‘值1’,’值2’
更新表中数据
#语法 UPDATE 表名 SET 列名 = 更新值 [WHERE 更新条件]
删除表中数据
#语法 DELETE [FROM] 表名 [WHERE <删除条件>]
截断表
#语法 TRUNCATE TABLE 表名 #注意:该命令会把数据表中数据全部截断,且事务无法恢复
查询全部的行和列
#语法 Select * from 表名 #注意:实际开发中查询尽量避免使用 * 进行全文检索
查询部分的行和列
#语法: Select 列1,列2… from 表名
查询跟where条件
#语法: Select 列1,列2… from 表名 where 查询条件
AS别名列
#语法: Select 列1 as ‘别名’,列2 as ‘别名’… from 表名 [where 查询条件]
查询空行和非空行
#语法: Select 列1,列2… from 表名 where 列 is null #空行 Select 列1,列2… from 表名 where 列 is not null #非空行
常量列
#语法: SELECT 姓名=SName,地址= SAddress , '北京新兴桥' AS 学校名称FROM Students
限制固定行数
#语法: Select top n * from 表名
按百分比返回行
#语法: Select top n percent * from 表名
排序
#语法: Select 列 from 表名 order by 列 [asc | desc] #多列排序用英文逗号进行分隔 #asc:升序 #desc:降序
模糊查询like
#语法: Select 列 from 表名 [where 列 like 条件]
四个通配符
a) _ 匹配一个字符 b) %匹配多个字符 c) [1-8] 匹配1~8 d) [^1-8]匹配不是1~8
between and 模糊查询
#语法: select 列 from 表名 where 列 between 值1 and 值2 #注意:值1 ~ 值2 必须从小到大
in查询
#语法: select 列 from 表名 where 列 in (值1,值2,值3…)
五个常用的聚合函数、
a) Count:统计数量 b) Sum:求和 c) Avg求平均分 d) Max最大值 e) Min最小值
分组过滤
#语法: Select 列 from 表名 group by 列 having 筛选条件 #注意:分组查询的列必须是分组的列或函数,否则报错
#语法: select 列 from A表 inner join B表 on A.列 = B.列 #备注:主表和子表数据相匹配
左外连接
#语法: select 列 from A表 left join B表 on A.列 = B.列 #备注:主表数据全部匹配,子表只会匹配跟主表相关联的数据,未匹配的数据填充null值
右外连接
#语法: select 列 from A表 right join B表 on A.列 = B.列 #备注:主表数据全部匹配,子表只会匹配跟主表相关联的数据,未匹配的数据填充null值
等值连接
#语法: select 列 from A表,B表 where A.列 = B.列
分页查询
#语法: select top 页面大小 * from 表名 where 主键列 not in (select top ((当前页数-1)*每页数据条数) 主键列 from 表名)
数据库文件( .mdf数据文件和.ld日志文件组成)
创建数据库
CREATE DATABASE 数据库名 on PRIMARY ( name = '数据库名', FILENAME = 'E:\SQL Data\数据库名.mdf' -- 数据库文件 ) log ON ( name=数据库名_log', FILENAME = 'E:\SQL Data\数据库名_log.ldf' -- 数据库日志文件 ) GO
创建表(行、列、字段)
字符串类型 nvarchar(长度)、text 姓名、性别、地址
整数类型 int、bigint 年龄、考试成绩
bit类型(布尔类型) 0 和 1
浮点类型 (float、decimal)
日期类型(date、datetime)
货币类型(money)
语法:
create table 表名( 字段1 int not null primary key identity (1,2), 字段2 nvarchar(50) not null, 字段3 nvarchar(10) default '男', 字段4 datetime not null, 字段5 nvarchar unique ) -- not null 非空(不允许为空) -- primary key 主键约束:保证该列唯一且一张表只允许添加一个主键,必须设置非空 -- identity(标识种子,标识增量):标识规范(自动增长) -- default :给该列设置默认值 -- unique:唯一约束
查看所有数据库
select * from sysdatabases;
查看所有的表
select * from sysobjects where xtype='U';
使用数据库
use 数据库名;
备份数据库
backup database 数据库名 to disk='D:\数据库名.bak';
还原数据库
restore database 数据库名 from disk='d:\数据库名.bak';
删除数据库
drop database 数据库名;
删除数据库表
drop table 表名;
给数据库表添加列
ALTER TABLE 表名 ADD 字段名 类型 属性;
删除数据库表中的某一列
alter table 表名 drop column 列名;
修改数据库表中某列的类型
alter table 表名 alter column 字段名 字段类型;
添加约束
alter table 表名 add constraint 约束名 primary key(列);
删除约束
alter table 表名 drop constraint 约束名;
更改用户密码
alter login sa with password='新密码';
更改表名
EXEC sp_rename 旧表名,新表名;
设置数据库离线
alter database 数据库名 set offline;
设置数据在线
alter database 数据库名 set online;
获取数据库的版本
select @@VERSION;
事务概念
单个逻辑工作单元的 “一系列操作”
“多个操作” 作为一个 “整体” 向系统提交,要么都执行,要么都不执行(只要多个操作中有一个执行失败,那么整个操作全部失败)
事务是一个不可分割的工作单元
- 模拟转账 -- 需求: 张三 1000 元 ------------------->李四 1 元 = 1001元 张三转账500元给李四 转账的过程就是一个事务 ① 张三余额减500元 500 ② 李四余额加500元 501 1001元 * 张三给李四转账是作为一个整体同时执行,要么转账成功,如果在转账过程中有一步发生了失败,那么整个转账业务也应该取消。这就是事务
事务的四个特性 ,简称ACID
原子性:事务的各部分操作是不可分的(张三给李四转账500元,同时李四也应该得到500元,这两步不可以分开的)
一致性:当事务完成时,数据必须处于一致状态
转账前两人账户余额总和为1001元
转账后两人账户余额总和为1001元
隔离性:多个并发事务之间彼此隔离、独立,它不以任何方式依赖或影响于其他事务
张三给李四转账(1个事务)
王五给马六转账(1个事务)
多个事务之间是没有任何关系的
永久性:事务一旦执行完成,它对数据库的修改永久保持(针对增加、删除、修改操作) 一旦事务执行成功,数据库中的数据将会永久保存
使用事务的三个关键词
begin transaction 开启事务(开始事务)
业务
commit transaction 提交事务
rollback transaction 回滚事务(撤销事务)
视图概念
视图是一张“虚拟表”,表示一张表的部分数据或多张表的综合数据,其结构和数据是建立在对表的 “查询基础” 上
视图中不存放数据(虚拟数据),真正的数据存放在原始表中
一个原始表根据不同的需求,可以创建出无数个视图
视图的作用
筛选表中的行(查询的)
防止未经许可的用户访问敏感的数据
降低数据库的复杂程度
将多个物理数据库抽象为一个逻辑数据库
创建视图
语法: create view 视图名 as [select查询语句] NOTE: 视图名命名一般以view_ 作为前缀
使用视图
语法: select * from 视图名
删除视图
语法: drop view 视图名
注意事项
# 视图中可以使用一张表,也可以使用多张表 # 视图定义中的select语句中不能包含以下内容 1.order by子句 2.into 关键字 3.引用临时表 # 视图一般只用做查询,切勿对视图进行增删改的操作,否则会影响原始表
新华字典:查询某个字 "张" 1.一页一页翻(效率非常低) 2.根据拼音(索引) 为了提高查询的效率和速度 3.根据偏旁部首(索引)
索引概念
在SQLServer数据库中,索引是编排数据的内部方法。它为SQLServer提供一种方法来编排数据
索引类似于新华字典中按照拼音或者偏旁部首目录页
索引作用
通过使用索引可以大大 “提高数据库的查询检索速度”,改善数据库的性能,
创建索引
语法: create [unique] index index_name on 表名(列名)
删除索引
语法: drop index 表名.索引名 # 备注:删除表时索引也会同时删除
索引的优点和区别
优点:
加快访问速度
加强行的唯一性
缺点:
带索引的表在数据库中需要更多的存储空间
操纵数据的命令需要更长的处理时间,因为它们需要对索引进行更新
建立索引的原则
频繁搜索的列
经常用作查询选择的列
经常排序、分组的列
经常用作连接的列(主键外键)
查看索引
语法: exec sp_helpindex 表名
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。