PHP视频学习一 mysql

设置mysql.exe文件目录到环境变量Path中去,可能在cmd下面使用mysql,wind7试了一下好像要重启以后才生效

什么是数据库
数据库就是存储数据的地方,是保存在计算机(硬盘/内存)中的数据集合

关系型数据库

什么是数据库管理系统
数据库管理系统(Database System)是由一组程序构成,其主要功能是完成对数据库中的数据进行处理
主流的数据库管理系统
mysql
Sql server / Access
Oracle / db2 / sybase
postgresql / sqlite

登录数据库命令:
cmd > mysql -u[用户名] -p[密码] -h[要连接的主机ip或者域名]

创建数据库命令:
mysql > create database [数据库名];
在Unix下,数据库(数据表)的名称是区分大小写的,因此访问数据库时输入"Itcast/ITCAST"均不能访问该数据库,(windows下,该限制不适用)

查看数据库编码:
show create database [数据库名称];

创建数据库时设置数据库编码:
create database [数据库名称] default character set [字符集];

查看mysql中安装的所有数据库
show databases;

删除数据库
drop database [数据库名称];

配置windows的host文件
windows/system32/det/

什么是数据表,字段,记录


合用数据库
use [数据库名称];


创建数据表:
create table [数据表的名称](column_name column_type, .....);

删除数据表:
drop table [数据表名称];

crate table student2
(
id int ,
name varchar(10)
);
这种先将sql在文档中写好,然后直接复制到dos下面执行的方法行不通,wind7上

查看数据表结构:
show create table [数据表名];

查看某个数据表的字段信息
show columns from [数据表名]


字段(列)的类型
每个字段(列)所包含的数据类型都是相同的,字段的类型规定了字段中的数据类型
mysql中的类型包括,数值类型,字符串类型,日期时间类型,在创建表的时候除了可以指定字符的类型还可以指定该类型的详细描述,如: 数字型是否带小数,字符串类型的长度等信息
数值类型:
TINYINT 1 -128-127
SMALLINT 2
MEDIUMINT 3
INT 4
BIGINT 8
FLOAT 4
DECIMAL

字符串类型:
CHAR 0-255
VARCHAR 0-255
TINYBLOB 0-255
TINYTEXT 0-255
BLOB 0-65535
TEXT 0-65535
MEDIUMBLOB 0-16777215
MEDIUMTEXT 0-16777215
LONGBLOB 0-4294967295
LONGTEXT 0-4294967295

字段日期时间类型
DATE 3
TIME 3
YEAR 1
DATETIME 8
TIMESTAMP


数据表的存储引擎
存储引擎可简单理解为表类型,每个表都有一个存储引擎,可在创建时指定,也可之后使用ALTER TABLE语句修改,都是通过ENGINE关键字设置的,若创建时没有指定,则为默认存储引擎
默认存储引擎也可通过mysql.ini进行修改

数据表的存储引擎--myISAM
myISAM是默认存储引擎(Linux下),不支持事务,外建,但访问速度快:
每个MyISAM物理上存储为3个文件,文件名与表名相同,扩展名分别为:frm(存储表定义)
MID(MYdata存储数据),MYI(MYIndex存储索引),其中数据文件索引文件可放置在不同目录。
数据文件和索引文件的路径,需要在创建表时通过DATA DIRECTORY和INDEX DIRECTORY语句指定


数据表的存储引擎 --InnoDB
InnoDB支持事务,支持行级锁定
(1) InnoDB表可定义自动增长列,对于InnoDB表,自动长列必须是索引,或者组合索引的第一列
(2)只有InnoDB引擎支持外键约束,创建索引时,可指定删除,更新父表时,对子表的相应操作
(3) 存储格式

InnoDB存储表和索引有两种方法
使用同享表空间存储-表结构保存在.frm文件中,数据和索引保存在innodb_data_home_dir和innodb_data_file_path定义的表空间中,可以为多个文件
使用多个表空间存储-表结构仍然存储在.frm文件中,但每个表的数据和索引单独保存在.ibd中,若为分区表,则每个分区对应单独的.idb文件,文件名为表名+分区名
使用多个表空间存储,需设置参数innodb_file_per_table,并重启服务才可生效,只对新有效


数据表的存储引擎---Memory
Memory类型的表的数据存储在内存中,每个表一个frm文件记录表结构
默认使用HASH索引,所以访问速度非常快,但一旦服务关闭,表中的数据会丢失
MEMORY类型的表的存储数据大小可通过max_heap_table_size系统变量的约束,初始值为16MB,可按需求增大,此外,在定义MEMORY表时可通过MAX_ROWS子句定义表的最大行数
该存储引擎主要有于那些内容稳定的表,或者作为统计操作的中间表,对该类表需要谨慎,因为数据并没有实际定入磁盘,一旦重启,则会丢失

 

数据表的类型
InnoDB与MYISAM这两个是最常用的
InnoDB->支持锁和事务处理
MYISAM->不支持事务处理,但是访问速度较快


数据库的备份与还原:
1 备份:在cmd中输入 mysqldump -u[用户名] -p[密码] [要备分的数据库名称] > [导出的路径]
2 还原: 在cmd中输入mysql -u[用户名] -p[密码] [要还原的数据库名] < [导入的文件路径]
导入命令时语句结束后面不能跟分号哦


修改当前用户的密码
mysqladmin -u[用户名] -p[修改前的密码] password [修改后的密码]

2013-12-01
查看当前使用的数据库名字
select dtabase();

MYSQL的关键字
关键字不可用作表名,字段名等,若必须使用关键字做表名、字段名,那么需要使用以下格式输入。`名字`(斜点)


MYSQL常用指令
//退出数据库
mysql> quit(exit)
//创建新用户
grant [all|select,insert,update,delete] on [数据库].[表] to [用户名]@[登录主机] identified by "[密码]"
//显示数据表的结构
mysql > DESCRIBE 表名; describe
//用文本方式将数据装入数据表中
mysql > LOAD DATA LOCAL INFILE "d:/mysql.txt" INTO TABLE 表名;
//导入.sql文件命令
mysql > source d:mysql.sql;

你可能感兴趣的:(mysql)