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

相关推荐
spencer_tseng9 小时前
mysql uuid()
mysql·uuid
傻啦嘿哟10 小时前
用Redis实现爬虫URL去重与队列管理:从原理到实战的极简指南
数据库·redis·爬虫
冒泡的肥皂10 小时前
2PL+MVCC看一些场景
数据库·后端·mysql
岁岁岁平安10 小时前
python mysql-connector、PyMySQL基础
python·mysql·pymysql
码农阿豪10 小时前
从权限混沌到安全有序:金仓数据库的权限隔离如何超越MySQL
数据库·mysql·安全
不剪发的Tony老师11 小时前
SQL Schema Compare:一款免费开源的数据库结构比较和同步工具
数据库
寒秋丶11 小时前
Milvus:集合(Collections)操作详解(三)
数据库·人工智能·python·ai·ai编程·milvus·向量数据库
寒秋丶11 小时前
Milvus:Schema详解(四)
数据库·人工智能·python·ai·ai编程·milvus·向量数据库
kyle~11 小时前
CPU调度---协程
java·linux·服务器·数据库·c++20
IDOlaoluo11 小时前
SQL Server 2017 Developer 中文版安装教程(64位 ISO 文件详细步骤)
服务器·数据库·负载均衡