去年偶然的一个机会参加了学校图书馆的小型招聘会,一家沈阳IT公司初试面试题目就是几行SQL语句。
现在将这些资料整理起来,以供大家参考。
同时欢迎回帖指出问题并补充完整
--SQL常用命令
--数据的增删改查
--增加数据(插入数据)
insert into [表名]([字段],[字段]..) values(值,值,值..) --按需要字段填写
insert into [表名] values(值,值,值..) --插入全部字段,自动增长列不写
--删除数据(记得有外键先删除主键表里的相应内容)
--删除表里的内容
delete from [表名]
--要是想删某一行就加where条件
delete from [表名] where [字段]=值
--修改数据(更新数据)
--修改整个表内的数据
update [表名] set [字段]=值
--要是想修改某一行就加where条件
update [表名] set [字段]=值where [字段]=值
--查询
select [字段],[字段] from [表名]
--条件查询
select [字段],[字段] from [表名] where [字段]=值
--升降序(一般加在查询语句末尾)
--升序(默认)
order by [字段] asc
--降序
order by [字段] desc
--例子
select [字段],[字段] from [表名] order by [字段] desc
--设置使用的数据库
use [数据库名]
--建立命令
--建立数据库
create database [数据库名]
on
(--数据库信息
NAME='aaa', --逻辑名称aaa
FILENAME='d:\bbb.mdf', --物理名称bbb(写全路径)
SIZE=5mb, --数据库初始大小
MAXSIZE=100mb, --增长的最大值
FILEGROWTH=15%, --增长率
)
log on
(--日志信息
NAME='aaa', --逻辑名称aaa
FILENAME='d:\bbb.ldf', --物理名称bbb(写全路径)
SIZE=2mb, --数据库初始大小
FILEGROWTH=1mb, --增长率
)
--建立表
create table [表名]
(
--[字段] [数据类型] [列的特征],
id int identity(1,1) not null,--identity(1,1) 是自动增长(起始值,递增值) ,not null 是不许为空(默认允许为空) name varchar(20) not null,
)
--给表添加约束
alter table [表名]
add constraint [约束名]
--添加主键(pk) PriMary key([字段名])
--唯一约束(uq) Unique ([字段名])
--默认约束(df) default('默认文字') for [字段名]
--检查约束(ck) check([字段名] between 15 and 40) --填写的数字在-40之间
--外键约束(fk) foreign key([字段名]) references [表名]([字段名])
--删除数据库
--exists检查是否存在
if exists(select * from sysdatabases where name = '[要删除的数据库名]')
drop database [要删除的数据库名]
if exists(select * from sysobjects where name = '[要删除的储存过程名]')
drop database [要删除的储存过程名]
--变量的使用(声明和使用要一起进行不然会找不到变量)
declare @[变量名] [数据类型]
--如declare @name varchar(8)
declare @age int
--变量赋值
set @name =值
select @name =值
--例子
--查询信息查找张三的信息
declare @name varchar(8)
set @name = '张三'
select * from [表名] where [字段] = @name
--赋值查询查询与张三同龄的人
declare @name varchar(8)
declare @age int
set @name = '张三'
select @age = [字段] from [表名] where [字段]=@name select * from [表名] where [字段]=@age
--全局变量(两个@)
@@error最后一个T-SQL错误的错误号
@@identity 最后一次插入的标识值
@@rowcount 上一个sql语句影响行数
--事务
--开始
begin transaction
--提交
commit transaction
--回滚
rollback transaction
--例子
begin transaction
declare @errorsum int --纪录错误
@errorsum = 0 --初始化没有错误
--SQL语句
set @errorsum=@errorsum+@@error --累计是否出错--SQL语句
set @errorsum=@errorsum+@@error
--SQL语句
set @errorsum=@errorsum+@@error
if @errorsum <>0 --如果有错
begin
rollback transaction
end
else
begin
commit transaction
end
GO
--储存过程
--建立
create procedure [储存过程名]
as
declare @xx int ,
declare @yy varchar(8) output (带有output为输出参数,否则视为输入参数) --SQL语句
--SQL语句
--SQL语句
select @yy=值...
GO
--调用储存过程
--无参数
exec [储存过程名]
--有参数(顺序不能变,变量在储存过程内部的值为默认值)
exec [储存过程名] @xx=[参数],@yy=[参数]
--有输出参
declare @yy varchar(8)
exec [储存过程名] 值,@yy output。