基础 - 数据库
phpMyAdmin 操作本地数据库 登录 新建 输入数据库名称 排序规则 utf8-bin 创建 导入 选择SQL文件 打开 执行
Navicat
MySQL的图形化管理工具
Navicat中文版的安装
http://pan.baidu.com/s/1Eta1K
附带破解机
注意,要使用Navicat必须先给MySQL设置密码
小编采用的是WAMP环境,建议读者朋友使用
设置MySQL的密码
WAMP上打开phpMyAdmin
用户 root 密码 不写 回车
用户账户
修改权限
修改密码 123456
打开 C:\wamp64\apps\phpmyadmin4.5.5.1\config.inc.php
修改 $cfg['Servers'][$i]['password'] = '123456';
重启服务
如需要,重置MySQL密码:
在文件【my.ini】的【mysqlId】字段最下面加入【skip-grant-tables】,重启mysql服务
再进入mysql控制台按照上面第二种改密码的方式重新修改密码。
改完密码后将【my.ini】中添加的【skip-grant-tables】删掉。
重新启动服务
数据库Database
按照数据结构来组织、存储、管理数据的仓库
MySQL
关系型数据库管理系统RDBMS(Relational Database Management System )之一
参考教程 http://www.runoob.com/mysql/mysql-tutorial.html
关系型数据库特点
数据以表格的形式出现
每行为各种记录名称
每列为记录名称所对应的数据域
许多的行和列组成一张表单
若干的表单组成database
Mysql的特点
开源的,不需要支付额外的费用
支持大型的数据库。支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB
使用标准的SQL数据语言形式
允许运行于多种系统上,并且支持多种语言,对PHP有很好的支持
可以定制Mysql,采用了GPL协议
WAMP登录mySQL终端
输入密码 进入mysql
exit 退出mysql
SHOW DATABASES; 显示所有的数据库
USE 数据库名; 针对某数据库
SHOW TABLES; 显示所有的表
SHOW COLUMNS FROM 数据表名; 显示属性、属性类型、是否NULL、是否主键、默认值
SHOW INDEX FROM 数据表名; 显示数据表的详细索引信息
SHOW TABLE STATUS FROM 数据表名 LIKE '开头文字%'\G;
按列打印表名开头是某的所有表的信息
字段的数据类型
三大类:数值类 时间类 字符串类
严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC)
近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)
数值类数据
日期类数据
字符串类数据
PHP来操作Mysql
做为一名伟大的前端开发人员,我们通常使用php来操作数据库
<html> <head> <meta charset="utf-8"> <title>Mysql数据库</title> </head> <body> <?php /*mysql服务器主机地址*/ $host = 'localhost:3306'; /*mysql用户名*/ $user = 'root'; /*mysql用户名密码*/ $password = '123456'; /*连接数据库并返回结果*/ $connectResult = @mysql_connect($host, $user, $password, "特殊标记", MYSQL_CLIENT_COMPRESS); if(! $connectResult ) { die('数据库连接失败:' . mysql_error()); } echo '数据库连接成功~'; /*删除数据库*/ $deleatDBSQL = 'DROP DATABASE WeWeZhang'; mysql_query( $deleatDBSQL, $connectResult ); /*创建数据库并返回结果*/ $newDBSQL = 'CREATE DATABASE WeWeZhang'; $newDBResult = mysql_query( $newDBSQL, $connectResult ); if(! $newDBResult ) { die('创建数据库失败: ' . mysql_error()); } echo '数据库创建成功~'; /*选择要操作的数据库*/ $selectDBResult = mysql_select_db( 'WeWeZhang',$connectResult); if(! $selectDBResult) { die('选择数据库失败: ' . mysql_error()); } echo '数据库选择成功~'; /*建表*/ $newTBClassSQL = "CREATE TABLE IF NOT EXISTS t_class( ". "class_id INT NOT NULL AUTO_INCREMENT, ". "class_title VARCHAR(100) NOT NULL, ". "class_author VARCHAR(40) NOT NULL, ". "class_date DATE, ". "PRIMARY KEY ( class_id ) ". ")"; $newTBClassResult = mysql_query( $newTBClassSQL, $connectResult ); if(! $newTBClassResult ) { die('数据表创建失败: ' . mysql_error()); } echo "数据表创建成功~"; /*插入数据*/ $insertSQL = "INSERT INTO t_class ". "(class_title,class_author,class_date) ". "VALUES". "('小六','喝酒',NOW())"; $insertResult = mysql_query( $insertSQL, $connectResult ); if(! $insertResult ) { die('数据插入失败 ' . mysql_error()); } echo "数据插入成功~"; // /*删表*/ // $deleatTBClassSQL = "DROP TABLE IF EXISTS t_class "; // $deleatTBClassResult = mysql_query( $deleatTBClassSQL, $connectResult ); // if(! $deleatTBClassResult ) { // die('数据表删除失败: ' . mysql_error()); // } // echo "数据表删除成功~"; // // /*删除数据库并返回结果*/ // $deleatDBResult = mysql_query( $deleatDBSQL, $connectResult ); // if(! $deleatDBResult ) { // die('删除数据库失败: ' . mysql_error()); // } // echo '数据库删除成功~'; /*关闭数据库并返回结果*/ if(!mysql_close($connectResult)){ die('数据库关闭失败: ' . mysql_error()); } echo '数据库关闭成功~'; ?> </body> </html>
查
MYSQL_NUM 作为PHP mysql_fetch_array()函数的第二个参数,返回数字数组
$selectSQL = "SELECT runoob_id, runoob_title, runoob_author, submission_date ". "FROM runoob_tbl"; $selectResult = mysql_query( $selectSQL, $connectResult ); if(! $selectResult ) { die('数据查询失败 ' . mysql_error()); } while($row = mysql_fetch_array($selectResult, MYSQL_ASSOC)) { echo "Tutorial ID :{$row['runoob_id']} <br> ". "Title: {$row['runoob_title']} <br> ". "Author: {$row['runoob_author']} <br> ". "Submission Date : {$row['submission_date']} <br> ". "--------------------------------<br>"; } echo "数据查询成功";
内存释放
在我们执行完SELECT语句后,释放游标内存是一个很好的习惯。 。可以通过PHP函数mysql_free_result()来实现内存的释放。
sql Structured Query Language 结构化查询语言 表内字段的数据类型: blob 二进制型 integer 整型 real 符点型 text 字符串 varchar(10) 10字符 建表语句: create table if not exist 表名 (字段1 字段1类型,字段2 字段2类型,...); 删表语句: drop table if not exist 表名; 约束直接放在字段类型后面,起修饰作用 简单约束 NOT NULL 字段值不可为空 UNIQUE 字段值唯一,不可重复 DEFAULT 某值 字段值默认为某值 主键约束 PRIMARY KEY 主键约束 AUTOINCREMENT 自动增长约束 PRIMARY KEY AUTOINCREMENT 主键自动增长约束 外键约束 CONSTRAINT 外键名 FOREIGN KEY (外键字段) REFERENCES 外表名(外键字段) 插入数据语句: INSERT INTO 表名 (字段1 ,字段2 ,...) VALUES (值1 ,值2 ,...); 修改数据语句: UPDATE 表名 SET 字段1 = 字段1的值, 字段2 = 字段2的值 ,...; 删除数据语句: DELETE From 表名; SELECT 字段1,字段2,... FROM 表名; SELECT * FROM 表名; 内连接: SELECT * FROM 表名 表别名,外键表名 外键表别名 WHERE 表别名.需加外键字段 = 外键表别名.id AND ...; SELECT * FROM 表名 INNER JOIN 外键表名 ON 表别名.需加外键字段 = 外键表别名.id AND ...; 左外连接: SELECT * FROM 表名 表别名 LEFT OUTER JOIN 外键表名 外键表别名 ON 表别名.需加外键字段 = 外键表别名.id AND...; 起别名: SELECT 字段1 别名1,字段2 别名2,... FROM 表名; SELECT 字段1AS别名1,字段2AS别名2,... FROM 表名AS表别名; SELECT 表别名.字段1,表别名.字段2,... FROM 表名 表别名; 查询记录的个数: SELECT count(*) FROM 表名 WHERE 某条件; SELECT count(某字段) FROM 表名 WHERE 某条件; 条件语句: 单行数据 WHERE 某字段 = 某值; WHERE 某字段 IS 某值; WHERE 某字段 != 某值; WHERE 某字段 IS NOT 某值; 多行数据 WHERE 某字段 > 某值; WHERE 某字段 >= 某值; WHERE 某字段1 = 某值 AND 某字段2 > 某值; WHERE 某字段1 = 某值 OR 某字段2 > 某值; 排序语句: 升序 SELECT * FROM t_表名 ORDER BY 字段1 ASC,字段2 ASC,...; 降序 SELECT * FROM t_表名 ORDER BY 字段 DESC,字段2 DESC,...; 限行语法: SELECT * FROM t_表名 LIMIT 跳过最前面的几行,再查寻几行;
372526196509223017
372526196603193029
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库