什么是数据库
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。
我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
RDBMS即关系数据库管理系统(Relational Database Management System)的特点:
1.数据以表格的形式出现
2.每行为各种记录名称
3.每列为记录名称所对应的数据域
4.许多的行和列组成一张表单
5.若干的表单组成database
数据库: 数据库是一些关联表的集合。.
数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
冗余:存储两倍数据,冗余可以使系统速度更快。
主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
外键:外键用于关联两个表。
复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
什么是mysql
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。
·MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
·Mysql是开源的,所以你不需要支付额外的费用。
·Mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
·MySQL使用标准的SQL数据语言形式。
·Mysql可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
·Mysql对PHP有很好的支持,PHP是目前最流行的Web开发语言。
·Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统。
mysql安装启停
1.centos安装mysql,联网输入命令(还有其他安装方式,如源码和rpm包)
2.启动mysqld(server), 可以看出mysql server网络部分是基于tcp的,推测出mysql是可以在本地使用,可以跨网络。
3.启动mysql,进入mysql本地环境,注意初次登陆的时候,按照管理员root身份登陆,没有密码,直接回车
mysql新建用户与授权
1.创建用户
命令:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
说明:
username - 你将创建的用户名,
host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost。
如果想让该用户可以从任意远程主机登陆,可以使用通配符%.
password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.
例子:
CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
2.授权
命令:
GRANT privileges ON databasename.tablename TO 'username'@'host'
说明:
privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).
如果要授予所的权限则使用ALL.;
databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据
库和表的相应操作权限则可用表示, 如.*.
例:
GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';
注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host'WITH GRANT OPTION;
3.设置与更改用户密码
命令:
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
如果是当前登陆用户用SET PASSWORD = PASSWORD(“newpassword”);
例子:
SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");
四.撤销用户权限
命令:
REVOKE privilege ON databasename.tablename FROM'username'@'host';
说明: privilege, databasename, tablename - 同授权部分.
例子:
REVOKE SELECT ON *.* FROM 'pig'@'%';
注意: 假如你在给用户’pig’@’%’授权的时候是这样的(或类似的):GRANT SELECT ONtest.user TO ‘pig’@’%’, 则在使用REVOKE SELECT ON . FROM ‘pig’@’%’;命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON . TO ‘pig’@’%’;则REVOKE SELECT ON test.user FROM ‘pig’@’%’;命令也不能撤销该用户对test数据库中user表的Select 权限.
具体信息可以用命令SHOW GRANTS FOR ‘pig’@’%’; 查看.
五.删除用户
命令:
DROP USER 'username'@'host';
mysql常见操作
1.进入本地数据库(测试)
2.显示当前数据库并创建/删除数据库
3.选择连接数据库,并查看当前选择的数据库状态
显示表名:show tables;
4.查看表结构,desc 表名
5.建表
创建MySQL数据表需要以下信息:
表名
表字段名
定义每个表字段
语法
以下为创建MySQL数据表的SQL通用语法:
CREATE TABLE table_name (column_name column_type);
例:创建一个学生信息表
6.插入数据
MySQL 表中使用 INSERT INTO SQL语句来插入数据。
可以通过 mysql> 命令提示窗口中向数据表中插入数据。
语法
以下为向MySQL数据表插入数据通用的 INSERT INTO SQL语法:
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES(value1,value2,...valueN );
如果数据是字符型,必须使用单引号或者双引号,如:”value”。
7.查询数据
MySQL 数据库使用SQL SELECT语句来查询数据。
你可以通过 mysql> 命令提示窗口中在数据库中查询数据。
语法
以下为在MySQL数据库中查询数据通用的 SELECT 语法:
SELECT field1, field2,...fieldN table_name1, table_name2...
[WHERE Clause]
[OFFSET M ][LIMIT N]
查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
SELECT 命令可以读取一条或者多条记录。
你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
你可以使用 WHERE 语句来包含任何条件。
8.更新数据
如果我们需要修改或更新MySQL中的数据,我们可以使用 SQL UPDATE 命令来操作。.
可以同时更新一个或多个字段。
可以在 WHERE 子句中指定任何条件。
可以在一个单独表中同时更新数据。
语法:
以下是 UPDATE 命令修改 MySQL 数据表数据的通用SQL语法:
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
9.删除语句(MySQL DELETE 语句)
你可以使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录。
你可以在mysql>命令提示符或PHP脚本中执行该命令。
如果没有指定 WHERE 子句,MySQL表中的所有记录将被删除。
可以在 WHERE 子句中指定任何条件
可以在单个表中一次性删除记录。
语法
以下是SQL DELETE 语句从MySQL数据表中删除数据的通用语法:
DELETE FROM table_name [WHERE Clause]