目录
一、数据库基础
1、数据库
数据库(Database,DB)是长期存储在计算机内的、有组织的、可共享的、统一管理
的相关数据的集合。按照字面的理解,数据库就是存放数据的仓库。
2、数据库管理系统(DBMS)
- DBMS的功能:数据库定义功能;数据存取功能;数据库运行管理功能;数据库的建立和维护 功能;数据通信功能。
- DBMS的组成:语言编译处理程序;系统运行控制程序;系统建立、维护程序;数据字典。
3、数据库系统(DBS)的组成
数据 | 数据是数据库系统的工作对象,它们是某特定应用环境中进行管理和决策所必需的信息。 |
用户 | 用户是指存储、维护和检索数据库中数据的人员。数据库系统中主要有3类用户:终端用户、应用程序员和数据库管理员。 |
硬件 | 硬件是指存储数据库和运行数据库管理系统DBMS的硬件资源。 |
软件 | 软件是指负责数据库存取、维护和管理的软件系统,通常叫做数据库管理系统(DBMS)。 |
4、数据库系统的特点
1、数据低冗余,共享性高 |
2、数据独立性提高 |
3、有统一的数据控制功能 |
5、关系模型基本术语
关键字不区别大小写,建议使用大写;
-
关系 一个关系就是一张二维表。
元组 二维表中的每一条记录就是一个元组。 属性 二维表中的一列就是一个属性,又称为字段。 域 属性的取值范围。 分量 元组中的一个属性值。 关系模式 对关系的描述。 候选关键字 关系中的一个或几个属性的集合,该属性集惟一标识一个元组。 关系数据库 对应于一个关系模型的所有关系的集合称为关系数据库。 主关键字(主键) 一个关系中有多个候选关键字,可以选择其中一个作为主关键字。 外部关键字(外键) 如果一个属性组不是所在关系的关键字,但它是其他关系的关键字,则该属性组称为外部关键字。 主属性 包含在任一候选关键字中的属性称为主属性
二、SQL基础
1、SQL的语法要求
1、SQL语句可以单行或多行书写,以分号结尾; |
2、可以用空格和缩进来来增强语句的可读性; |
3、关键字不区别大小写,建议使用大写; |
2、SQL的分类
- DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等
- DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);
- DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;
- DQL(Data Query Language):数据查询语言,用来查询记录(数据)
3、DDL:数据定义语言
1、基本操作
(1)查看所有数据库:show databases;
(2)切换数据库:use mydb1,切换到mydb1数据库;
2、操作数据库
(1)创建数据库:CREATE DATABASE [IF NOT EXISTS] mydb1;
创建数据库,例如:CREATE DATABASE mydb1,创建一个名为mydb1的数据库。如果这个数据已经存在,那么会报错。例如CREATE DATABASE IF NOT EXISTS mydb1,在名为mydb1的数据库不存在时创建该库,这样可以避免报错。
(2)删除数据库:DROP DATABASE [IF EXISTS] mydb1;
删除数据库,例如:DROP DATABASE mydb1,删除名为mydb1的数据库。如果这个数据库不存在,那么会报错。DROP DATABASE IF EXISTS mydb1,就算mydb1不存在,也不会的报错。
(3)修改数据库编码:ALTER DATABASE mydb1 CHARACTER SET utf8;
修改数据库mydb1的编码为utf8。注意,在MySQL中所有的UTF-8编码都不能使用中间的“-”,即UTF-8要书写为UTF8。
4、操作表
(1)创建表:
CREATE TABLE 表名(
列名 列类型,
列名 列类型,
......
);
例如:创建stu表
CREATE TABLE stu(
sid CHAR(6),
sname VARCHAR(20),
age INT,
gender VARCHAR(10)
);
再例如:创建emp表
CREATE TABLE emp(
eid CHAR(6),
ename VARCHAR(50),
age INT,
gender VARCHAR(6),
birthday DATE,
hiredate DATE,
salary DECIMAL(7,2),
resume VARCHAR(1000)
);
(2)查看表结构: DESC 表名;
(3) 删除表:DROP TABLE 表名;
(4)修改表:
a、 添加列:给stu表添加classname列
ALTER TABLE stu ADD (classname varchar(100));
b、修改列的数据类型:修改stu表的gender列类型为CHAR(2)
ALTER TABLE stu MODIFY gender CHAR(2);
c、修改列名:修改stu表的gender列名为sex
ALTER TABLE stu change gender sex CHAR(2);
d、删除列:删除stu表的classname列
ALTER TABLE stu DROP classname;
e、 修改表名称:修改stu表名称为student
ALTER TABLE stu RENAME TO student;