SQL学习笔记1
一. 数据库简介
持久化存储,优化读写,保证数据的有效性
1. 关系型数据库
基于E-R模型 使用sql语句进行操作
2. 数据库分类
文档型,服务型
3. 数据库设计
三范式:列不可拆分、唯一标识、引用主键
关系及存储:
- 1对1:一个对象A对应1个对象B,一个对象B对应一个对象A,关系可存入A或B中
- 1对多:一个关系A对应一个n个对象B,一个对象B对应一个对象A,关系存入B中
- 多对多:一个对象A对应n个对象B,一个对象B对应m个对象A,关系存入新建的一个关系表中
二. 登录方式
- 开启服务
- 登录方式及设置
- 添加用户名
- 连接局域网中的数据库:启用TCP/IP协议
三. 界面操作
1. 数据库
操作:创建、删除、分离、附加、生成脚本(架构,数据)
2. 表
操作:创建、修改、删除
- 字段类型介绍:int,bit(0 or 1),datetime,decimal(数字总位数,小数位数位),char/varchar/nvarchar
- 字符串类型:
char | 不可变不包含中文
varchar | 长度可变不包含中文
nchar | 长度不可变可包含中文
nvarchar | 长度可变可包含中文
- 有n表示Unicode编码,每个字符占一个字节;
- 没有n表示非Unicode编码,英文或数字占一个字节,中文占两个字节;
- 有var表示字符串长度可变
- 没有var表示不可变长度,如果长度不够,会在末尾补空格
如果选择int值时,可以设置标识:此时的值为系统帮助维护,更轻松
3. 约束
实现数据的有效性检查,包括主键,非空,唯一,默认,检查,外键
4. 脚本操作
- 不区分大小写,字符串使用单引号,尾末不需要加分号(可写可不写)
- 按照功能分类:
- DDL(Data Define Language):数据定义语言,用于进行各种数据库对象的创建,主要操作包括create(创建)、alter(修改),drop(删除);
- DML(Data Mange Language):数据管理语言,用于对表数据的添加,修改,删除,查询,主键操作包括insert,update,delete,select;
- DCL(Data Control Language):数据控制语言,用于进行权限分配等; - 注释:== – 单行注释, /**/ ==多行注释
① 数据库的创建、删除
可以通过查看master数据库中的sysdatabases表,来了解当前存在的(选择某句代码执行)
--创建数据库
create database stuDB--数据库名称
on primary
(
name = 'stuDB',--主数据文件的逻辑名称
filename = 'D:\stuDB.mdf',--主数据文件的物理名称
size = 5mb,--主数据文件的初始大小
maxsize = 100mb,--主数据文件增长的最大值
filegrowth = 15% --主数据文件的增长率
)
log on
(
name = 'stuDB_log',
filename = 'D:\stuDB_log.ldf',
size = 2mb,
filegrowth = 1mb
)
② 表的创建、修改、删除
通过`select * from sysobjects where xtype='U'`可以查看所有存在的表
多个列间使用逗号分隔
主键:primary key
标识:identity
非空:not null
惟一:unique
默认:default()
检查:check()
外键:foreign key(列名)references 表名(列名)
--创建表
create table ClassInfo
(
cId int not NUll primary key identity(1,1),--(seed,step)
cTitle nvarchar(10)
)
create table StudentInFo
(
sId int not null primary key identity(1,1),
sName nvarchar(10) not null,
sGender bit default(0),--default设置默认值
sBirthday date,
sPhone char(11),
sEmail varchar(20),
cid int not null,
foreign key(cid) references classinfo(cid)
)