常用SQL语句

SQL语句
    库操作
        建立库
            CREATE DATABASE IF NOT EXISTS `库名` 
            DEFAULT CHARACTER SET = utf8;
        
        查看库
            查看所有
            SHOW DATABASES;

            查看建立方式
            SHOW CREATE DATABASE IF NOT EXISTS `库名`;

            查看正在使用的
            SELECT DATABASE();

        使用库
            USE `库名`;

        删除库
            DROP DATABASE IF EXISTS `库名`;

        修改库 只能修改库的编码格式,不能修改库名
            ALTER DATABASE `库名` DEFAULT CHARACTER SET = 编码格式;


    表操作
        创建 至少要有一个字段
        CREATE TABLE IF NOT EXISTS `表名`(
            字段名称 数据类型 属性 约束条件 注释,
            字段名称 数据类型 属性 约束条件 注释
        )ENGINE = innoDB DEFAULT CHARACTER SET = utf8 COMMENT '注释内容'; 

        查看表结构

            查看所有
            SHOW TABLES;

            查看创建方式
            SHOW CREATE TABLE `表名`;

            查看字段
            DESC `表名`;

        修改表结构 修改 引擎 编码格式 注释
            ALTER TABLE `表名` ENGINE = 引擎 CHARACTER SET = utf8 COMMENT '注释内容';

        删除表结构
            DROP TABLE `表名`;

    字段操作 --- 字段的修改等操作,一定要在没有数据时做修改
        修改
            修改字段名称和设定
            ALTER TABLE `表名` 
            CHANGE 旧字段名 新字段名 数据类型 属性 约束条件 注释;

            修改属性
            ALTER TABLE `表名` 
            MODIFY 字段名 数据类型 属性 约束条件 注释;

        删除
            ALTER TABLE `表名` DROP `字段名`;

        新增
            在所有字段之后新增
            ALTER TABLE `表名` ADD `字段名` 数据类型 属性 约束条件 注释 ;

            在所有字段之前新增
            ALTER TABLE `表名` ADD `字段名` 数据类型 属性 约束条件 注释 FIRST;

            在指定字段之后新增
            ALTER TABLE `表名` ADD `字段名` 数据类型 属性 约束条件 AFTER 指定字段名 ;
    
    数据操作
        新增
            给所有字段新增数据 -- 数据必须和所有的字段一一对应
            INSERT INTO `表名` VALUES (数据);

            给所有字段新增数据 -- 数据必须和小括号中,指定的字段一一对应
            INSERT INTO `表名` (`字段1`,`字段2`...) VALUES (数据1,数据2...);

        修改
            给指定字段的所有数据,更新数值
            UPDATE `表名` SET `字段` = 数值;

            给符合条件的指定字段的数据,更新数值
            只能加WHERE 约束条件
            UPDATE `表名` SET `字段` = 数值 WHERE 约束条件;

        删除
            删除所有数据,但是保留id主键值
            DELETE FROM `表名`;

            删除符合条件的数据,但是保留id主键值
            DELETE FROM `表名` WHERE 约束条件;

            删除所有的数据,不保留id主键值
            TRUNCATE TABLE `表名`;

    数据查询
        1,查询所有
            SELECT * FROM `表名`;

        2,查询指定字段
            SELECT `字段名1`,`字段名2`... FROM `表名`;

        3,查询符合约束条件的字段
            SELECT `字段名1`,`字段名2`... FROM `表名` WHERE 约束条件;

            模糊查询: 占位符  % 任意长度的任意内容  _ 一个长度的任意内容

            SELECT `字段名1`,`字段名2`... FROM `表名` WHERE `字段名` LIKE '%或_配合关键词';

        4,查询符合约束条件的字段,按照指定字段排序
            排序方式 : ASC 升序 小 -- 大 默认值,可以不写
                    DESC 降序 大 --SELECT `字段名1`,`字段名2`... FROM `表名` WHERE 约束条件 ORDER BY `字段` 排序方式;
        
            排序字段可以是多个,一般第二个是id主键值字段
            SELECT `字段名1`,`字段名2`... FROM `表名` WHERE 约束条件 ORDER BY `字段1` 排序方式,`id` 排序方式;

        5,分页显示
            LIMIT 参数1,参数2;
            参数1:显示起始数据的索引下标
            参数2:显示数据的数量
            如果是按照页面来显示数据,参数1,计算公式 (显示页数-1)*参数2

            SELECT `字段名1`,`字段名2`... FROM `表名` WHERE 约束条件 ORDER BY `字段1` 排序方式,`id` 排序方式 LIMIT 参数1,参数2;

    其他内容:
        设定数据库编码格式:
            SET NAMES utf8 / gbk;
            不是真正的修改数据库的编码格式
            是设定当前数据库数据,显示的编码格式
            不修改数据库原始的编码格式

        SQL语句中,逻辑运算符
            逻辑与 AND  逻辑或 OR  逻辑非 NOT

mysqli操作数据库
    1,连接数据库
        $link = mysqli_connect(地址,账号,密码,库名,端口);

    2,定义SQL语句
        一般使用双引号,为了解析变量
        $sql = "SQL语句";

    3,执行SQL语句
        执行查询语句,$result是结果集对象
        执行非查询语句,$result是布尔类型
        $result = mysqli_query($link,$sql);

    4,获取查询结果
        抽取结果集对象中的所有数据信息,组成一个二维数组
        MYSQLI_ASSOC,设定二维数组的索引是数组库对应的字段
        $arr = mysqli_fetch_all($result , MYSQLI_ASSOC);

    5,关闭数据库
        mysqli_close($link);

前后端数据交互之form表单
    1,form表单的设定,3个属性
        action : 传参的对象,当前是一个PHP文件
        method : 传参的方式 get / post
        enctype: 上传文件专有属性
                    属性值是固定格式 multipart/form-data
                    method必须是post

    2,传参标签的设定
        (1),传参标签,必须有name属性值
            前端标签,name属性,作为存储标签数据的容器
            没有这个容器无法存储数据,完成传参
            实际传参也是传参的name属性值,这个容器
            接收容器,解析容器中存储的数据数值

        (2),传参的数据
            可以是前端标签输入的数据 text,password,url....
            可以是前端标签,通过选择,选择的数据 select file...
            可以是前端标签,value属性的属性值 radio checkbox hidden...
            只要给标签正确的设定数据,就可以

        (3),如果多个标签,name属性值相同,也就是容器的名称相同
            value属性值不同,也就是传参数据不同
            name属性值,必须添加[]
            如果不添加[],是对同一个容器重复赋值,后赋值的数据会覆盖之前的数据,最终只会传参最后一个数据
            如果添加[],是以数组的形式,存储所有的传参数据

        (4),文件上传的多选
            方法1:通过多个input标签 --- 不推荐的
            方法2:通过给input标签,添加多选属性 multiple, name属性值后加[]


        (5),multipart/form-data 含义
            input标签,上传文件,默认只能上传文本格式的内容 .txt .word
            不能上传其他格式的文件,比如图片,音频,视频等...
            multipart/form-data 意义是 将 其他格式的文档,转化为 二进制数据流 (就是一串二进制的字符串)
            其他格式的文件就可以转化为 input标签,可以上传的内容形式

    3,特别说明:PHP中要正常显示中文
        (1),确保PHP能正常显示中文
            PHP如果是7.0以上的版本,默认带有响应头,可以正常显示中文
            PHP如果是7.0以下的版本,必须要添加PHP响应头,才能正常显示中文
            header("content-type:text/html;charset=utf-8");

        (2),确保数据库的编码格式,与显示环境的编码格式统一
            在数据库中,设定的编码格式,会体现在数据的数据中,但是我们看不到效果
            必须要与显示环境的编码格式统一
            数据库设定的编码格式是utf8

            显示环境1: 可视化工具 MySQL-front
                        设定数据库可以是任意编码格式,都能正常显示

            显示环境2: cmd命令行
                        cmd命令行的显示编码格式是 gbk
                        如果 数据库编码格式 是 utf8 ,会显示为乱码
                        必须让 数据库编码格式 也是 gbk ,才能正常显示中文
                        SET NAMES gbk;

            显示环境3: 前端页面
                        前端页面的显示编码格式是 utf8
                        如果 数据库编码格式 是 gbk ,会显示为乱码
                        必须让 数据库编码格式 也是 utf8 ,才能正常显示中文
                        mysqli_query($link , "SET NAMES utf8");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值