第三阶段....

什么是数据库:数据的仓库

在第二阶段中,

1,主要是声明变量存储,第二是声明数组,第三声明json对象,以上都是存储在内存中,只要刷新就会消失

2,存在文件中或者硬盘中,这样存储安全,但是对读取磁盘的效率不高,无法很好管理磁盘

3,存在浏览器中,不安全,并且不能跨浏览器

现在都是存在数据库中,解决上面所有的问题,优点,提高数据的持久性,是专门管理数据的平台,可以很高效的增删改查数据,可以跨平台,并且更安全,数据可以共享,可以执行对数据的分析。在写代码的时候储存数据的方式有很多,变量,文件,浏览器的等,都有各自的缺点,我们需要数据持久性,数据更加安全,跨平台,对数据可以各种操作。这些就是我们用数据库的原因

数据库的发展

层次模型-

-网状模型-

关系模型(关系型数据库)  oracle mysql,数据存储在一个类似excel的文件中,一个项目数据库,有多个文件。每个文件都存在着关联。

-对象模型 (对象型数据库(非关系型数据库))db2 mongodb

工作中常见的是哪些

在什么情况下用什么数据库

关系型数据数、数据比较稳定。大型项目。但是因为惯性系数据库,除了存数据,还要存关系,占用的内存比较大。

如果数数据量非常大的项目,需要查询速度非常快,分析数据非常快的,用对象型。

数据库安装

直接安装数据库。

通过集成环境安装 phpstudy xmapp ...

数据库操作

/*多行*/
# 单行注释
# 如果是系统自带的单词会变成大写,自己用的单词小写
# 一句话结束加;
#创建数据库  create database 数据库名字
CREATE DATABASE web329;
# 数据库删除 drop database 数据库名字
DROP DATABASE web329;
# 展示所有数据库  show databases;
# 使用数据库  use 数据库名字
# 如果数据库不存在再创建这个数据库
CREATE DATABASE IF NOT EXISTS web329;
# 如果存在再删除
DROP DATABASE IF EXISTS web329;

操作表

# 创建表
/*create table 表名(
   字段名 列的数据类型  [列的约束],
   字段名 列的数据类型  [列的约束]
)
字段名 就是列名
每一行叫做一个数据

数据类型  mysql的数据类型非常多
    字符串   char varchar
    char写几声明的长度就是几,写4用了2,长度还是4
    varchar是动态的如果写的是4,但是只用了2,长度就是2
    如果是固定长度用char
    如果是不固定用varchar
    
    数字 int   整数
         float 浮点数
         
    日期
    date  yyyy-mm-dd
    datetime yyyy-mm-dd hh-mm-ss
    给大家建议日期用字符串
    
列的约束  让数据更加完整、准确

1、主键约束  一个表只能有一个主键 特点唯一且不能为空
    需要保证数据库的每一条数据都是唯一的。且有意义
    primary key
2、自增 auto_increment
3、唯一约束  unique  只是唯一,可以为空
4、不能为空  not null  不能为空
    unique not null 唯一且不能为空 
    主键也是唯一且不能为空,主键一张表只能一个,唯一且不能为空可以多个
5、默认值 default
6、外键约束
    表和表之所以有关系就是因为有外键约束
    外键约束就是把一个表和一个表连接起来
    主表  从表
    1、数据以谁为主,谁是主表。另一个是从表
    2、创建表的时候先创建主表,再创建从表
    3、删除的时候先删除从表,再删除主表
    和主表关联的字段,就叫做外键
    从表的外键要和主表的主键类型一致
    从表的外键只能关联主表的主键
    constraint foreign key(从表的外键) references 主表(主键)
*/
CREATE TABLE class(
    c_id INT PRIMARY KEY AUTO_INCREMENT,
    c_name VARCHAR(6)
)
CREATE TABLE t_user(
    u_id INT PRIMARY KEY AUTO_INCREMENT,
    u_name VARCHAR(4) NOT NULL,
    u_sex CHAR(1) DEFAULT '女',
    u_time2 DATETIME UNIQUE NOT NULL,
    u_tel CHAR(11)  UNIQUE NOT NULL,
    u_c_id INT,
    CONSTRAINT FOREIGN KEY(u_c_id) REFERENCES class(c_id) 
);

# 删除表
DROP TABLE t_user;

# 修改表
   # 增加列 alter table 表名 add 列名 列的数据类型 [列的约束]
   ALTER TABLE t_user ADD u_age INT NOT NULL;
   # 修改列 alter table 表名 change 老的列名 新列名 数据类型 [列的约束]
   ALTER TABLE t_user CHANGE u_age u_year INT;
   # 删除列 alter table 表名 drop 列名
   ALTER TABLE t_user DROP u_year;

对数据的操作

#数据添加
    /*
        auto 的值 null
        default 写 default
    
    */

# 增加数据  insert into 表(列名) values(值)
INSERT INTO t_user(u_id,u_name,u_tel) VALUES(NULL,'ccc','21223');
#一旦列名不写,那么后面的值必须全都写,并且按照顺序
INSERT INTO t_user VALUES(NULL,'ddd',DEFAULT,'2023-04-01 12:12:12','222222',1);
# 修改数据 update 表名 set 列名=值 [条件]
UPDATE    t_user SET u_sex='男';
UPDATE    t_user SET u_sex='女' WHERE u_id=1;
# 删除数据 delete from 表 [条件]
DELETE    FROM  t_user WHERE u_id=1;
#  truncate table 表名  这个删除了就没有记录了,delete的删除是有记录的 

猜你喜欢

转载自blog.csdn.net/m0_62843289/article/details/130800186