【剑指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三种存储引擎在事务支持、存储结构、锁等方面的纤细对比:

相关推荐
九皇叔叔3 小时前
Docker 镜像维护指南:从配置优化到 MySQL 实战运行
mysql·adb·docker
muxin-始终如一3 小时前
MySQL分区分表实现方法详解
数据库·mysql·adb
奥尔特星云大使3 小时前
mysql高可用架构之MHA部署(三)——故障转移后邮件告警配置(保姆级)
mysql·dba·高可用·mha·邮件告警
Tomorrow'sThinker3 小时前
第三章 · 数据库管理与视频路径获取
数据库·oracle
IndulgeCui3 小时前
【金仓数据库产品体验官】Mycat适配KES分库分表体验
数据库
长安城没有风3 小时前
从入门到精通【Redis】初识Redis哨兵机制(Sentinel)
java·数据库·redis·后端
玉面小白龍(peng)3 小时前
sql优化进阶
数据库
Adorable老犀牛3 小时前
Linux-db2look创建表结构详细参数
linux·数据库·db2
disanleya4 小时前
MySQL时间格式转换,时间数据混乱不堪如何彻底重构?
数据库·mysql·重构