数据库
简介
数据库(DataBase,DB):指长期保存在计算机的储存设备上,按照一定规则组织起来,可以被各种用户和应用程序共享的数据集合。
数据库管理系统(DataBase Management System, DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据。
数据库软件应该为数据库管理系统,数据库是通过数据库管理系统创建和操作的
数据库:存储、维护和管理数据的集合。
三大范式(规范)
第一范式:无重复的列当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一 范式的,简记为1NF。满足第一范式是关系模式规范化的最低要求,否则,将有很多基本操作在这样的 关系模式中实现不了。
第二范式:**属性完全依赖于主键(消除部分子函数依赖)**如果关系模式R满足第一范式,并且R得所有 非主属性都完全依赖于R的每一个候选关键属性,称R满足第二范式,简记为2NF。第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被唯一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。这个唯一属性列被称为主关键字或主键、主码。
第三范式:**属性不依赖于其它非主属性(消除传递依赖)**设R是一个满足第一范式条件的关系模式,X是R的任意属性集,如果X非传递依赖于R的任意一个候选关键字,称R满足第三范式,简记为3NF. 满足第三范式(3NF)必须先满足第二范式(2NF)。第三范式(3NF)要求一个数据库表中不包含已在其 它表中已包含的非主关键字信息。
第二范式(2NF)和第三范式(3NF)的概念很容易混淆,区分它们的关键点在于,2NF:非主键列是 否完全依赖于主键,还是依赖于主键的一部分;3NF:非主键列是直接依赖于主键,还是直接依赖于非 主键列
SQL语言
概述
SQL:Structure Query Language(结构化查询语言),SQL被美国国家标准局(ANSI)确定为关系数据库语言的美国标准,后来被国际化标准组织(ISO)采纳为关系数据库的国际标准。
各数据库厂商都支持ISO的SQL标准,普通话
各数据库厂商在标准的基础上做了自己的扩展,方言
SQL是一种标准化的语言,它允许你在数据库上执行操作,如创建项目,查询内容,更新内容,删除条目等操作。
Create,Read,Update,and Delete通常被称为CRUD操作。
SQL语句分类
- DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等。
- DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据)增删改。
- DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别。
- DQL(Data Query Language):数据查询语言,用来查询记录(数据)查询。
注意:SQL语句以" ; "结尾 ,Mysql中的关键字不区分大小写
DDL操作数据库
1.创建数据库
create database语句用于创建新的数据库:
编码方式:gb2312、utf-8、gbk、iso-8859-1
//create database 数据库名
create database mydatabase1;
//create database 数据库名 character set 编码方式
create database mydatabase2 character set gbk;
//create database 数据库名 chararter set 编码方式 collate 排序规则
create database mydatabase3 charater set gbk collate gbk_chinese_ci;
eg:在cmd创建一个名为mydatabase1的数据库
创建成功!
2.查看数据库
查看当前数据库服务器中的所有数据库
show databases;
eg:
查看之前创建的数据库的定义信息
show create database 数据库名;
eg:查看前面创建的mydatabase1数据库的定义信息
3.修改数据库的定义信息
alter database 数据库名 character set 编码方式
eg:查看服务器中的数据库,并把mydatabase1的字符集修改为gbk
4.删除数据库
drop database 数据库名
eg:删除之前创建的mydatabase1数据库
5.其他语句
查看当前使用的数据库
select database();
eg:
NULL表示当前没有使用任何数据库。
切换数据库:use 数据库名
use mydatabase1;
eg:切换sys数据库为当前使用数据库
DDL操作表
create table语句用于创建新表。
语法:
create table 表名(
列名1 数据类型 [约束],
列名2 数据类型 [约束],
...
列名n 数据类型 [约束]
);
说明:表名,列名是自定义,多列之间