文章目录

  • SQL基础
  • 数据库基础知识
  • 数据库是什么
  • DBMS
  • SQL
  • SQL概述
  • SQL语法
  • 创建/删除数据库
  • 创建/删除表
  • 插入数据
  • 更改数据
  • 删除数据
  • 完整性约束
  • 完整性的分类
  • 完整性约束


SQL基础

数据库基础知识

数据库是什么

官方定义:
数据库 (Data Base,简写为 DB) 是指长期存储在计算机内的,有组织,可共享的数据的集合。数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。
简单理解
数据库是用于保存数据的容器。你可以把它想象成一个虚拟的“文件柜”,其中可以放入多个“文件”,按照一定的结构保存和管理数据,而数据表之间又往往存在交叉引用的关系,这种关系使数据库又被称为关
系型数据库。

DBMS

数据库管理系统(Database Management System,DBMS)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库。常用的数据库管理软件有 MySQL、Access、SQLite、SQL SERVER、Oracle等,
MySQL是目前最常用的数据库管理软件。

SQL

SQL概述

SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL不区分大小写。

SQL语法

创建/删除数据库
create database (数据库名称)student; --创建
DROP DATABASE student;--删除
show create database student;  --查看
创建/删除表
create table 表名(
列名1 列类型 [<列的完整性约束>],
列名2 列类型 [<列的完整性约束>],
... ...
) 
------------------------------------------------
--创建表示例:
CREATE TABLE employe(
emp_id INT AUTO_INCREMENT,
emp_name VARCHAR(20) NOT NULL,
emp_add VARCHAR(60) NOT NULL,
emp_date DATE,
)
----------------------
drop table employe; -- 删除表
插入数据
INSERT [INTO] <表名> [列名] VALUES <值列表>
insert into employee values (1000,'jackosn','changan',2021-11-01);
insert into employee(emp_name) values ('tom');
更改数据
UPDATE <表名> SET <列名 = 更新值>
[WHERE <更新条件>]
update employee set emp_name='Tom' where emp_name='Alex';
删除数据
DELETE FROM <表名> [WHERE <删除条件>]
delete from student where age<18;

此语句删除表中的行,如果不带where子句,则删除整个表中的记录,但是表不被删除

完整性约束

数据库中的数据是从外界输入的,而数据的输入由于种种原因,会发生输入无效或错误信息。保证输入的数据符合规定,成为了数据库系统,尤其是多用户的关系数据库系统首要关注的问题。
数据完整性 = 精确性 + 可靠性

完整性的分类
  1. 实体完整性:是指保证表中所有的行唯一。实体完整性要求表中的所有行都有一个唯一标识符。这个唯一标识符可能是一列,也可能是几列的组合,称为主键 。也就是说,表中的主键在所有行上必须取唯一值。
  2. 域完整性:是指一个列的输入有效性,是否允许为空值。强制域完整性的方法有:限制类型、格式或可能值的范围。
  3. 参照完整性:是指保证主关键字和外部关键字之间的参照关系。它涉及两个或两个以上表数据的一致性维护。
完整性约束

MySQL 常见完整性约束:
PRIMARY KEY 主码约束(主键)
UNIQUE 唯一性约束
NOT NULL 非空值约束
AUTO_INCREMENT 用于整数列默认自增1
UNSIGNED 无符号整数
DEFAULT default_value 默认值约束
FOREIGN KEY 外键约束

CREATE TABLE EMPLOYEE
(
emp_id int PRIMARY KEY, --主键约束
dep_id int,   
emp_name VARCHAR(20) NOT NULL, --非空约束
emp_gender BIT NOT NULL, --非空约束
)