PHP-9-数据库

【错误处理】了解
    
    notice:变量声明未赋值
    warning:include 'ini.php';
    Fatal error :致命错误
    ini_set()
    设置 :
        display_errors
        后面是0 屏蔽所有错误信息
        后面是1 默认
    <?php
    ini_set('display_errors',0);
    var_dump($a);
    include 'ini.php';
    test();

    获取:
        ini_get
        
【全局的】
    修改配置文件
        display_errors = Off 关闭  默认是开启的
        注意:如果你的项目在上线的时候一定要关闭错误
        
        如果你想看报错就去查错误日志(文件)
    修改错误日志的配置文件
        error_log ="c:/wamp64/logs/php_error.log"

    error_reporting()
        0 不报错
        1 屏蔽notice warning
        -1 默认的错
        //error_reporting(0);
        error_reporting(1);
    
    @ 屏蔽notice warning

【自定义错误处理】
    set_error_handler('myError');
  

<?php
set_error_handler('myError');
var_dump($a);
function myError($errno,$errorInfo,$errorFile,$errorLine,$errorText){
    echo $errno.'<br/>';
    echo $errorInfo.'<br/>';
    echo $errorFile.'<br/>';
    echo $errorLine.'<br/>';
    var_dump($errorText);
}
运行结果:
8
Undefined variable: a
D:\wamp64\www\yemengdi\2018-8-13-yemengdi\1\set_error_handler.php
3
D:\wamp64\www\yemengdi\2018-8-13-yemengdi\1\set_error_handler.php:9:
array (size=7)
  '_GET' => 
    array (size=0)
      empty
  '_POST' => 
    array (size=0)
      empty
  '_COOKIE' => 
    array (size=1)

     
关于错误处理需要你知道的
    开启错误 php.ini
    错误文件配置 error_log ="c:/wamp64/logs/php_error.log"
   
【数据库】重点重点重点

    库=》表-》字段-》数据行
    
【数据库的作用】
    1、开房记录
    2、会员卡
    3、银行卡
    4、身份证
    
    增 删 改 查

数据库常见面试题:
    https://blog.csdn.net/qq_22222499/article/details/79060495
关系型数据库 和 非关系型数据库

关系型数据库的最大特点就是事务的一致性;

优点
1、容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解;
2、使用方便:通用的SQL语言使得操作关系型数据库非常方便;
3、易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率;
4、支持SQL,可用于复杂的查询。 
缺点
1、为了维护一致性所付出的巨大代价就是其读写性能比较差;
2、固定的表结构;
3、不支持高并发读写需求;
4、不支持海量数据的高效率读写;

非关系型数据库 特性
HBase 1、使用键值对存储数据;
2、分布式;
优点
无需经过sql层的解析,读写性能很高
基于键值对,数据没有耦合性,容易扩展
存储数据的格式:nosql的存储格式是key,value形式
缺点
不支持事务
不提供sql支持 


    关系型数据库
        MySQL
        Orcale
        SqlServer
        
    非关系型数据库
        redis
        mongodb
        
【SQL分类】
    DDL
        CREATE(创建)、DROP(删除)、ALTER(修改)
        
    DML
        INSERT(插入)、UPDARE(修改)、DELETE(删除)
        
    DQL
        SELECT(查询) 重点重点重点
        
    DCL
        GRANT
        REVOKE
        
    DTL 事务
        BEGIN
        COMMIT
        ROLLBACK
        
【数据库连接】
    如果你在数据库连接的时候报不是内部命令
    
    需要你配置 环境变量path路径
    
    C:\wamp64\bin\mysql\mysql5.7.14\bin
    
    点我的电脑 右键 属性 高级系统设置 环境变量 找到path 黏贴进去 确定确定确定关闭
    
    第一种连接方式:
        mysql -u root -p
        回车
        password:XXXX
        
    第二种连接方式
    退出:quit exit
        mysql -uroot -p紧跟着密码 (不推荐 明文)

【\c】
    结束当前mysql 命令

mysql> dfkjg
        -> \c
mysql>
    
window【dos命令】
    cls 清空界面
 
    cd 进去目录
    
    dir 查看文件
    
【查看库】
    mysql> show databases;
        show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | apple_bbs          |
    | bbs                |
    | blog               |
    | computer16         |
    | luoo_tp            |
    | mysql              |
    | performance_schema |
    | shop               |
    | sys                |
    +--------------------+
    10 rows in set (0.01 sec)

【\g】<==> go 执行 <==> 分号;
    
    
【删除库】
    
mysql> drop database luoo_tp

    drop database 库名
    
【使用库】
    use 库名
    
【查看表】
    show tables;
数据类型 char 和 varchar的区别】

  1. CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (10),表示你存储的字符将占10个字节(包括7个空字符),而同样的VARCHAR2 (10)则只占用3个字节的长度,10只是最大值,当你存储的字符小于10时,按实际长度存储。

  2. CHAR的效率比VARCHAR2的效率稍高。 

  3. 目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以后这样做的权利。

  4. CHAR(10)若输入数据的字符数小于10,则系统自动在其后添加空格来填满设定好的空间。若输入的数据过长,将会截掉其超出部分。VARCHAR(10)数据类型的存储长度为实际数值长度。

【创建表】
    create table 表名(字段名字1 类型 , 字段2 类型,字段3 类型.......)
    
【查看表】
    show tables
    
【删除表】
    drop table 表名
    
【查看表结构】
mysql> desc user; desc 表名
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(10)     | YES  |     | NULL    |       |
| username | varchar(45) | YES  |     | NULL    |       |
| password | char(32)    | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)


【数据库引擎】
MyISAM 引擎 和 Innodb 引擎的区别 面试题常考,数据库引擎有哪些

mysql的两种存储引擎区别(事务,锁级别等等):

MYISAM不支持事务,不支持外键,表锁,插入数据时,锁定整个表,查表总行数时,不需要全表扫描

INNODB支持事务,支持外键,行锁,查表总行时,全表扫描

InnoDB索引和MyISAM索引的区别:
一是主索引的区别,InnoDB的数据文件本身就是索引文件。而MyISAM的索引和数据是分开的。
二是辅助索引的区别:InnoDB的辅助索引data域存储相应记录主键的值而不是地址。而MyISAM的辅助索引和主索引没有多大区别。

    
【字符集】utf8

【查看建表语句】
    show create table 表名
    
【查看当前使用的库】
    select database();
    
【修改表字段】
    alter table 表名 change 原来的字段 新的字段(数据类型)

mysql> alter table student change no sno1 char(3);
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
    
【修改表字段的数据类型】
    alter table 表名 modify 原来字段(新的数据类型)

mysql> alter table student modify sno1 varchar(4);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0
    
【添加表字段】
    alter table 表名 add 新的字段(数据类型)

mysql> alter table student add ssex char(4);
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

【删除表字段】
    alter table 表名 drop 你要删除的字段

mysql> alter table student drop ssex;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
    
【在谁谁字段前添加】
    alter table 表名 add 新字段(数据类型)after 字段名

mysql> alter table student add sn char(5) after email;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
    
【在最前面插入】
    alter table 表名 add 新字段(数据类型) first

mysql> alter table student add h char(3) first;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
    
【修改表名字】

alter table 原来的表名字 rename 新的表名字

mysql> alter table students rename student;
Query OK, 0 rows affected (0.01 sec)

    
【数据类型】
    字符集类型
     修改类型:
    

mysql> show create table student;
+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table   | Create Table                                                                                                                                                                                                                                                                                                                       |
+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| student | CREATE TABLE `student` (
  `h` char(3) DEFAULT NULL,
  `sno` varchar(23) DEFAULT NULL,
  `class` char(14) DEFAULT NULL,
  `sno1` varchar(4) DEFAULT NULL,
  `email` varchar(12) DEFAULT NULL,
  `sn` char(5) DEFAULT NULL,
  `sex` varchar(3) DEFAULT NULL,
  `sname` char(12) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |

mysql> alter table student ENGINE=MyISAM DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> alter database yemengdi character set utf8;
Query OK, 1 row affected (0.00 sec)
mysql> show create database yemengdi;

mysql> alter table mengdi character set utf8;
mysql> show create table mengdi;


    
    
    
    
    
    
    
    

    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    


        
       
        
    
    
        
        
        
        
        
    
        
        
        
        
        
        
        
        
        
   

猜你喜欢

转载自blog.csdn.net/qingchurenxiaoyao/article/details/81635502