体验一下MySQL与SQL sever的不同吧!
这是我总结的一些SQL sever的一些基本语句
数据库操作:
create database 名
use 名
drop database 名
创建视图及表格:连接查询P41
create view 视图名 as--将以下语句形成的select形成一个视图,以下用on
select 学生.*,系.系编号,成绩--普通的查阅视图应将on改为where
into 新表明--将所形成的一个select建一个表
from 系 inner join 学生 inner join 选课 inner join 课程--inner,right,left,full
on 选课.课程编号=课程.课程编号
on 选课.学号=学生.学号
on 系.系编号=学生.系编号--顺序要相对应
查找内容:P38P43
select * from 学生 as 另外名 where 性别=‘男’ order by 月费 ASC--正向desc逆向
select 系.系编号,系.系名,count(*) as 学生数 from 学生 inner join 系--查询学生数大于500的系的系编号和系名
on 学生.系编号=系.系编号 group by 系.系编号 having count(*)>500--having用来搜索分组group数据,where用来搜索个别数据
select top 1 姓名,年龄 from 学生 order by 年龄 desc --查询年龄最大的学生的姓名与年龄
select top 10 percent with ties 姓名,年龄 from 学生 order by 年龄--同上年龄前10%的同学,with ties制定最后一个记录相同者也返回
创建表格:
create table 表名(
学号 tinyint constrain pk_学生 primary key,
年级 int as left(学号,4)+‘级’
性别 sex constrain ck_学生_性别 check(性别 in(‘男’,‘女’)),--建立check约束及约束名
余额 money as 单价*价格
费用编号 int constrain fk_学生_费用编号 foreign key references 费用表(费用编号),
费用日期 datetime not null default ‘2018-12-12’,--非空否则填默认值
备注text,
primary key(学号,费用编号)--定义双主键)
二进制binary,varbinary,image;字符char,varchar,text;Unicode数据nchar;整型bigint,int,smallint,tinyint;精确性decimal,float货币型money,smallmoney;日期型datetime,smalldatetime;bit型P7
编辑表格内容:
insert into 学生 values(’‘,’‘,null)或insert into 学生(属性1,2,3) values(’‘,’‘,’‘)
delete 学生 where 号码=’123454‘
update 学生 set 月费=月费+50 where 号码=‘534533’
更改表格属性:
alter table 学生 add 身高 decimal(4,1) not null default 18.5
alter table 学生 drop column 性别
alter table 学生 alter column 月费 money
excute SP_rename ‘表.原名’,‘新名’,’类型‘--类型可以为database,object表,column属性,index索引
更改表格约束:
alter table 学生 add constrain fk_学生_费用编号 foreign key (费用编号) references 费用表(费用编号)
alter table 学生 add constrain def_学生_备注 default ’‘ for 备注
alter table 学生 add check(性别 in(’男‘,’女‘))
alter table 学生 add primary key(学号)--添加约束
alter table 学生 drop constrain pk_学生--删除约束
定义变量并循环:
declare @n int
set @n=1
while(@n<100)
begin
语句
endP33
创建索引:
create index unique 索引名 on 表(列)
drop index 表.索引名