1.数据库基础
(1)什么是数据库
数据库(DataBase,DB)是一个长期存储在计算机内的,有组织的,有共享的,统一管理的数据集合。
数据库的发展大致划分为如下几个阶段:人工管理阶段、文件系统阶段、数据库系统阶段、高级数据库阶段、其种类大概有3种:层次式数据库、网络式数据库、关系是数据库,不同种类的数据库按照不同的数据库结构来联系和组织。
(2)数据库数据类型
数据类型决定了数据在计算机中的存储格式,代表不同的信息类型,常用的数据类型有:
整数数据类型、浮点数数据类型、精确小数类型、二进制数据类型、日期/时间数据类型、字符串数据类型。
2.SQL语言
对数据库进行查询和修改操作的语言叫做SQL。SQL的含义是结构化查询语言(Structured Query Languate)。SQL有许多不同的类型,有3个主要的标准: ANSI (美国国家标准机构) SQL,对ANSI SQL修改后在1992年采纳的标准,称为SQL-92或SQL2。最近的SQL-99标准,SQL-99标准从SQL2扩充而来并增加了对象关系特征和许多其他新功能。其次,各大数据库厂商提供不同。
SQL语言包含以下4个部分。
(1)数据定义语言(DDL): DROP、CREATE、ALTER等语句。
(2)数据操作语言(DML): INSERT (插入)、UPDATE (修改)、DELETE (删除)语句。
(3)数据查询语言(DQL): SELECT 语句。
(4)数据控制语言(DCL); GRANT、REVOKE、COMMIT、ROLLBACK等语句。
3.MySQL数据库
(1)什么是MySQL
MySQL是一个小型关系数据库管理系统,与及其他大型数据库管理系统,例如Oracle、DB2、SQL Server等相比,MySQL规模小,功能有限,但是它体积小,速度快,成本低,且它提供的功能对稍微复杂的应用来说已经够用,这些特性使得MySQL成为世界上最受欢迎的开放源代码数据库。
(2)MySQL的优势
1>速度:运行速度快
2>价格:MySQL对多数个人用来说是免费的
3>容易使用:与其他大型数据库的设置和管理相比,其复杂程度较低,易于学习。
4>可移植性:能够工作在众多不同的系统平台上,例如Windows、Linux、Unix、Mac OS等。
5>丰富的接口:提供了用于C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等语言API。
6>支持查询语言:MySQL可以利用标准的SQL语法和支持ODBC(开放式数据库连接)的应用程序。
7>安全性和连接性:十分灵活和安全的权限和密码系统,允许基于主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码安全。并且由于MySQL是网络化的,因此可以在因特网上的任何地方访问,提高数据共享的效率。
4.数据库的基本操作
(1)创建数据库,语法
CREATE DATABASE <databasename>;
(2)查看创建数据库的定义,语法
SHOW CREATE DATABASE <databasename>\G;
(3)删除数据库,语法
DROP DATABASE <databasename>;
(4)查看默认的存储引擎,语法
SHOW ENGINES;
存储引擎分别有:InnoDB,MyISAM,Memory,Archive,Federated。
不同的存储引擎都有各自的特点,如图
(5)修改默认的存储引擎
一般情况下,在路径C:\ProgramData\MySQL\MySQL Server 5.7文件夹下会有一个my.ini配置文件,编辑模式打开,然后CTRL+F搜索eng,把default-storage-engine参数后面的值改为要设置的存储引擎,保存之后重启MySQL服务即可。
4.数据表的基本操作
(1)创建数据表,语法
CREATE DATABASE <databasename>;
(2)使用各种约束
主键约束
主键,又称主码,是表中一列或多列的组合。主键约束(PRIMARY KEY CONSTRAINT)要求主键列的
数据唯一,并且 不允许为空。主键能够唯一表示表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据查询的速度。主键和记录之间的关系如同身份证和人之间的关系,他们之间一一对应。主键主要分为两种: 单字段主键和 多字段联合主键。1>单字段主键
1.在定义列(字段)的同时指定主键,语法
字段名 数据类型 PRIMARY KEY[默认值]
2.在完成所有列之后指定主键,语法
[CONSTRAINT<约束名>]PRIMARY KEY[字段名]
2>多字段联合主键
PRIMARY KEY[字段1,字段2,.....字段n]
使用外键约束
外键用来在两个表的数据之间建立链接,它可以是一列或者多列。一个表可以有一个或多个外键。外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值。
外键:首先它是表中的一个字段,它可以不是本表的主键,但对应另外一个表的主键。外键主要的作用是保证数据引用的完整性,定义外键后,不允许删除在另一个表中具有关联关系的行。外键的作用是保持数据的一致性、完整性。例如,部门表tb_dept的主键是id,在员工表tb_emp中有一个键deptId与这个id关联。
主表(父表):对于两个具有关联关系的表而言,相关联字段中主键所在的那个表即是主表。
从表(子表):对于两个具有关联关系的表而言,相关联字段中外键所在的那个表即是从表。
1>创建外键的语法
[CONSTRAINT<外键名>] FOREIGN KEY 字段名1[,字段名2,....] REFERENCES <主表名> 主键列1[,主键列2,....]
“外键名”为定义的外键约束的名称,一个表中不能有相同名称的外键;
“字段名”表示字表中需要添加外键约束的字段列;
“主表名”即被子表外键所依赖的表的名称;
“主键列”表示主表中定义的主键列,或者列组合。
使用非空约束
非空约束(Not NULL CONSTRAINT)指字段的值不能为空,对于使用了非空约束的字段,如果用户再添加数据时没有指定值,数据库系统会报错。语法如下
字段名 数据类型 NOT NULL
使用唯一性约束
唯一性约束(UNIQUE CONSTRAINT)要求该列唯一,允许为空,但只能出现一个空值,唯一性约束确保一列或几列不出现重复值。
1>在定义列(字段)时指定唯一性约束
字段名 数据类型 UNIQUE
2>在定义完成后指定唯一性约束
[CONSTRAIN<约束名>] UNIQUE(<字段名>)
使用默认约束
默认约束(Default CONSTRAINT)指定某列的默认值,如男性同学较多,性别就可以默认为‘男’,如果插入一条新的记录时没有为这个字段赋值,默认给字段赋值‘男’
字段名 数据类型 DEFAULT 默认值
设置表的属性值自动增加
字段名 数据类型 AUTO_INCREMENT
(3)查看数据表结构
DESCRIBE 表名;或者SHOW CREATE TABLE <表名>\G;
(4)修改数据表
修改表名
ALTER TABLE <原表名> RENAME <新表名>;
修改字段的数据类型
ALTER TABLE <表名> MODIFY <字段名> <数据类型>
修改字段名
ALTER TABLE <表名> CHANGE <原字段名> <新字段名><新数据类型>;
添加字段
ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件][FIRST|AFTER 已存在的字段名];
删除字段
ALTER TABLE <表名> DROP <字段名>;
修改字段的排序位置
ALTER TABLE <表名> MODIFY <字段1><数据类型> FIRST|AFTER <字段2>;
更改表的存储引擎
ALTER TABLE <表名> ENGINE=<存储引擎名>;
删除表的外键约束
ALTER TABLE <表名> DROP FOREIGN KEY<外键约束名>;
删除表
DROP TABLE [IF EXISTS]<表名>;
6.MySQL数据类型
MySQL支持多种数据类型,主要有数值类型,日期/时间和字符串类型
1>数值数据类型:整数类型TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,浮点小数数据类型FLOAT和DOUBLE、定点小数类型DECIMAL。
2>日期/时间类型:YEAR、TIME、DATE、DATETIME和TIMESTAMP。
3>字符串类型:CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM、和SET等。。
整数类型
待续。。