PHP:MySQL常用DDL数据定义语言, DML数据库操作语言,pdo操作数据库的对象方法
一.常用DML数据库操作语言
- SQL语句语法规范
- 常用MySQL的关键字我们需要大写,库名、表名、字段名称等使用小写
- SQL语句支持折行操作,拆分的时候不能把完整单词拆开
- 数据库名称、表名称、字段名称不要使用MySQL的保留字,如果必须要使用,需要用反引号``将其括起来
命令 | 含义 |
---|---|
MySQL -uroot -ppassword | 登入数据库,-u账号,-p密码 |
exit | 退出数据库 |
SELECT USER(); | 得到登陆的用户 |
SELECT NOW(); | 得到当前的日期时间 |
SELECT VERSION(); | 得到MySQL的版本信息 |
SELECT DATABASE(); | 得到当前打开的数据库 |
USE db_name; | 打开指定数据库 |
SHOW TABLES; | 查看当前数据库下已有数据表 |
DESC tbl_name; | 查看表结构 |
①MySQL -uroot -ppassword 登入数据库,-u账号,-p密码
②SELECT USER();得到登陆的用户
③SELECT NOW();得到当前的日期时间
④SELECT VERSION();得到MySQL的版本信息
⑤SELECT DATABASE();得到当前打开的数据库
⑥USE db_name;打开指定数据库
⑦SHOW TABLES;查看当前数据库下已有数据表
⑧DESC tbl_name;查看表结构
二.常用DDL数据定义语言
-
添加记录
-
INSERT [INTO] tbl_name[(col_name,…)] {VALUE|VALUES}(VALUES…);
- INSERT tbl_name[(字段名称…)] SELECT 字段名称,… FROM tbl_name [WHERE 条件]
-
修改记录
-
UPDATE tbl_name SET 字段名称=值,字段名称=值 [WHERE 条件]
-
如果不添加条件,整个表中的记录都会被更新
-
删除记录
-
DELETE FROM tbl_name [WHERE 条件]
-
如果不添加条件,表中所有记录都会被删除
-
DELETE 清空数据表的时候不会重置AUTO_INCREMENT的值,可以通过ALTER 语句将其重置为1
-
彻底清空数据表
- TRUNCATE [TABLE] tbl_name;
- 清除表中所有记录
- 会重置AUTO_INCREMENT的值
-
查询记录
-
SELECT select_expr,… FROM tbl_name
[WHERE 条件]
[GROUP BY {col_name|position} HAVING 二次筛选]
[ORDER BY {col_name|position|expr} [ASC|DESC]]
[LIMIT 限制结果集的显示条数] -
查询表中所有记录
- SELECT * FROM tbl_name; *所有字段
-
指定字段的信息
- SELECT 字段名称,… FROM tbl_name
-
库名.表名
- SELECT 字段名称,… FROM db_name.tbl_name;
-
给字段起别名
- SELECT 字段名称 ,… FROM tbl_name [AS] 别名;
-
表名.字段名的
-
SELECT tbl_name.col_name,… FROM tbl_name;
三.MySQL中的数据类型
-
数值型
-
整数型
-
浮点型
-
字符串类型
-
CHAR效率高于VARCHAR,CHAR相当于拿空间换时间,VARCHAR拿时间换空间
-
CHAR默认存储数据的时候,后面会用空格填充到指定长度;而在检索的时候会去掉后面空格;VARCHAR在保存的时候不进行填充,尾部的空格会留下
-
TEXT列不能有默认值,检索的时候不存在大小写转换
-
日期时间类型
三.PDO连接数据库操作
①用户名重复检测
②用户名注册信息传送到数据库表
注册按钮代码块
<?php
//连接数据库
require "/xp/phpstudy_pro/WWW/www.zwz.com/zwz/0511/config/PDO.php";
session_start();
$username = isset($_POST["username"]) ? $_POST["username"] : null;
$password = isset($_POST["password"]) ? md5( $_POST["password"]) : null;
$password2 = isset($_POST["password2"]) ? $_POST["password2"] : null;
$captcha = $_POST["captcha_value"];
//时间戳
$create_time = time();
//sql 语句 数据库表添加
$insert = "INSERT INTO `User` SET `uname` = '{$username}', `pwd` = '{$password}',`create_time` = '{$create_time}';";
$connect = $pdo->exec($insert);
$tips;
if ($connect !== 0) {
$tips = 0;
}else {
$tips = 1 ;
}
if (!empty($username) && !preg_match("/^[A-Za-z]/i",$username))
{
$tips = 0 ;
}else {
$tips = 1 ;
}
if ((!empty($password) && !empty($password2)) && !(strcmp($password,$password2)))
{
$tips = 1 ;
}else {
$tips = 0 ;
}
if(strtolower($_SESSION["captcha"]) === strtolower($captcha))
{
$_SESSION["captcha"]="";
$tips = 1 ;
}else {
$tips = 0 ;
}
if ($tips === 1) {
echo json_encode(["id" => 1 , "mgs" => "注册成功"],320);
}else {
echo json_encode(["id" => 0 , "mgs" => "注册失败"],320);
}
//点击按钮
$("button[name='button']").click(function () {
let data = {};
//用户名数据
data.username = $("input[name = 'username']").val();
//密码数据
data.password = $("input[name = 'password']").val();
data.password2 = $("input[name = 'password2']").val();
// console.log(data);
//判断是否用户输入空值
$.post(
"index.php",
data,
function (res) {
if (res.id == 1) {
alert("注册成功");
} else {
alert("注册失败");
return;
}
},
"json"
);
});
用户名重复检测代码块
<?php
//引入服务器
require "/xp/phpstudy_pro/WWW/www.zwz.com/zwz/0511/config/PDO.php";
session_start();
//获取用户输入的用户名
$username = $_POST['username'];
$select = "SELECT * FROM USER WHERE UNAME = '{$username}'; ";
$connect = $pdo->query($select)->fetchAll(PDO::FETCH_ASSOC);
if (empty($connect) || !preg_match("/^[A-Za-z]/i",$username) )
{
echo json_encode(["id" => 1, "mgs" => "不是字母" ],320);
}else {
echo json_encode(["id" => 0, "mgs" => "是字母" ],320);
}
//设置用户名失去焦点的时候检查第一个字母是否是字母
$("input[name = 'username']").blur(() => {
var data = {};
//用户名数据
data.username = $("input[name = 'username']").val();
//密码数据
data.password = $("input[name = 'password']").val();
data.password2 = $("input[name = 'password2']").val();
$.post(
"username.php",
data,
function (res) {
if (res.id == 1) {
$("error_msg").html("<span style='color:green'; >用户名不存在</span>");
} else {
$("error_msg").html("<span style='color:red'; >用户名存在</span>");
}
},
"json"
);
});