数据库,与PHP连接
网络服务环境都搭建好了,还差与数据库进行交互呢。
[TOC]
MySQL 数据库常用命令
前置小“芝士”
名词 | 通俗解释 |
---|---|
数据库 | 就像一个档案夹,里面放着很多的表格 |
数据表 | 相当于档案夹里面其中一个表格 |
字段 | 相当于 Eexcel 的表头 |
主键 | 唯一、不重复的内容 |
远程连接
语法 | mysql -h [host] [-P port] -uroot -p |
---|---|
host | (必选)远程数据库的 IP 地址 |
-P port | (可选)远程数据库的端口 |
创建数据库
CREATE DATABASE 数据库名;
选择数据库
USE 数据库名;
创建数据表
CREATE TABLE IF NOT EXISTS 表名 (
`id` INT UNSIGNED AUTO_INCREMENT,
`text` VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
插入数据
INSERT INTO 表名 (`id`, `text`)
VALUES
(1, '文本');
查询和查询指定数据
SELECT * FROM 表名;
SELECT id,text FROM 表名;
SELECT * FROM 表名 WHERE id=1;
修改数据表名、数据表字段
# 数据表重命名
ALTER TABLE 表名 RENAME TO 修改的表名;
# 删除数据表字段
ALTER TABLE 表名 DROP 字段名;
# 在末尾添加新的字段
ALTER TABLE 表名 ADD 字段名 数据类型(长度);
# 在第一列添加新字段
ALTER TABLE 表名 ADD 字段名 数据类型(长度) FIRST;
# 在某个字段后面添加字段
ALTER TABLE 表名 ADD 字段名 数据类型(长度) AFTER 某字段;
修改字段名和数据类型
ALTER TABLE 表名 MODIFY 字段 新数据类型(长度);
ALTER TABLE 表名 CHANGE 字段 新字段名 新数据类型;
删除数据库和数据表
DROP DATABASE 数据库名;
DROP TABLE 表名;
删除指定字段的数据记录
DELETE FROM 表名 WHERE id=1;
完全删除数据记录并清除主键的值,重新由 0 开始
TRUNCATE TABLE 表名;
更新指定数据记录
UPDATE 表名 SET 字段=新内容,字段=新内容 WHERE id=1;
SQLite 数据库常用命令
创建数据库
sqlite3 数据库名.db
.open 数据库名.db
创建数据表
CREATE TABLE 表名(
id INT PRIMARY KEY NOT NULL,
text TEXT NOT NULL
);
插入数据
INSERT INTO 表名 (id, text)
VALUES
(1, '文本');
查询和查询指定数据
SELECT * FROM 表名;
SELECT id,text FROM 表名;
SELECT * FROM 表名 WHERE id=1;
删除数据并清空主键记录
DELETE FROM 表名;
UPDATE sqlite_sequence SET seq = 0 WHERE name ='表名';
其他语句基本与 MySQL 没有差别。
PHP与其连接
连接 MySQL
$servername = "localhost";
$username = "username";
$password = "password";
$dbName = "databaseName"
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbName);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
$conn->close();
连接 SQLite
// 把 SQLite3 引用到 MyDB 类中
class MyDB extends SQLite3
{
// __construct构造函数,对象创建完成后第一个调用方法
function __construct()
{
// 通过 SQLite3 提供的接口API open,打开数据库
$this->open('test.db');
}
}
// 实例化 MyDB 类
$db = new MyDB();
if(!$db){
// lastErrorMsg() 返回最近一次失败的 SQLite 请求的英文描述文本
echo '连接失败:' . $db->lastErrorMsg();
}