写在前面:Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。MySQL是一个多用户,多线程的SQL数据库服务器,以客户机/服务器结构的实现,由一个服务器守护程序mysqld和很多不同的客户程序和库组成。
所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
RDBMS即关系数据库管理系统(Relational Database Management System)的特点:
- 1.数据以表格的形式出现
- 2.每行为各种记录名称
- 3.每列为记录名称所对应的数据域
- 4.许多的行和列组成一张表单
- 5.若干的表单组成database
RDBMS的一些术语:
- 数据库: 数据库是一些关联表的集合。.
- 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
- 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
- 行: 一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
- 冗余 :存储两倍数据,冗余可以使系统速度更快。
- 主键 :主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
- 外键: 外键用于关联两个表。
- 复合键 :复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
- 索引: 使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
- 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
SQL语言(Structured Query Language,结构化查询语言)分为三个部分:DDL(Data Definition Language)、DML(Data Manipulation Language)、DCL(Data Control Language).
- DDL: CREATE、ALTER、DROP
- DML:INSERT、SELECT、UPDATE、DELETE
- DCL:GRANT、REVOKE
安装使用
windows:
dos:mysql -h 127.0.0.1 -u root -p
结束是:分号或“\g” \c是clear
Linux:
-
RPM包
一般用rpm最方便 二进制软件包和源码包都挺费劲的,但是卸载很方面
安装:rpm -i rpm包
卸载:rpm -e rpm包
启动和关闭;/etc/init.d/mysql start|stop|restart|status
登录:bin/mysql -u root -p
-
二进制软件包和源码包
(源码包还要make和make install更麻烦 )
增加组合用户; groupadd mysql //分割线 useradd -g mysql mysql
启动服务:bin/mysqld_safe --user=mysql
登录数据库:bin/mysql -u root -p
通用操作
查看版本 以及安装是否顺利:mysqladmin --version
数据类型
关于定点数和浮点数:
定点数(decimal)的精度较高,因为是以字符串的形式存储的。但DECIMAL默认整数位10,小数位为0,即默认为整数。
关于日期和时间类型:
YEAR:一个字节
TIME: CURRENT_TIME() NOW() 3个字节
DATE: CURRENT_DATE() NOW() 支持不严格的语法格式 70是1970 69是2069 4个字节
DATETIME:NOW() 支持不严格的语法格式 70是1970 69是2069 8个字节
TIMESTAMP:CURRENT_TIMESTAMP() NULL 不输入都是当前时间 根据时区变化 但是只有4个字节
语句:
关于修改表
ALTER TABLE 表名 MODIFY 属性名 数据类型 改数据类型
ALTER TABLE 表名 MODIFY 属性名1 数据类型 FIRST|AFTER 属性名2 改位置
ALTER TABLE 表名 ADD 属性名1 数据类型 [完整性约束] [FIRST|AFTER 属性名2] 加字段
ALTER TABLE 表名 DROP 属性名
ALTER TABLE 表名 ENGINE=MyISAM;
ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型 改属性名字
看database 可以 SHOW DATABASES 但是看表就必须得有表的名字:DESCRIB 表名 或者SHOW CREATE TABLE表名
关于SHOW
SHOW DATABASES
SHOW CREATE TABLE 表名 DESC 表名
SHOW CREATE VIEW 视图名 DESC 视图名
SHOW TRIGGERS
关于DROP
DROP DATABASE 数据库名
DROP TABLE 表名
DROP VIEW 视图名
DROP TRIGGER 触发器名
DROP INDEX 索引名 ON 表名
关于CREATE
CREATE DATABASE 数据库名
CREATE TABLE 表名 。。。。。。。。
CREATE AlGORITHM=MERGE(或其他)VIEW。。。。
CREATE UNIQUE INDEX 索引名 ON 表名 (属性名)(ASC | DESC)
CREATE TRIGGER 触发器名 AFTER|BEFORE 触发事件 ON 表名 FOR EACH ROW BEGIN 语句 END
(注意这里的BEGIN END 因为是多条语句 所以要注意 先用DELIMITER &&)