SQL基本操作
系统数据库:
1、master:用于记录所有SQL server系统级别的信息,比如说登录的信息,系统设置信息。如果他没了。你的SQL server就挂了。
2、model:模型的意思,就像模板一样。创建数据库都是继承model。如果你在该数据库下创建一张表,以后每创建新数据库,就已经有了model的表。
3、msdb:和master一样记录信息,不同的是它记录任务调动,事件处理,数据备份及恢复,报警和异常的信息。
4、tempdb:临时数据库,它为所有临时表,临时存储过程提供存储空间
注意:以上四个系统数据库,别去删,删了有大大小小的问题。
数据类型:
1、数值型:
整型:int smallint bigint tinyint
浮点型:float real
货币型:money
2、布尔型(bit):
True
False
3、二进制型
binary
varbinary
image
4、文本数据类型
char 固定长度
vachar 可变长度
nvarchar
nchar
text 长文本信息
ntext 可变长度的长文本
datetime 日期和时间
新建数据库:
1、数据库文件 :主数据文件和副数据文件
2、日志文件:一个或多个
3、create database 名称
重命名数据库:exec sp_renamedb new,old
删除数据库:drop database 名称1,名称2
新建数据库:
create database test(数据库文件名)
on
(
name=test_data(主数据文件),
filename = 'D:\ProgramFiles\SQL\data\test_data.mdf',
size=6(初始化大小),
maxsize=12,
filegrowth(增长率)=10%
)
log on
(
name=test_log(日志文件),
filename='D:\ProgramFiles\SQL\data\test_log.ldf',
size=1,
maxsize=8,
filegrowth=10%
)
创建表:
create table 教师表
(
教师编号 int identity(1,1) primary key,
教师姓名 varchar(20) not null,
教师年龄 int,
教师工资 money,
奖金 money,
总收入 money,
合作院校 varchar
)
说明:
identity:表示自增长,通常为ID赋值
primary key:主键
not null:不为空
注意:每个字段后面的逗号别忘了
查询表:
select * from 教师表
select 奖金,总收入 from 教师表
删除表:
use test--切换到该表所在的数据库下,如果已经在,就不用切换
drop table 教室表--删除整个表
删除表,但不删除表结构,只清空数据;
Truncate table 教师表
重命名表:
exec sp_rename 教师表,教师表1
新增字段:
alter table 教师表
add Email varchar(60) default ''
修改字段:
alter table 教师表
alter column 教师薪资 int
删除字段:
alter table 教师表
drop column 家庭住址
新增数据:
insert into 教师表(教师年龄,教师职称,教师薪资,课程)
values(19,'微微',100000,'java')
查询数据:
select * from 教师表 where 教师薪资<10000
select * from 教师表 where 教师薪资 in(5555,6666,9999)
select * from 教师表 where 姓名 not in(select 班主任 from 课程表)
select 姓名,教师薪资+奖金 as 总收入 from 教师表
select * from 课程表 where 合作学校 like '%马%'
select * from 课程表 where 合作学校 like '黑%'
select top 4 * from 课程表
select top 20 percent * from 教师表
select * from 课程表1 intersec select * from 课程表2 集合交
select * from 教师表,课程表1 where 教师表.姓名=课程表1.班主任
select * from 教师表,课程表1 where 姓名=班主任 去后缀
排序:
select * from 教师表 order by 年龄 --默认升序,倒序desc
select * from 教师表 order by 年龄,教师薪资
去重:
select distinct 姓名 from 教师表
统计求和:
select COUNT(*) as 行数 from 教师表
select COUNT(姓名) from 教师表
平均:
select avg(教师薪资) from 教师表
最大和最小:
select max(教师薪资) from 教师表
更新数据:
update 教师表 set 教师年龄=28,教师薪资=7777 where 教师编号=4
update 教师表 set 姓名='莲花中学之'+姓名
删除数据:
delete from 教师表 where 教师编号=7
约束:
1、unique:唯一约束,一个表可以有多个约束,但primary 约束只有一个
2、Primary key:约束唯一标识数据库中的每条记录,主键必须包含唯一值,不能包含null值,有且只有一个主键。
3、Foreign key:两个表的约束
4、check 约束:如果对单个列定义check约束,那么该列值运行特定的值。
如果对一个表定义check约束,那么此约束会在特定的列中对值 进行限制。
5、default:默认值
alter table userIofo
add constraint PK_userId primary key(userId),
constraint CK_userPwd check(len(userPwd)>6),
constraint Ck_Gender check(Gender=0 or Gender=1),
constraint DF_Gender default(0) for gender,
constraint CK_Email check(Email like '%@%')
--[1]外键约束时注意类型,长度必须与引用的主键列的类型,长度一致
--[2]外键约束时注意引用表中必须要有主键列
--[3]exec sp_helpconstraint 表名称