MySQL & PHP操作数据库

数据库

  1. 概念:数据库(Database)是按照数据结构来组织、存储和管理数据的仓库

  2. 热门数据库 Oracle、SQLServer、MySQL、MongoDB、SQLite、access、DB2

  3. 结构化的数据:我们把一段复杂的信息,进行了结构化处理,瞬间显得清爽多了。计算机处理 起来也相当方便。 因此,这样的数据,我们就称之为结构化数据

  4. 关系型数据库:我们把用户账号的信息,和消费记录信息分离开来,通过用户编号进行了关联 既 把不同的数据进行了分离,使得查询数据更加方便。同时又保证了它们关系的正确性。
    在这里插入图片描述
    这就是传统的关系型数据库。 其中 <用户编号> 我们称之为外键

  5. 表(table)
    (1)一个数据库通常包含一个或多个表,一个数据表有一个唯一名称,并有行和列组成。
    (2)表是数据库中一个重要的组成部分, 数据库只是一个框架,数据表才是其实质内容。

MySQL数据库

  1. 特点:
    (1) MySql是目前最流行的关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于 Oracle公司

    (2) MySQL是开源的,免费。

    (3) MySQL支持标准的SQL数据语句

    (4) MySQL可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、NodeJS、Ruby和Tcl等。

    (5) MySQL对PHP有很好的支持,PHP是目前最流行的Web开发语言。

    (6) MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB, 64位系统支持最大的表文件为8TB

  2. 命令窗口数据库操作
    (1) 连接数据库

格式:mysql -h主机地址 -u用户名 -p用户密码

   (2) 显示所有数据库

格式:show databases;

   (3) 创建数据库

格式:create database <数据库名>;

   (4) 使用数据库

格式:use <数据库名>;

   (5) 显示当前数据库所有表

格式:show tables;

   (6) 创建数据表
     a) 格式:create table <表名> (<字段名1> <类型1> [,…<字段名n> <类型n>]);

create table MyGuests (
  	id int(6) unsigned auto_increment primary key, 
  	firstname varchar(30) not null,
  	lastname varchar(30) not null,
  	email varchar(50),
  	reg_date timestamp
)

     b) 以上创建一个名为 “MyGuests”的表,包含5个列:“id”,“firstname”,“lastname”, “email”和“reg_date”,参数如下:
       int       (整形)
       float      (浮点型)
       char      (固定长度字符串)
       varchar     (可变长度字符串)
       blob      (二进制)
       text       (字符串)
       timestamp    (时间戳)

     c) 列的其他属性
       not null       (每一行都含有值,不能为空,null值是不允许的)
       default value    (设置默认值)
       unsigned       (使用无符号数值类型,0及正数)
       auto_increment   (设置 MySQL 字段的值在新增记录时每次自动增长 1)
       primary key     (设置数据表中每条记录的唯一标识。 通常列的 PRIMARY KEY 设置 为ID数值,与auto_increment一起使用)

   (7) 删除表

  • 格式:drop table <表名>;
    drop table MyGuests;
    drop table if exists MyGuests

   (8) 查询表结构:

desc MyGuests

   (9) 修改表名

rename table MyClass to YouClass;

   (10) 增加字段

alter table MyGuests add sku_id bigint(20) unsigned DEFAULT NULL COMMENT ‘商品 销售码’;

   (11) 复制表结构

create table table1 like table;

3.Navicat操作数据库

  • 数据库创建
  • 表创建
  • 增删查改(crud)
  • 数据导入
      json
      excel

   (1) 数据操作
    ① 插入数据

//格式:
insert into <表名> (<字段名1>[,..<字段名n > ]) values (1 [,(值n)]); 
//例如:  
insert into results (username,gender,team) values ("谢文东","男",5) 
//备注:字段与要一一对应

    ② 删除表数据

//格式:
delete from 表名 where 表达式
//例如:  
delete from results where id=5   //删除results表中id为5的数据
delete from results				 //删除results表中所有数据

    ③ 查询表中的数据

//格式:
select <字段1, 字段2,> from < 表名 > where < 表达式 >
//例如:  
select * from results		//查看表results中的所有数据
select * from results order by id limit 0,4;//查看表results前4行数据
//备注:select一般配合where使用,以查询更精确更复杂的数据

    ④ 修改表中的数据。

//格式:
update 表名 set 字段=新值,… where 条件;
//例如:
update results set username='黄晓明' where id=2;

   (2) 条件控制语句
     ① where语句
        select * from results where id=1;

     ② 相关条件控制符

		   =                  例:select * from results  where  username = '范冰冰'
           >				  例:select * from results  where  team > 4
           <				  例:select * from results  where  team < 4
          <>(不等于)	          例:select * from results  where  team <> 5
          in(1,2,3...) 	      例:select * from results where id(字段) in(1,2)
	      between a and b     例:select * from results where team between 3 and 8
          and			      例:select * from results  where team=5 and username='谢文东'
          or			      例:select * from results  where team=5 or username='岳云鹏'
          not			      例:select * from results  where not username='范冰冰'
          like  %匹配任意字符; _匹配一个字符(可以是汉字)
                              例:select * from results where username like '张%'
          limit id,qty:数量控制
                              例:select * from results  limit 1,4
		  is null (空值检测)
							  例:select * from results where team is null
		  order by 
            * asc  升序(默认)
            * desc 降序
                              例:select * from results order by team asc

在这里插入图片描述

PHP操作数据库

(1) 连接数据库

        $servername = "localhost";
        $username = "root";
        $password = "password";
        $dbname = 'user';
        
        $conn = new mysqli($servername, $username, $password, $dbname); // 创建连接

        // 检测连接
        if ($conn->connect_error) {
            die("连接失败: " . $conn->connect_error);
        } 

        $conn->set_charset('utf8');	//查询前设置编码,防止输出乱码

        echo "连接成功";

(2) 书写语句,执行语句
   ① 执行语句的代码:$res = $conn->query()

   ② 若执行的是增删改语句,$res的值为布尔值(insert, update, delete)

   ③ 若执行的是查询语句,得到查询结果集(对象)(select)

//例:
$res = $conn->query('select * from results')    //查看表account中的所有数据
num_rows 					//结果集中的数量,用于判断是否查询到结果
fetch_all(MYSQLI_ASSOC) 	//得到所有结果
fetch_assoc() 				//得到第一个结果
fetch_row() 				//得到第一个结果,只能拿到值

   ④ 若是查询语句,记得释放查询结果集,避免资源浪费

		$res->close();

   ⑤ 关闭数据库

		$conn->close();

(3) 导入数据
   ①先在数据库建立好表,表的数据类型及编码都先定义好。再从其他文件导入进来

(4) 转储及运行数据库
   ①先创建同名的数据库,右键运行数据库,重新进入界面才会看到

猜你喜欢

转载自blog.csdn.net/qq_42827425/article/details/88578595