1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 alter table 表名 [add 子句] [drop 子句] 创建表: create table 表名( 列名 数据类型 [default 缺省值] [not null] [,列名 数据类型 [default 缺省值] [not null]] . . . . . . [,primary key(列名 [,列名] …)]主键(多个值作为联合主键) [,foreign key (列名 [,列名] …) 外键 references 表名 (列名 [,列名] …)]外间关联表 [,unique(列名 [,列名] …)]不允许重复列 [,check(条件)])约束条件 如: create domain person_name char(20)(定义域) create table PROF ( PNO char(10),--职工编号 PNAME person_name not null, --职工姓名 SAL int, --工资 AGE int, --年龄 DNO char(10), --主任职工编号 primary key (PNO), --主键 foreign key (DNO) references DEPT(DNO),外键关联 简单定义表: create table CIA ( NAME varchar(50) primary key, ) REGION varchar(50) not null default ‘region not formalized yet', AREA int null, POPULATION long null, GDP long not null 修改表: 增加新列 删除列 [modify 子句] 修改列定义 Add列不为空是需加默认值(缺省值) 修改列定义时先建一修改后的新列,复制要修改的原列,删除修改的原列 37
38 索引的定义 create [unique|distinct] [cluster] index 索引名
40
41
42
43
44
45
46
47
48
49
50
51
52 unique(distinct):唯一性索引,不允许表中不同的行在索引列上取相同值。若已有相同值存在,则系统给出相关信息,不建此索引。系统并拒绝违背唯一性的插入、更新。 cluster:聚簇索引,表中元组按索引项的值排序并物理地聚集在一起。一个基本表上只能建一个聚集索引。 asc|desc:索引表中索引值的排序次序,缺省为asc。 ? 示例: create cluster index g-index on CIA(REGION) 删除索引: drop index 索引名 sql查询 1、 sum 总和 avg平均 distinct/unique 去重 asc 升序| desc降序 2、 select name case when age>60 then 1 when age<60 then 2 end age from table1. 3、 SELECT last_name +' is a ‘+ job_id AS "Employee Details" FROM employees; 53 54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 4、 escape 转义字符的使用:db2,oracle均可用 例:select * from rpt_plain_define where rpt_id like '%\_%' escape '\'; 5、 order by 排序: order by age asc 升序 order by desc 降序 order by 2 按select查询第三个字段排序 6、集合 集合并:union ? 求选修了001或002号课程的学生号。 (select SNO from SC where CNO = 001) union all (select SNO from SC where CNO = 002) 默认去重 集合交:intersect 集合差: except Table1 except table2 得到table1中有,而table2中没有的记录 求选修了001和002号而没有选003号课程的学生号。 (select SNO from SC where CNO = 001 or CNO = 002 ) except (select SNO from SC
74
75
76
77
78
79
80
81 § 聚集函数 ? 平均值:avg ? 最小值:min ? 最大值:max ? 总和:sum ? 记数:count 聚集函数后跟group by …having… (单个字段查询不需要:SELECT MAX(SALARY) FROM EMPLOYEES) 82
83
84
85
SQL总结
数据库
1查询数据
Select<列名>From<表名>where<查询条件>
2增加数据
Insert into<表名>(列名)values(值)
3更新数据
Update<表名>set<列名=更新值>where=<更新值>
4删除数据
Delete from表名[where<删除条件>]
5创建数据库
Create Database (数据库名)
On primary(
Name =’stuDB_data’
Filename D:\stuDB_data.mdf;
Size=5MB,
Maxsize=100mb
Filegrowth=15%)
Log on (
Name=’stuDB_log’
Filename=”d:\stuDB_log.ldf”,
Size=2MB,
Filegrowth=1mb
)
Go
6创建表
Create Table (表名)
(id int identity(1,1) primary key,
Name char(20) no null
Sex bit
)
7删除表
Delete from 表 where 条件 scoreis null delete 表名
表的约束
1 主键约束
2 唯一约束
3默认约束
4检查约束
5外键约束
两种方式添加约束
1建表的时候添加
2先建表 后添加
多表联接查询分类
内联接
左外联接
右外联接
完整外连接
交叉联接
全联接
T SQL编程
使用变量
局部变量先声明后赋值
以@为前缀
全局变量 以@_@为前缀
声明局部变量
@变量名 数据类型
If else 语句、
If(条件)
Begin
语句1
语句2
End
Else
Begin
语句1
语句2
End
While(条件)
Begin
语句1
语句2
Break
End
事务
1 开始事务 begin transaction
2提交事务 commit transaction
3 回滚(撤销)事务 rollback transaction
一旦事务提交或回滚 则事务结束
索引类型
唯一索引:不允许有两个相同的索引值
主键索引: 为表定义一个主键 将自动创建主键索引 主键索引时唯一索引的特殊类型 主键索引要求主键中的每个值是唯一的 并且不能为空
聚集索引 表中个性的物理顺序与键值的逻辑顺序相同 每个表只能有一个
非聚集索引: 指定表的逻辑顺序 数据存储在一个位置 索引存储在另一个位置 索引中包
含志向数据存储位置的指针 可以的多个 小于240个 创建视图
Create view 视图名
AS
Select 查询语句
创建存储过程
Create proc 存储过程名
@参数 数据类型=默认值OUTPUT
@参数 数据类型=默认值 OUTPUT
AS
SQL语句
GO
第一章数据的检索第一节SELECT基本用法1、简单的数据检索?“取出一张表中所有的数据”是最简单的数据检索任务,完成这个最简单任务…
SQL学习总结:一.创建表:1.创建表一般格式为:CREATETABLE表名(列名数据类型[DEFAULT缺省值][NOTNULL…
123456789101112131415161718192021222324252627282930313233343536al…
总结一个星期前老师给了一个任务,要求用GUI做成一个simulink仿真界面,通过matlab与SQL的连接,然后把仿真结果存到s…
SQL总结1、数据定义(createtableAltertable)请先新建并打开某个数据库,再做如下操作例1:createtab…
SQL总结数据库1查询数据Select列名From表名where查询条件2增加数据Insertinto表名(列名)values(值…
SQL总结1、数据定义(createtableAltertable)请先新建并打开某个数据库,再做如下操作例1:createtab…
总结一个星期前老师给了一个任务,要求用GUI做成一个simulink仿真界面,通过matlab与SQL的连接,然后把仿真结果存到s…
SQL学习总结:一.创建表:1.创建表一般格式为:CREATETABLE表名(列名数据类型[DEFAULT缺省值][NOTNULL…
第一章数据的检索第一节SELECT基本用法1、简单的数据检索?“取出一张表中所有的数据”是最简单的数据检索任务,完成这个最简单任务…