【剑指MySQL】数据库基础(1)

1. 创建数据库及表的流程

1.1 创建数据库

1.1.1 语法

sql 复制代码
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]

create_specification:
	[DEFAULT] CHARACTER SET charset_name
	[DEFAULT] COLLATE  collation_name

说明:

  • 大写的表示关键字;
  • \]是可选项;

  • COLLATE:指定数据库字符集的校验规则;

1.1.2 创建数据库案例

sql 复制代码
create database example;

说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_general_ci。

1.1.3 字符集和校验规则

查看系统默认字符集以及校验规则

sql 复制代码
show variable like 'character_set_database';
show variable like 'collation_database';

查看数据库支持的字符集

sql 复制代码
show charset;

字符集主要是控制用什么语言,例如utf8就可以使用中文。

查看数据库支持的字符集校验规则

sql 复制代码
show collation;

校验规则对数据库的影响

  • 不区分大小写;utf8_general_ci
  • 区分大小写; utf8_bin

1.2 使用数据库

1.2.1 查看数据库

sql 复制代码
show databases;

1.2.2 显示创建语句

sql 复制代码
show create database 数据库名;

上图中,数据库名example的反引号,是为了防止使用的数据库名是关键字。/*!40100 DEFAULT CHARACTER SET utf8 */这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话。

1.2.3 操作数据库example

sql 复制代码
use example;

1.2.4 修改数据库

语法:

sql 复制代码
ALTER DATABASE db_name
[alter_spacification [,alter_spacification] ...]

alter specification:
[DEFAULT] CHARACTER SET  charset_name
[DEFAULT] COLLATE collation_name

说明:

  • 对数据库的修改主要指是修改数据库的字符集、校验规则

1.2.5 数据库删除

sql 复制代码
DROP DATABASE [IF EXISTS] db_name;

执行删除之后的结果:

  • 数据库内部看不到对应的数据库;
  • 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删;

1.3 创建数据库表

1.3.1 语法

sql 复制代码
CREATE TABLE table_name(
	field1 datatype,
    field2 datatyp2,
    field3 datatyp3
)character set 字符集 collate 校验规则 engine 存储引擎;

说明:

  • field表示列名;
  • datatype表示列的类型;
  • character set字符集,如果没有指定字符集,则以所在数据库的字符集为准;
  • collate校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准;

1.3.2 创建表案例

sql 复制代码
create table student(
	id int,
	name varchar(32),
	gender varchar(2)
);

说明:不同的存储引擎,创建表的文件不一样;

1.3.3 查看表结构

sql 复制代码
desc 表名;

上图中,Field字段名Type字段类型Null是否允许为空、Key索引类型、Default默认值和Extra扩充

1.4 表中插入数据

sql 复制代码
insert into student (id,name,gender) values (1,'刘备','男');
insert into student (id,name,gender) values (2,'关羽','男');
insert into student (id,name,gender) values (3,'张飞','男');

1.5 修改表

在项目实际开发中,经常修改某个表的结构,例如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等,我们有时还需要添加字段、删除字段等,这时就需要修改表:

sql 复制代码
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);
ALTER TABLE tablename MODIFY (column datatype [DEFAULT expr][,column datatype]...);
ALTER TABLE tablename DROP(column);

插入新字段后,对原来数据没有影响。

修改name,将其长度改为60

sql 复制代码
alter table student modify name varchar(60);

删除asset列

sql 复制代码
alter table student drop asset;

修改表的名称

sql 复制代码
alter table tablename_old rename to tablename_new;--to可以省略掉

修改列的名称

sql 复制代码
alter table student change name xingming varchar(60);--新字段选哟完整定义

1.6 查询表中的数据

sql 复制代码
select * from student;

1.7 删除表

语法:

sql 复制代码
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name]...

实例:

sql 复制代码
drop table t1;

2. 存储引擎

存储引擎是数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。

MySQL的核心就是插件式存储引擎,支持多种存储引擎。

2.1 查看存储引擎

sql 复制代码
show engines;

2.2 存储引擎对比

以下是对InnoDB、MyISAM和Memory三种存储引擎在事务支持、存储结构、锁等方面的纤细对比:

相关推荐
紫青宝剑21 分钟前
向量数据库 Milvus
数据库·milvus
雪碧聊技术22 分钟前
数据库系统基础知识
数据库
Elastic 中国社区官方博客22 分钟前
如何使用 LogsDB 降低 Elasticsearch 日志存储成本
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索·可用性测试
Dreamboat-L23 分钟前
HBase远程访问配置(详细教程)
大数据·数据库·hbase
刘~浪地球24 分钟前
数据库与缓存--Redis 集群架构与优化
数据库·redis·缓存
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.26 分钟前
MySQL 主从架构中的使用技巧及优化
android·mysql·架构
羊小蜜.26 分钟前
Mysql 11: 存储过程全解——从创建到使用
android·数据库·mysql·存储过程
A__tao27 分钟前
一键实现 SQL 转 Elasticsearch Mapping(支持字段注释 + meta 描述)
数据库·sql·elasticsearch
努力努力再努力wz34 分钟前
【C++高阶系列】外存查找的极致艺术:数据库偏爱的B+树底层架构剖析与C++完整实现!(附B+树实现的源码)
linux·运维·服务器·数据结构·数据库·c++·b树
知识分享小能手36 分钟前
MongoDB入门学习教程,从入门到精通,MongoDB 持久性完全指南(20)
数据库·学习·mongodb