SQL Server 数据库注意事项

表名必须以字母和下划线开头
bit 范围0到1之间
numeric 小数
一张表最多只能有一个外键
一张表最多只能有一个主键
--复合主键
primary key(testId,testname)

%:表示0到多个字符
_:表示单个字符


--获取时间
create table spname
(bir datetime)
insert into spname values(getdate())

--修改年龄为空的职员的姓名
update clerk set clename='张三' where age is NULL

--申明外键
deptno int foreign key references dept(deptno)

isnull(sal,0)*12  --如果sal为空,则取sal为0

having 往往和group by结合使用,可以对分组查询结果进行筛选

--显示公司每个员工名字和他的上级的名字
--内连接,把emp表看成是worker和boss两张表(取别名)
select worker.ename,boss.ename from emp worker,emp boss
where worker.mgr=boss.empno
--显示公司每个员工名字和他的上级的名字,要求没有上级的人也要显示
--左外连接 :指左边的表的记录全部显示,没有匹配的记录就用null填
--右外连接 :指右边的表的记录全部显示,没有匹配的记录就用null填
select worker.ename,boss.ename from emp worker left join emp boss
where worker.mgr=boss.empno


--查询和部门10的工作相同的雇员的名字岗位工资部门号
select * from emp where job in
(select distinct job from emp where depno=10)

--identity(1,1),表示自增,从1,每次加1

--产生一个临时表 ,把cat表的记录distinct后的结果放入到#temp
select distinct * into #temp from cat
--把cat表的记录清空
delete from cat
--把#temp表的数据(没有重复的记录),插入到cat表
insert into cat select * from #temp
--删除临时表#temp
drop table #temp

--default的运用
mesdate datetime default getdate()

unitprice numeric(10,2) check (unitprice>0)
category nvarchar(10) check(category in('食物','日用品'))
email nvarchar (100) unique --电邮不能重复
sex nchar(1) check(sex in('男','女')) default '男'

--修改表
--添加字段
alter table cat add column address varchar(30)
alter table cat
        alter column address type varchar(80)
    alter column name type varchar(100)
alter table cat rename column address to city
--删除一个字段
alter table cat drop column adress restrict
--修改表的名字
alter table cat rename to suppliers
--删除数据库
drop database aaa

--如何备份数据库
backup database aaa to disk='f:/sp.bak'
--如何还原数据库(恢复数据)
restore database aaa from disk='f:/sp.bak'

--不收取奖金或收取的奖金少于100的员工
select * from emp where comm<100 or comm is null
--找出早于12年前受雇的员工
select * from emp where datediff(year,hiredate,getdate())>12
--以首字母大写的方式显示所有员工的姓名
select upper (substring(ename,1,1))+lower(substring(ename,2,len(ename))) from emp
--显示正好为5个字符的员工姓名
select * from emp where len(ename)=5

猜你喜欢

转载自chenzheng8975.iteye.com/blog/1660263