Mysql基础

Mysql思维导图

参考博客(https://blog.csdn.net/m0_66570338/article/details/132036532)

数据库操作

查询所有数据库

1
show databases;

切换数据库

1
use 数据库名;

例如:(表示切换为名为test的数据库)

1
use test;

查询当前所在数据库

1
select database();

创建数据库

1
create database 数据库名;

例如:(创建一个名为hello的数据库)

1
create database hello;

创建数据库(up)

1
create database if not exists 数据库名 default character set 字符集 default collate 校验规则; 

例如:(若数据库不存在则创建 数据库名为 hello 的数据库 默认字符集为gb2312 校验规则为gb2312_chinese_ci)

1
create database if not exists hello default character set gb2312 default collate gb2312_chinese_ci;

删除数据库

1
drop database 数据库名;

例如:(删除一个名为hello的数据库)

1
drop database hello;

删除数据库(up)

1
drop database if exists 数据库名;

例如:(若数据库名为hello的数据库存在,则删除该数据库)

1
drop database if exists hello;

存储引擎

查看你的mysql现在已提供什么存储引擎

1
show engines;

查看你的mysql当前默认的存储引擎

1
show variables like '%storage_engine%';

数据库字符集

查看数据库支持字符集

1
show character set;

查看当前字符集设置

1
show variables like '%character_set_%';

参数解析

一、character_set_client

 主要用来设置客户端使用的字符集。

二、character_set_connection

主要用来设置连接数据库时的字符集,如果程序中没有指明连接数据库使用的字符集类型则按照这个字符集设置。

三、character_set_database

主要用来设置默认创建数据库的编码格式,如果在创建数据库时没有设置编码格式,就按照这个格式设置。

四、character_set_filesystem

文件系统的编码格式,把操作系统上的文件名转化成此字符集,即把 character_set_client转换character_set_filesystem, 默认binary是不做任何转换的。

五、character_set_results

数据库给客户端返回时使用的编码格式,如果没有指明,使用服务器默认的编码格式。

六、character_set_server

服务器安装时指定的默认编码格式,这个变量建议由系统自己管理,不要人为定义。

七、character_set_system

数据库系统使用的编码格式,这个值一直是utf8,不需要设置,它是为存储系统元数据的编码格式。

八、character_sets_dir

这个变量是字符集安装的目录。

修改数据库字符集

1
alter database 数据库名 default character set 字符集 default collate 校验规则;

例如:(修改数据库名为hello的字符集为utf8 校验规则为 utf8_general_ci)

1
alter database hello default character set utf8 default collate utf8_general_ci;

显示数据库的创建语句

1
show create database 库名;

例如:(查看数据库名为hello的创建语句)

1
show create database hello;

表操作

创建数据表(基础)

1
2
3
4
create table 表名(
字段一 字段一类型,
字段二 字段二类型
);

例如:(创建一张hello表,包含username字段,ueserpwd字段 类型均为varchar)

1
2
3
4
create table hello(
username varchar(20),
userpwd varchar(20)
);

复杂请转至mysql基础2

修改表结构

修改表名

1
alter table 原表名 rename to 新表名;

例如:(将hello表,表名改成test)

1
alter table hello rename to test;

修改字段名

1
alter table 表名 change 旧字段名 新字段名 新类型;

例如:(将test表的username字段修改为uname 长度从20修改为30)

1
alter table test change username uname varchar(30);

修改字段数据类型

1
alter table 表名 modify 字段名 数据类型;

例如:(将test表的userpwd字段数据类型改成int)

1
alter table test modify userpwd int;

添加字段

1
alter table 表名 add 新字段名 新字段类型;

例如:(在test表中添加新字段email类型为varchar)

1
alter table test add email varchar(20);

删除字段

1
alter table 表名 drop 字段名;

例如:(将test表的userpwd字段删除)

1
alter table test drop userpwd;

插入数据(基础)

1
insert into 表名(字段1,字段2,...)values(字段1值,字段2值,...);

例如:(在test表中插入一条数据)

1
insert into test(uname,email)values("张三","123@qq.com");

修改数据

1
update 表名 set 字段1=1 字段2=2 where 字段?=值?;

例如:(将test表uname为张三的 email值改成123456@163.com)

1
update test set email="123456@163.com" WHERE uname="张三";

查询表数据(基础)

1
select 字段 from 表名;

例如:(查询test表的所以内容)

1
select * from test;

删除数据

1
delete from 表名 where 字段?=值?; 

例如:(删除test表uname为张三的记录)

1
delete from test where uname="张三";

删除表

1
drop table 表名;

例如:(删除test表)

1
drop table test;