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

相关推荐
Aloudata几秒前
破解监管溯源难题:从表级血缘到算子级血缘的数据治理升级
数据库·数据挖掘·数据治理·元数据·数据血缘
OceanBase数据库官方博客3 分钟前
中国联通软研院基于OceanBase引领运营商数智化转型新范式
数据库·oceanbase·分布式数据库
qq_297574675 分钟前
MySQL迁移到瀚高数据库 常用转换函数对照表(附XML示例,直接复用)
xml·数据库·mysql
筷乐老六喝旺仔6 分钟前
使用PyQt5创建现代化的桌面应用程序
jvm·数据库·python
想做一只开心的菜鸡7 分钟前
DARTS#02 | 从共识算法到存算分离:深度拆解云原生数据库的稳定性基石
数据库
咚咚?9 分钟前
麒麟操作系统达梦数据库集群安装(一主一从)
数据库
Mr_Xuhhh13 分钟前
MySQL复合查询详解:多表查询、子查询与合并查询
数据库·sql·mysql
Warren9819 分钟前
Pytest Fixture 到底该用 return 还是 yield?
数据库·oracle·面试·职场和发展·单元测试·pytest·pyqt
武超杰21 分钟前
深入理解JDBC:Java数据库连接的核心技术与实践
java·开发语言·数据库·jdbc
JSON_L23 分钟前
使用 SQLite 创建数据库和表
数据库·sqlite·php