SQL_Server基本语法

1.查询语句

数据库+select+查询的内容+from+哪张表格+where+限制条件

select  *  from  Users

select  * from Users where name="huahua"

Distinct [dɪ'stɪŋ(k)t] 删除重复行

select distinct name from Users

获取前n条信息

select [top n]  name  from Users

运用运算符

select  * from Users where name="huahua"    

运用逻辑运算符

select * from Users where id<90 and id>100

select * from Users where id=100 or id=110

select * from Users where  not id

使用IN 条件

select * from Users where id in("001","002")

between 条件包含边界值

select * from Users where id between 80 and 90

like进行模糊查询

% 通配符;_通配符;

select * from Userswhere id like "[01]%"   选取以0,1开头的信息。若为“[0_3]%”查询以0到3开头的信息

is not null 查询不为空的信息

select * from Users  where name IS NOT NULL


【聚合函数:专用的数值统计函数

group by 子句(保证子句的列是可计算的,并且出现在select中)

 HAVING 子句用于限定分组统计值 

select CouNo ,AVG(Score) AS '平均成绩' from score  group by CouNo

就是把CouNo对象当中相同的进行分组

select title,id,SUM(score) AS'sun',t_type from news WHERE score=89  GROUP BY score

select AVG(score) from news where score > 80 group by t_type having AVG(score)>20 

COUNT 求组中项数,返回整数

SUM 求和,返回表达式所以值得和

AVG  求平均  MAX求最大 MIN求最小

查询排序问题 order by  ,desc 为逆序,ASC为正序

select * from news ORDER BY t_type desc ,score ASC 

多表查询

基本连接(笛卡尔乘积)

select * from news,newstype

内连接(当有n个表的时候,则有n-1个选择条件)

select * from news,newstype where news.t_type=newstype.type;

左外连接

select * FROM news left join newstype on news.t_type=  newstype.type

右外连接

SELECT  *  FROM news RIGHT JOIN newstype ON news.t_type = newstype.type

联合查询

子查询

2.插入语句insert
insert  into 表名(列名)values(值)

INSERT INTO  news(title,content,t_type) VALUES ('鸡腿','鸡腿好不好吃','89')

insert select语句(插入一块数据)查询其他表的数据

注意事项:

1.必须检验被插入新建的表是否在数据库

2.保证接受的新值与已有表中的数据结构的数据类型一致

3.明确被忽略的列是否存在默认值或空值,是否允许为空值

insert into news select * from newstype

select into 插入临时的数据(临时表)

select  *  into classtemp from temp

3.update修改表中的数据

修改表中的数据行

UPDATE news SET score=score+100 WHERE t_type=78

利用查询语句更新值

4.delete 语句

DELETE FROM news where id=7

drop database + 数据库名称;//删除数据库

5.创建数据库(Transact_SQL)

create database  news

6表的创建和管理

create table news(duixia)

7.视图的创建和管理

 CREATE VIEW v1 AS SELECT * from news WHERE id=8

从视图里面修改数据库内容

UPDATE v2 SET t_type=188 WHERE id=2

修改视图

ALTER VIEW v1 AS SELECT * FROM news

删除视图

DROP VIEW v2

8.索引的创建和管理(可以进行快速查找内容)

唯一索引 

CREATE  UNIQUE  INDEX index1 ON news(id)                                                                                      

主键索引

数据库表经常有一列或多列组合,其值唯一标识表中的每一行。该列称为表的主键。

聚集索引

在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。

9.约束

-- 主键:

alter table 表名

add constraint PK_字段名--"PK"为主键的缩写,字段名为要在其上创建主键的字段名,'PK_字段名'就为约束名

primary key (字段名) --字段名同上

--唯一约束:

alter table 表名

add constraint UQ_字段名

unique (字段名)

--外键约束:

如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。外键是用来实现参照完整性的。

alter table 表名

add constraint FK_字段名--"FK"为外键的缩写

foreign key (字段名) references 关联的表名(关联的字段名) --注意'关联的表名'和'关联的字段

alter table 表A add constraint FK_B foreign key (ticket_no) references 表B(ticket_no)

alter table 表A add constraint FK_C foreign key (person_no) references 表C(person_no)

alter table 成绩表 add constraint FK_StudentNo foreign key (StudentNo) references Student (StudentNo)

ON UPDATE CASCADE ON DELETE CASCADE

级联更新,级联删除,这样在删除主表Student时,成绩表中该学生的所有成绩都会删除。

--检查约束:

alter table 表名

add constraint CK_字段名

check (条件表达式) --条件表达式中的条件用关系运算符连接

--默认值约束:

alter table 表名

add constraint DF_字段名

default '默认值' for 字段名--其中的'默认值'为你想要默认的值,注意'for'

--删除创建的约束:

alter table 表名

drop constraint 约束名--约束名为你前面创建的如:PK_字段这样的约束名

--注意:如果约束是在创建表的时候创建的,则不能用命令删除

--只能在'企业管理器'里面删除



你可能感兴趣的:(SQL_Server基本语法)