SQL --概论

1, 什么是SQL

SQL:结构化查询语句, 大小写不敏感

2, 什么是关系数据库

关系数据库是按照关系模型来存储、组织和管理数据;

关系数据库中的数据表是二维表,任何数据都可以通过“行+列”来确定;

3, 数据表

2-1, 记录

关系数据表中,一行就是一个记录;用于记录一条数据

2-2, 字段

关系数据表中,一列就是一个字段;用于定义数据类型

说明:Null是表示为空,不是表示0或''(空字符串),建议数据不要定义为Null,因为这样可以加快查询速度,提升性能

2-3, 数据表对应关系

2-3-1, 一对一关系

如一个教师表和一个班级班,若一个教师D只能对应到一个班级表ID,这种就是一对一关系

2-3-2, 一对多关系

如有一个班级表,一个学生表,班级表中的班级ID可对应学生表里多个学生,这样班级表和学生表就是一对多的关系

2-3-3, 多对多关系

多对多关系必须通过一个中间表来实现,即一个班级表有多个老师,一个教师表对应多个班级,所以教师和班级存在多对多关系,把这两关系通过一个中间表就实现了多对多关系

2-4, 主键

主键用来区分数据表不同记录唯一标识;

主键可以是单个字段,也可以是多个字段,当是多个字段构成主键时,这时的主键叫着联合主键

联合主键中可以重复部分字段,但是不允许全部字段都重复

主键一旦确定下来,就不允许修改, 所以在选取主键字段不能与业务相关

自增数据类型一般被用于当着主键

在数据表中,通过建立主键约束可以起到数据不重复的作用

2-5, 外键

外键的作用是把不同的数据表联系起来

外键是通过对数据表的某个字段定义外键约束来实现

ALTER TABLE students         # students为要操作的表
ADD CONSTRAINT fk_class_id   # fk_class_id为外键约束自定义名称
FOREIGN KEY (class_id)       # 指定class_id为外键字段
REFERENCES classes (id);     # 指定关联到classes表的id字段

通过定义外键约束可以保证无法插入无效数据,如上面的classes表不存在id=99的记录,那么students表中就无法插入class_id=99的记录

删除外键约束通过如下命令

# 说明:删除外键约束时,只是删除外键约束,不能删除外键列
ALTER TABLE students             # students为操作表
DROP FOREIGN KEY fk_class_id;    # fk_class_id为外键约束名称

2-6, 索引

索引是对数据表中列进行预排序的一种数据结构,通过索引在查询时不用扫描整个表,从而可以提升查询速度

索引列的值越不相同,效率越高

关系数据库会自动给主键创建索引

2-6-1,创建索引

# 为单列创建索引
ALTER TABLE students           # students为操作表明
ADD INDEX score_index (score); # score_index:自定义的索引名; score:创建索引的列


# 为多列创建索引
ALTER TABLE students                 # students为操作表明
ADD INDEX score_index (score, name); # score_index:自定义的索引名; score, name:创建索引的列

2-7,唯一约束

通过对字段创建唯一约束,可以保证该列的值不重复

ALTER TABLE students                  # students为操作表
ADD CONSTRAINT uniname UNIQUE (name)  # uniname为自定义的约束名称,name为约束列

3, 数据类型

名称类型说明
INT整型4字节整数类型,范围约+/-21亿
BIGINT长整型8字节整数类型,范围约+/-922亿亿
REAL浮点型4字节浮点数,范围约+/-1038
DOUBLE浮点型8字节浮点数,范围约+/-10308
DECIMAL(M,N)高精度小数由用户指定精度的小数,例如,DECIMAL(20,10)表示一共20位,其中小数10位,通常用于财务计算
CHAR(N)定长字符串存储指定长度的字符串,例如,CHAR(100)总是存储100个字符的字符串
VARCHAR(N)变长字符串存储可变长度的字符串,例如,VARCHAR(100)可以存储0~100个字符的字符串
BOOLEAN布尔类型存储True或者False
DATE日期类型存储日期,例如,2018-06-22
TIME时间类型存储时间,例如,12:20:59
DATETIME日期和时间类型存储日期+时间,例如,2018-06-22 12:20:59

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值