MySQL学习笔记 (1)
1,数据库管理概论
(1)
关系型数据模型:特性是利用表(Table)来呈现数据,将表视为一个集合。
以关系型数据模型为基础的数据库称为关系型数据库(Relational DataBase,RDB)。在RDB中有许多表。表由行(Row)及字段(Column)组成,每一行有时称为一笔记录(record),每一行的字段中,都分别存储着值(Value)。每一个字段都会有一个字段名称(Field Name)。
这个表也称为关系(Relation),行称为群组(Tupple),字段名称称为属性(Attribute)。
(2)
表中拥有特别意义的字段称为键(Key)。
主键(Primary Key):字段内容接不相同,可以用来指出表中的每一行。 候选键(Condidate Key):有资格成为主键的字段。
连接键(Concatenated Key):一个以上的字段组合而称为主键。
外部键(Foreign Key):一个表的字段与另一个表产生关联,但是这个字段不是主键。
(3)关联的类型
一对一:两个表之间存在一对一的关联 一对多或多对一
多对多:难以维护,不建议使用
(4)集合运算与关系运算
集合运算:并(Union)、差(Difference)、交(Intersection)、笛卡尔积(Cartesian Product) 关系运算:
选取(Select):取出与条件相符合的行(Row) 投影(Project):取出与条件相符合的字段(field)
结合(Join):以共同的字段为中介,让多个表结合起来,建立一个新表。先执行笛卡尔积,再进行选取
除法(Division):选取被除数表中有除数表字段值的行,并且去除公共部分
2,SQL概述
(1)
目前的SQL标准:SQL92。
多数数据库软件使用不具有兼容性的扩展版本,Oracle:PL/SQL,微软:T-SQL SQL是关系型数据库专用语言,非过程语言。
语句末尾要有分号“;”
注释以两个负号“--”开始,直到行结束。也支持和#。 SQL关键字不区分大小写
(2)SQL语言的功能分类 数据定义语言(DDL):
CREATE(建立数据库或表),ALTER(更改数据库或表的结构),DROP(删除数据库或表)
数据操作语言(DML):
SELECT(搜索数据),INSERT(增加数据),UPDATE(更新数据),DELETE(删除数据)
数据控制语言(DCL):
GRANT(授予用户操作数据的权限),REVOKE(撤销用户操作数据的权限),COMMIT(确定数据的更改),ROLLBACK(取消数据的更改)
3,数据库的定义步骤
(1)使用CREATE DATABASE语句定义数据库 (2)确定字段的名称与数据类型 (3)建立表,用CREATE TABLE语句 (4)插入数据,用INSERT语句
(5)搜索数据库,SELECT <字段名称> FORM <表名称>;
4,建立数据库
(1)CREATE语句
CREATE DATABASE database_name;
(2)USE语句
刚建立完成,或者拥有很多数据库,指定需要使用的数据库。 USE db_name
(3)DROP语句 DROP db_name
5,增加数据库用户
MySQL有一个内置的数据库mysql,用户相关数据存在user、host、db这三个表中。 host:可以访问数据库的主机及其相关信息,例如主机地址、主机名称 user:可访问表中用户的相关信息
db:来自特定主机的特定用户,可访问数据库的相关权限
用如下语句,可以查看指定的表: use mysql;
show columns from host;
可以通过向这三个表插入数据增加用户及其权限:
让MySQL数据库知道是哪一部主机在访问db_name数据库:
INSERT INTO host VALUES('localhost','db_name','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');(10x'Y')
增加用户到user表: INSERT INTO user
VALUES('localhost','user_name',PASSWORD('password'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y' ,'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y' ,'Y','Y','Y','','','','',0,0,0,0);
增加用户的权限到db表: INSERT INTO db
VALUES('localhost','db_name','user_name','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y' ,'Y','Y','Y','Y','Y');