1. 实操MySQL DDL、DML、DCL,2. 表字段类型timestamp与

编辑: admin 分类: 电脑知识 发布时间: 2023-06-14 来源:互联网
4.9 MySQL 基础4.9.1 MySQL
  • MySQL: 关系型数据库管理系统
  • MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言
4.9.2 常用客户端
  • phpMyAdmin: web 版https://www.phpmyadmin.net/
  • navicat: https://www.navicat.com/en/products
  • adminer: 迷你 web 版https://www.adminer.org/
  • dbeaver: 强大开源https://dbeaver.io/
  • workbench: 官方客户端https://www.mysql.com/
  • HeidiSQL: 轻量级通用https://www.heidisql.com/
4.9.3 常用术语
  1. 数据库(database): 数据表的集合
  2. 数据表(table): 二维表格
  3. 字段(field): 列,一组相同类型的数据集合
  4. 记录(Record): 行,一组相关字段构成的数据集合
  5. 值域(Domain): 某个字段的取值范围
  6. 主键(primary key): 唯一标记某一行
  7. 外键(foreign key): 某字段必须与另一表字段关联
  8. 索引(index): 为常用字段创建索引可提升效率
4.9.4 操作类型
  1. DDL: 数据定义语言(Data Definition Language)

    • 登录:mysql -h localhost -u root -p

    • 查询数据库:show databases;

    • 选择(使用)数据库: use 数据库名;

    • 创建数据库:create database [if not exists] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];

    • 删除数据库:drop database [if exists] 数据库名;

    • 创建数据表:

      1. creat table 表名(
      2. 字段1 类型 [comment 注释],
      3. 字段2 类型 [comment 注释],
      4. ...
      5. 字段n 类型 [comment 注释]
      6. )

      注意:方括号是可选参数,在最后一个字段中没有逗号。

    • 查询当前数据库中所有数据表:show tables;

    • 查询数据表结构:desc 表名;
    • 修改数据表:
      • 添加字段:alter table 表名 add 字段名 类型 [comment 注释];
      • 修改字段类型:alter table 表名 modify 字段名 新类型;
      • 同时修改字段名、字段类型:alter table 表名 change 旧字段名 新字段名 新类型 [comment 注释];
      • 修改表名:alter table 表名 rename to 新表名;
      • 删除字段:alter table 表名 drop 字段名;
    • 删除数据表:
      • 删除指定表,并重写创建该表:truncate table 表名;
      • 删除数据表:drop table [if exists] 表名;
  2. DQL: 数据查询语言(Data Query Language)

    • 查询(select):SELECT <字段名表> FROM <表或视图名> WHERE <查询条件>
  3. DML: 数据操作语言(Data Manipulation Language)

    • 插入(insert)
    • 更新(update)
    • 删除(delete)
  4. DCL: 数据控制语言(Data Control Language)

  1. -- 1.创建用户:
  2. CREATE USER ‘用户名’@地址 IDENTIFIED BY '密码';
  3. CREATE USER ‘user1’@localhost IDENTIFIED BY ‘123’;
  4. CREATE USER ‘user2’@’%’ IDENTIFIED BY ‘123’;
  5. -- 2. 给用户授权:
  6. GRANT 权限1, … , 权限n ON 数据库.* TO ‘用户名’@地址;
  7. GRANT CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT ON guer.* TO user1@localhost;
  8. GRANT ALL ON phpcn22.* TO user2@localhost;
  9. -- 3. 撤销授权:
  10. REVOKE 权限1, … , 权限n ON 数据库.* FROM ‘用户名’@地址;
  11. REVOKE CREATE,ALTER,DROP ON mydb1.* FROM user1@localhost;
  12. -- 4.查看用户权限
  13. SHOW GRANTS FOR ‘用户名’@地址;
  14. SHOW GRANTS FOR user1@localhost
  15. -- 5. 删除用户
  16. DROP USER ‘用户名’@地址;
  17. DROP USER ‘user1’@localhost;
  18. -- 6. 修改用户密码(以root身份)
  19. use mysql;
  20. alter user '用户名'@localhost identified by '新密码';

重点: DML,即常说的增删改查(CURD)

4.9.5 常用操作(CURD)
  1. 创建(Create): INSERT
  2. 更新(Update): UPDATE
  3. 读取(Read) : SELECT
  4. 删除(Delete): DELETE
4.9.6 CURD 语法

(1) INSERT

  1. -- 语法1
  2. INSERT INTO 数据表 (字段列表) VALUES (字段值列表);
  3. -- 语法2
  4. INSERT 数据表 VALUES (字段值列表)
  5. -- 语法3
  6. INSERT 数据表 SET 字段键值对
  7. -- 案例(id是pk,系统维护要以不给值,要么null)
  8. INSERT INTO `user` (`id`,`name`) VALUES (null,'admin')
  9. INSERT `user` VALUES (null,'admin')
  10. INSERT `user` SET `name`='admin',`pwd`=`5445saswuq`; // 推荐用法

(2) UPDATE

  1. -- 语法
  2. UPDATE 数据表 SET 字段=值,... WHERE 条件
  3. -- 案例
  4. UPDATE `user` SET `name`='zhu' WHERE `id`=5;

(3) DELETE

  1. -- 语法
  2. DELETE FROM 数据表 WHERE 条件
  3. -- 案例
  4. DELETE FROM `user` WHERE `id`=5

(4) SELECT

  1. -- 语法
  2. SELECT 字段列表 FROM 数据表 WHERE 条件
  3. ORDER BY 排序字段 LIMIT 偏移量, 数量
  4. -- 案例
  5. SELECT `id`,`name` FROM `user`
  6. WHERE `id` > 3 ORDER BY `id` DESC LIMIT 10,5
4.9.7 数据类型
  1. 整数: int
  2. 小数: float
  3. 字符串: char/varchar/text/blob
  4. 日期时间: date/datetime/timestamp
    区别一:timestamp 以UTC格式存储,存储时对当前的时区进行转换,检索时再转换回当前的时区。datetime则不会。
    区别二: timestamp所能存储的时间范围为:’1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’。
    datetime所能存储的时间范围为:’1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’。
4.9.8 WHERE 条件
  1. 操作符: =,!=/<>,<,>,>=,<=
  2. AND/OR : 与/或,WHERE id>10 AND id<30
  3. BETWEEN-AND: 区间,WHERE id BETWEEN 10 AND 30
  4. IN: 集合,WHERE id IN (3,5,7)
  5. LIKE: 模糊,WHERE name LIKE '%f'(%多个 _单个)
  6. IS NULL/IS NOT NULL: 查询值为 NULL/不为 NULL 的记录
4.10 PDO:PHP 数据对象
  • PDO: PHP 为常用数据库操作定义了一个通用的轻量级访问接口
  • PDO 为数据访问提供了抽象层,意味着可以用相同的方式访问不同的数据库
  • PDO 默认随 PHP 安装并自动开启
  • 目前主流是: PDO 预处理操作数据库
  • 预处理:编译的是 SQL 语句模板,执行时,才绑定真实的数据,更加安全,高效

创建一个 PDO 连接:格式 $db = new PDO(dsn,username,password,[options]);

  1. // 封装 dsn => 数据库类型:host;dbname
  2. $dsn = 'mysql:host=localhost;dbname=guer';
  3. // 创建连接
  4. try {
  5. $db = new PDO($dsn, 'root', 'root');
  6. } catch (PDOException $e) {
  7. die('连接失败' . $e->getMessage());
  8. }
【本文由:高防cdn http://www.558idc.com/gfcdn.html 复制请保留原URL】