从 SQL 语句到数据库操纵

打印 上一主题 下一主题

主题 857|帖子 857|积分 2571

1. SQL 语句分类



  • 数据定义语言 DDL : 用于定义或修改数据库中的结构,如:创建、修改、删除数据库对象。create、drop alter
  • 数据操纵语言 DML : 用于添加、删除、更新数据库中的数据。select、insert alter、drop
  • 数据控制语言 DCL : 用于控制访问权限和管理数据库的安全性。grant、revoke、commit
2. 存储引擎

存储引擎是数据库管理体系中的关键组件,它决定了数据如何被存储、构造以及检索

在 MySQL 中创建一个新的数据库时,会在文件体系上为该数据库创建一个对应的目次。
这个数据库通常包含了与该数据库相关的、所有表的数据文件、索引文件、以及别的文件。

不同的存储引擎可能会以不同的方式构造这些文件。



  • InnoDB : 默认存储引擎,支持事务处理、行级锁定和外键束缚。InnoDB 计划用于最大化数据完备性和高并发环境下的性能。
​ 实用于须要频繁写入操纵,和事务支持的应用场景。


  • MyISAM : 不支持事务和行级锁定,但提供高速的查询性能和简朴的维护管理。MyISAM 使用表级锁定,在执行写操纵时,整个表会被锁定。
​ 适合读麋集型应用,但在高并发写场景时可能会遇到性能瓶颈。
3. 字符集和校验规则

3.1 数据库默认的字符集和校验规则

查看体系默认字符集:
  1. show variables like 'character_set_database';
复制代码

查看体系默认校验规则:
  1. show variables like 'collation_database';
复制代码



  • utf8mb4 : 字符集名称,表示支持完备的 Unicode 字符集,包括 4 字节的 UTF-8 编码字符。
  • utf8mb4_0900_ai_ci : 一种基于 Unicode 9.0.0 标准、忽略重音和大小写的校验规则,实用于 utf8mb4 字符集。
3.2 数据库支持的字符集和校验规则

查看数据库支持的字符集和字符集校验规则:
  1. show charset;    # 查看数据库支持的字符集
  2. show collation;  # 查看数据库支持的字符集校验规则
复制代码
3.3 校验规则对数据库的影响



  • 不区分大小写
  1. create database temp2 charset=utf8mb4; # 使用默认字符串校验规则,不区分大小写
  2. use temp2;
  3. create table person (name varchar(20));
  4. insert into person values('a');
  5. insert into person values('b');
  6. insert into person values('c');
  7. insert into person values('A');
  8. insert into person values('B');
  9. insert into person values('C');
复制代码



  • 区分大小写
  1. create database temp3 charset=utf8mb4 collate=utf8mb4_bin; # utf8mb4_bin 区分大小写
  2. use temp3;
  3. create table person (name varchar(20));
  4. insert into person values('a');
  5. insert into person values('b');
  6. insert into person values('c');
  7. insert into person values('A');
  8. insert into person values('B');
  9. insert into person values('C');
复制代码

4. 修改、备份和恢复数据库

4.1 修改数据库

  1. show create database temp2; # 查看数据库`temp2`是如何创建的
复制代码

  1. alter database temp2 charset=gbk; # 修改数据库`temp2`字符集为 gbk
  2. show create database temp2;
复制代码

4.2 备份数据库

  1. mysqldump -P3306 -uroot -p -Btemp2 > /home/ZhengTongren/MySQL/temp2.bak
复制代码


  • mysqldump 是一个命令行工具,而不是 SQL 语句,不能在 MySQL 客户端中直接运行。
  • mysqldump 须要指定一个具体的文件路径来生存文件;假如想备份生存到 /home/ZhengTongren/MySQL/ 路径下,须要确保该目次存在,并提供一个具体的文件名。

4.3 恢复数据库

登入 MySQL 客户端。
  1. source /home/ZhengTongren/MySQL/temp2.bak;
复制代码
5. 修改表

  1. desc person; # 查看表`person`的结构信息
  2. # 插入两条数据
  3. insert into person values (1, '张三');
  4. insert into person values (2, '李四');
复制代码

5.1 在 person 表中添加一个字段,生存 ‘年事’

  1. alter table person add age int comment '年龄' after name; # 在 name 后加入 age 列
  2. select * from person;
复制代码

插入新字段后,对原来表中的数据没有影响。
  1. update person set age = 18 where name='张三';
  2. update person set age = 21 where name='李四';
复制代码

5.2 修改 name 字段长度,修改表名

  1. # 修改 name 字段长度为 30
  2. alter table person modify name varchar(30);
  3. desc person;
  4. # 修改表名
  5. alter table person rename employee;
  6. select * from employee;
复制代码

5.3 删除 id 列

删除表中的一个字段时,该字段及其对应的所有数据都将被永久删除。
  1. alter table employee drop id; # 前面修改过表名
  2. select * from employee;
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

农妇山泉一亩田

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表