有错请指出
SQL server基础知识
SQL server命令
1.1.1创建数据库
1.创建数据库
use master
go
create database database_name
on [primary]
(
name = 'database_name_data',
filename = 'd:\database_name.mdf',
size = 5,
maxsize = 50,
filegrowth = 5
)
log on
(
name = 'daba_log_name',
filename = 'd:\database_log.ldf'
size = 5MB,
maxsize = 50MB,
filegrowth = 5MB
)
database_name:数据库的名称 on:用于指定存储数据库数据部分的磁盘文件清单 log on:指定存储事务日志的磁盘文件清单 primary:指定 包括数据的逻辑起点和系统表的主文件,若缺省,则为列出的第一个文件 name:SQL server执行SQL语句引用的逻辑文件 filename:指定操作系统下数据库存储文件名字,扩展名为mdf或ldf size:指定数据库最初的存储大小 maxsize:指定数据库可使用的最大存储空间,若指定unlimited,则能在磁盘指定的范围内不断的扩大 filegrowth:指定数据库增长的数量,默认值为256KB,最小值64KB。设置为0,则不增长。
1.1.2查看数据库
exec sp_helpdb student
go
1.2修改数据库
1.2.1修改数据库名
alter database student
modify name = stu --将学生数据库的名字更改为stu
go
--或者使用系统存储过程修改数据库名
exec sp_renamedb 'stu','student' --将数据库stu修改为student
go
1.2.2增加数据库文件
alter database 数据库名
add 主数据文件名/日志文件名
(
name = '主数据文件名',
filename = '主数据文件物理路径名',
size = '默认数据库大小',
maxsize = '最大容量'
filegrowth = '增长量'
)
go
1.2.3增加数据库空间
alter database 数据库名
modify file
(
name = '主数据文件名',
szie = '默认数据库大小',
maxsize = '最大容量'
)
go
1.3删除数据库
两种方法
drop database 数据库名
go
或者
alter database 数据库名
modify file 主数据文件名
go
2.1创建数据表
create table 表名
(
字段名一 数据类型 字段约束,
字段名二 数据类型 字段约束
....
)
go
创建一个学生表
create table students
(
sno int primary key,
sname varchar(32) not null,
ssex char(2) not null check(ssex = '男' or ssex = '女'),
class char(8) not null check(class like '2020[0-9][0-9][0-9][0-9]')
)
go
此例使用的check约束和主键约束,check里面是一个条件表达式,如第一个check,就要使新添加的学生的性别必须填男或女
而第二个check约束使用了like模糊查询,这样为学生添加班级的,前4个数字规定使2020,后面使0-9之间选择
创建一个班级表
create table class
(
class_id int not null,
sno int not null,
class_num int not null,
[constraint 主键名] primary key(class_id,sno),
[constraint check_name] check(class_num > 0),
[constraint default_name] default(1) for class_num
)
go
如果将约束写在字段约束后面,就不能写约束名,因此写创建表的后面可以constraint语句增加一个名字,当然也可以不写
常见的约束
? 字段约束默认为null,也就是可以为空 ? 非空约束 :not null ? 主键约束:primary key ? 外键约束:references ? 检查约束:check ? 唯一约束:unique
2.2修改数据表
2.2.1增加列
增加列
alter table 表名
add 电话 char(11) not null
go
2.2.2修改字段属性或者约束
修改列得数据类型
alter table table_name
alter column 字段名 新数据类型
go
例:将学生表的姓名字段的数据类型修改为char(16)
alter table students
alter column sname char(16)
go
修改约束
alter table table_name
alter column 字段名 数据类型 新数据约束
go
例:将学生表姓名字段的非空约束修改为空约束
alter table students
alter column sname char(16) null
go
修改约束和修改数据类型是可以同时写
alter table table_name
alter column 字段名 新数据类型 新数据约束
go
2.2.3修改列名或者属性名和数据表名
使用存储过程修改
修改属性名
exec sp_rename '数据库名.旧属性名','新属性名'
go
exec sp_rename 'stu.Sname','sname'
go
修改表名
exec sp_rename '旧表名','新表名'
go
exec sp_rename 'students','Students'
go
2.3删除表
drop table table_name
ag:删除学术表
drop table students
3.insert语句
3.1.insert语句的基本用法
两中写法
第一种,左边必须包含表的所有属性
insert into table_name values (field1,field2,field3...),(values1,values2,values3...),(values1,values2,values3...)...
第二种,左边可以允许只包含表的部分属性,就是一条记录只插入一写属性,应当注意表结构非空约束
insert into table_name (field1,field2...) values (values1,values2...),
(values1,values2...)....
3.2.insert语句的拓展用法
1.将从一张表中查询的内容直接插入到与之表结构一样的表中
表已存在
insert into table_name1 select * from table_name2
go
表未存在
select * into new_table from table_name
go
加入我们要将表结构复制到新表应该怎么写
假如将学生表的表结构复制,
select * into new_table table_name where sno is null
go
|