SQL 基本操作
----------------------------/////数据库操作//////---------------------------
--指向当前使用数据库
use master
go
--创建数据库
create database student
on primary --primary 参数可以省略
(
--数据库文件逻辑名称
name='studentDB_date',
--数据库物理文件地址 绝对地址
filename='d:\studentDB_date.mdf',
--数据库文件初始大小
size=10MB,
--数据文件增长速度
filegrowth=1MB
--最后一行不需要分号
)
---多个数据文件与日记文件
,
(
---中间部分与上面一样 注意要加上上面一行的逗号
)
---多个数据文件与日记文件
log on
(
--数据库日记文件逻辑名称
name='studentDB_log',
--数据库日记文件地址 绝对地址
filename='d:\studentDB_log.ldf',
--数据库日记文件初始大小
size=3MB,
--数据日记文件增长速度
filegrowth=1MB
--最后一行不需要分号
)
go
--检测数据是否存在
if exists(select * from sysdatabases where name='student')
--删除数据库 不可恢复
drop database student
--分离数据库
exec sp_detach_db @dbname=数据库名字
--附加数据库 注意结尾的分号
exec sp_attach_db @dbname=数据库名字,
@filename1='数据库主文件地址',
@filename2='数据库日记文件地址'
----------------------------/////表操作//////---------------------------
--建表语法
create table 表名
(
字段1 数据类型 列特性
字段2 数据类型 列特性
..........
)
列特性:
1. NULL 或 NOT NULL
2.是否是标识列 identity
3.是否有默认值 default
3是否为主键 primary key
--------------------------------
use master
go
--检测表是否存在
if exists(select * from sysobjects where name='student')
--删除表 不可恢复
drop table student
--创建表
create table student
(
studentid int identity(10000,1) primary key, --学号自动增长 主键 从10000开始
studentname varchar(10) not null,
sex varchar(4) null,
address varchar(100) default('地址不详') -- 定义默认地址
)
go
--插入记录语法
insert [into] 表名 [列名] values(值集合)
--更新记录语法--不带查询条件更新所有数据
update 表名 set 列名=更新值 [where 查询条件]
--删除记录语法--不带查询条件删除所有数据
delete from 表名 [where 查询条件]
truncate table 表名 --这种方式删除后的表格可以恢复填充自增的数控
----------------------------/////查询语句//////---------------------------
--基本查询语法
select [字段] from [表名] where [查询条件] oder by [排序]
--对查询字段改名
1. 字段 as 新字段名称
2 新字段名称=字段
--排序
order by 待排序的字段 ASC --升序
order by 待排序的字段 DESC --降序
order by 待排序的字段1 ASC, 待排序的字段2 DESC --多条件排序
--限制固定行数查询
top 行数
--限制百分比查询
top 行数 percent
--通配符
% 匹配一个或多个字符
_ 下划线通配一个字符
[] 括号中任意一个
--- between to
时间段赛选用这个比较合适
-- in
---多表连接查询
inner join 待链接的表 on 主键=外键 ---内链接
left join 待链接的表 on 主键=外键 --左外链接 注意带链接的表示辅表
right join 待链接的表 on 主键=外键 -- 右外链接
group by 待分组的字段(一定出现在查询的字段中) --分组函数 实用于 inner join 中
having 对分组的结果进行赛选 一般出现在 group by 分组的数据中使用
实现的顺序: where group by having
--添加约束的基本语法 ----------------------------/////约束条件//////---------------------------
alter table 表名
add constraint 约束名 约束类型_约束字段
--约束名的取名规则:约束类型_约束字段
-- pk_字段 主键(primary key)约束
-- uq_字段 唯一(unique key)约束
-- ck_字段 检查(check key)约束
-- df_字段 默认(default key)约束
-- fk_字段 外键约(foreign key)束
--示例
alter table student
add constraint pk_studentid primary key(studentid) --主键约束
alter table student
add constraint uq_studentid unique(studentid) --唯一性约束
alter table student
add constraint ck_sex check (sex='男' or sex='女') --检查约束
alter table student
add constraint df_address default('地址不详') for address --默认约束
alter table student
add constraint fk_class foreign key(class) references clsaabom --主外键约束
浙公网安备 33010602011771号