1.数据的组织结构
<1>层次型
<2>网状型
<3>关系型
2.mysql软件包格式
<1>.软件包管理器特有的格式:.rpm包
<2>.通用二进制包:解压玩就能用
<3>.源程序:源码包
3.mysql是C/S架构
客户端:mysql 要安装的包:mysql
服务端:mysqld 要安装的包:mysql-server
默认是监听在3306端口
它一般以mysql 用户,mysql组来运行
4. 磁盘格式化之后把空间分为了两个区域:一个叫“元数据区域”,一个叫“数据区域”。数据区域还会划分成磁盘块。
5.安装完之后在客户端命令行界面中输入:mysql就可以进出mysql数据库了
########################################################################################
以上都是基于安装红帽自带的RPM包的过程。
6.mysql命令的选项
-u 指定用户名(默认是root,这个用户是mysql的root。不是系统的。它的权限是最高的)
-p (建议是-p后边不要输入密码,这样所有人可见,不安全。直接回车即可,使用交互的方式输入密码)
-h 指定主机
修改root密码
第一次修改密码: mysqladmin -u root password ‘123123‘ 回车
第二次修改密码: mysqladmin -u root -p password ‘123123‘ 回车后输入原密码
注意在第二条命令中-p后边不要有空格,直接接密码即可
7.mysql客户端交互有两种模式
交互式模式
批量处理模式(执行mysql脚本的)。
交互式模式中的命令类别:
客户端命令:?或是help获取命令帮助
服务端命令:
都必须使用语句结束符,默认为分号
8. 关系数据库对象:库 、表、索引、试图、约束、存储过程、存储函数、触发器、游标、用户。
9.mysql的库其实是对应在/var/lib/mysql/下的相对应的目录
10.表
他是由行和列组成
表:又叫做一个实体
行:raw
列:field
我们要网表里插入一个数据,需要定义字段名称,数据类型,类型修饰。
数据类型:
字符型:
CHAR
VARCHAR
BINARY
VARBINARY
TEXT
BLOB
数值型:
整型:
精确数值型
整型
十进制
近似数值:
浮点型
日期:
布尔型:
11.
DDL:定义数据对象的
命令:CREATE ALTER DROP
DML:操作语言
命令:INSERT UPDATA DELETE
DCL:控制语言
命令:GRANT REVOKE
这些命令是不区分大小写的
12.库的相关操作
格式: create database 库名;
查看有哪些库 :show databases;
创建一个库 :create database pangbing;
删除一个数据库:drop database pangbing;
use mysql:表示使用mysql这个数据库,创建表时不指定数据库的话就在这个库里创建表。
否则在创建表的时候要使用:create table 库名.表名
13.表的相关操作
格式:create table 表名(字段的定义);
查看默认库中的表:show tables;
查看特定数据中的表: show tables from 库名;
查看表的结构:desc 表名;
删除表:drop table 表名;
修改表:ALTER TABLE 表名;
修改的方法有这么几种
MODIFY 修改某个字段 (把字段的属性改改,字段的名字不变)
CHANGE 改变某个字段的 (字段名称改变)
ADD 添加一个字段
DROP 删除字段
help alter table:查看帮助
14.创建msql用户
create user ‘用户名‘@‘主机‘ identified by ‘密码‘
例子:mysql> create user ‘pangbing‘@‘192.168.3.110‘ identified by ‘123‘;
//上边的IP地址是允许访问的主机地址
##############################################################
特别注意:在授权用户权限后,登陆时一定要指定登陆的mysql服务器
-h 要登录的服务器IP地址 登陆: mysql -u pangbing -h 192.168.3.110 -p
##############################################################
删除mysql用户
drop user ‘用户名‘@‘host‘
例子:drop user ‘bing‘@‘%‘;
15.给用户授权:
注意;如果用户不存在,就会自动创建授权的用户
GRANT 权限列表 ON 库名.表名 TO ‘用户名‘@‘主机地址‘ IDENTIFIED BY ‘密码‘
取消授权:
REOVKE 权限列表 ON 库名.表名 FROM ‘用户名‘@‘主机地址‘
<1>权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔
例如:select insert updata。使用all privileges代表所有权限,可授权任何操作。
<2>IDENTIFIED BY :用于设置用户的密码,如果在授权时省略,表示密码为空。
<3>主机地址:这时允许哪些主机连接服务器器,也可以写成IP(客户端的地址)
‘%‘代表任意主机
例子:grant all on 库名.* to ‘pangbing‘@‘%‘ identified by ‘密码‘
16.查看权限列表:
mysql> show grants for ‘pangbing‘@‘%‘;
select user,host from mysql.user;
17.默认情况下,root用户是不具备远程登录的权限的,这也是基于安全考虑;
mysql> Grant all privileges on *.* to ‘root‘@‘%‘ identified by ‘123456‘ with grant option;
18.查看mysql支持的引擎
mysql> show engines;