数据库学习-1

关于学习数据库相关笔记

创建数据库

  1. SSMS(对象管理器)
  2. T-SQL:查询分析器
    (1) 用户自定义 分配空间大小:name、size、filegrowth、maxsize
    (2) 系统 分配空间大小
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
create database litetitle
on primary /* 主数据库文件 */
( 
	name = litetitle,/* 数据库名称 */
	size = 20,/* 初始大小,默认MB,可省略 */
	filegrowth = 10, /* 可具体值(MB...),可增长率(%) */
	filename = 'D:\DATA\litetitle.mdf',/* 路径 */
	maxsize = 100 /* 最大大小(可选) */
)
log on /* 日志文件 */
(
	name = litetitle_log,
	size = 20,
	filegrowth = 10%,
	filename = 'D:\DATA\litetitle_log.ldf'
)
  • 全选代码右键执行即可创建数据库,如1-1

错误:对文件“x:/xxxx/xxxx.mdf”的目录查找失败,出现操作系统错误 2(系统找不到指定的文件。
答:查看路径是否完整,文件夹"xxxx"是否存在,文件名是否正确!

错误:数据库 ‘xxxx’ 已存在。请选择其他数据库名称。 答: 数据库已存在,删除后再创建或者更换数据库名!

建表

  1. 约束
    • 主键约束:唯一标识,不可重复,不可为空
    • 非空约束:not null
    • 检查约束:check(…)
    • 默认约束:default(…)
    • 外键约束:foreign key
  2. 获取当前系统时间:getdate()
  3. 数据类型
    • 数值型:int、float、decimal
    • 字符型:char、varchar、text
    • 日期型:datetime、smalldatetime
    • 二进制型:binary、varbinary、image
    • 其他:bit、uniqueidentifier、money、smallmoney、ntext、sql_variant、timestamp、xml

切换到litetitle数据库,右键新建查询,输入以下代码,点击执行,即可创建表,如1-2

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
create table student2
(
	stuid nvarchar(20) primary key,/*设置主键,除了主键都可以空*/
	studname nvarchar(20) not null,
	xingbie char(2) check(xingbie='男' or xingbie='女'),/*检查约束*/
	age int check(age>10 and age<30)
	/*age int check(age between 18 and 30) */
	ruxuetime datetime default(getdate()),/*默认约束*/
	xueyuan nvarchar(50),
	zhuanye nvarchar(50) default('计算机')
	banji nvarchar(10),
	beizhu nvarchar(max)
)

查不到表,可以右键刷新一下 如果还是没有,请检测当前数据库是否为litetitle,如果不是请执行use litetitle切换到litetitle数据库

插入数据

insert into 表名(列名1,列名2,…) values(值1,值2,…)

1
2
3
4
5
insert into student2 
values('2022001','张三','男',20,'2019-09-01','信息工程','计算机','2班','')

insert into student2(stuid,studname,xingbie,age)
values('2022002','李四','女',22)

修改数据

修改 学号为2022001的学生入学时间为2021-09-01

1
update student2 set ruxuetime='2021-09-01' where stuid='2022001'

学号为2022001的学生专业改为艺术学院的动漫专业

1
update student2 set xueyuan='艺术学院',zhuanye='动漫' where stuid='2022001'

删除数据、删除行

删除 学号为2022001的学生

1
delete from student2 where stuid='2022001'

查询数据

查询所有学生信息

1
select * from student2

查询学号为2022001的学生信息

1
select * from student2 where stuid='2022001'

编辑列

添加列

1
alter table student2 add beizhu nvarchar(max)

编辑列

1
alter table student2 alter column beizhu nvarchar(100)

删除列

1
alter table student2 drop column beizhu

删除数据库、删除表

1
2
drop database litetitle
drop table student2

查询 信息工程学院和艺术学院的学生信息

1
select * from student2 where xueyuan='信息工程学院' or xueyuan='艺术学院'
comments powered by Disqus