一 主要记住下面三类SQL 指令
1 DDL : create alter drop
2 DML : select delete insert update
3 DCL : grant revoke 授权
二 一些基础语句语法
1 创建数据表
create table [database_name.][schema_name] table_name
(column_name column_property column_constraint,….)
create table student(
stuId int identity(1,1) primary key, --identity设置自动增长
stuName varchar(20) not null, --not null 非空
stuAge int ,
stuClass varchar(10)
)
常用的约束:
null /not null 非空约束
primary key 主键约束
unique 唯一性检查
check 检查约束
identity 标识列 设置自动增长的 identity(1,1)
default 默认值
foreign key 外键
主键/外键/唯一/默认值/检查约束:
CONSTRAINT 约束名
PRIMARY KEY(外键列名)
|FOREIGN KEY (列名) REFERENCES 主表名 (主键列名)
|UNIQUE(列名)
|[CHECK(条件表达式) DEFAULT(表达式) FOR 列名]
三 对表的一些操作
1 管理表
显示表结构:系统存储过程sp_help 表名
增加列:alter table 表名 add 列名 数据类型[(长度)] null |not null
修改列:alter table 表名alter column 列名 数据类型[(长度)] null | not null
2 增删查改
--增 : insert [into] table (字段名1,字段名2,...) values(值1,值2...)
--删: delete from table
--改: update table set 字段名1 = 表达式
--查 : select * from table
3 对于数据表的单表查询
select distinct kind from course 利用distinct来过滤重复的选项
(1)使用别名
方法一:SELECT StuNo ‘学号’,StuName ‘姓名’FROM Student
方法二:SELECT StuNo =‘学号’,StuName =‘姓名’ FROM Student
方法三:SELECT StuNo AS ‘学号’,StuName AS ‘姓名’ FROM Student
(2)表达式作为查询结果
(3)带条件查询
WHERE子句中允许使用的比较运算符包括:=(等于)、<(小于)、>(大于)、<>(不等于)、!>(不大于)、!<(不小于)、>=(大于等于)、<=(小于等于)、!=(不等于)。
逻辑运算符:NOT(非)、AND(与)、OR(或)
使用IS NULL或NOT IS NULL查询指定列未输入值或已输入值的数据行
使用BETWEEN或NOT BETWEEN关键字可以更方便的限制查询数据的范围,相当于比较和AND的结合
使用IN或NOT IN关键字,相当于=(!=)和OR的组合
使用LIKE模糊查询,通配符含义如下
% 表示0~N个任意字符
_ 下划线 代表单个任意字符
[] 表示方括号中列出来的任意一个字符
[^ ] 表示任意一个没有再方括号中列出来的字符
(4) 常见的聚合函数
sum(表达式) 求和
avg(表达式) 求平均
Min(表达式) 最小值
Max(表达式) 最大值
count(表达式) 查询满足条件的记录条数
count(*) 返回查询到的记录数
(5)使用分组
SELECT 列名1[,列名2…列名n]
FROM 表名
GROUP BY 列名1
HAVING 表达式
注意:HAVING可以对分组的结果进行筛选;当使用分组时,select后的聚合函数列可以出现多列
(6)使用子查询
使用比较运算符的子查询:SELECT 列名FROM 表名WHERE 表达式 比较运算符(子查询)
使用IN或NOT IN实现子查询:SELECT 列名FROM 表名WHERE 列名 [NOT] IN(子查询)