【MYSQL】数据库基础

0. 内容重点总结

  • 操作数据库:
-- 显示
show databases;
-- 创建
create database xxx;
-- 使用
use xxx;
-- 删除
drop database xxx;
  • 常用数据类型:
INT:整型
DECIMAL(M, D):浮点数类型
VARCHAR(SIZE):字符串类型
TIMESTAMP:日期类型
  • 操作表:
-- 查看
show 表;
-- 创建
create table 表名(
 字段1 类型1,
 字段2 类型2,
 ...
);
-- 删除
drop talbe 表名;

1. root 用户登录

MySQL默认只允许在服务器本机 使用 root 用户登录,要开启 root 用户的远程登录,在MySQL服务器本机执行:

mysql -u root -p

要求输入密码,没有设置密码则直接回车 进入MySQL命令行以后,可以看到 mysql>

– 使用mysql数据库
use mysql;
– 更新用户表的root账户,设置为任意ip都可以访问,密码修改为123456
update user set host="%",authentication_string=password('root') where user="root";
– 刷新权限
flush privileges;
– 退出
quit;

2. 数据库的操作

⭐️ 2.1 显示当前的数据库

SHOW DATABASES;

【MYSQL】数据库基础_第1张图片

⭐️ 2.2 创建数据库

语法:

> CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, 
> create_specification] ...] create_specification:  [DEFAULT] CHARACTER
> SET charset_name  [DEFAULT] COLLATE collation_name

【说明】

  • 大写的表示关键字
  • [] 是可选项
  • CHARACTER SET: 指定数据库采用的字符集
  • COLLATE: 指定数据库字符集的校验规则

推荐使用:

CREATE DATABASE [IF NOT EXISTS] db_name CHARACTER SET utf8mb4;
即:加上IF NOT EXISTS,加上编码集

示例:

  • 创建名为 db_test1 的数据库

CREATE DATABASE db_test1
【说明】当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ci

  • 如果系统没有 db_test2 的数据库,则创建一个名叫 db_test2 的数据库,如果有则不创建

CREATE DATABASE IF NOT EXISTS db_test2;

  • 如果系统没有 db_test 的数据库,则创建一个使用utf8mb4字符集的 db_test 数据库,如果有则不创建

CREATE DATABASE IF NOT EXISTS db_test CHARACTER SET utf8mb4;
【说明】MySQL的utf8编码不是真正的utf8,没有包含某些复杂的中文字符。MySQL真正的utf8是使用utf8mb4,建议大家都使用utf8mb4

⭐️ 2.3查看数据库字符集

show variables like '%character%';

【MYSQL】数据库基础_第2张图片
【MYSQL】数据库基础_第3张图片
如果当前行没有用分号结束,在后面需要结束时加个分号即可
【MYSQL】数据库基础_第4张图片

⭐️ 2.4 关键字

MYSQL中允许用户使用关键字做为数据库名,但是需要用反引号把关键字引起来

> create database `database`.

⭐️ 2.5 使用数据库

use 数据库名;

查看下当前使用的是哪个数据库:

select database();

【MYSQL】数据库基础_第5张图片

⭐️ 2.6 删除数据库

语法:

DROP DATABASE [IF EXISTS] db_name;

【说明】数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除

示例:
drop database if exists db_test1;

3.常用数据类型

⭐️ 3.1数值类型

分为整型和浮点型:

数据类型 大小 说明 对应java类型
BIT[ (M) ] M指定位数,默认为1 二进制数,M范围从1到64,存储数值范围从0到2^M-1 常用Boolean对应BIT,此时默认是1位,即只能存0和1
TINYINT 1字节 Byte
SMALLINT 2字节 Short
INT 4字节 Integer
BIGINT 8字节 Long
FLOAT(M, D) 4字节 单精度,M指定长度,D指定小数位数。 会发生精度丢失 Float
DOUBLE(M,D) 8字节 Double
DECIMAL(M,D) M/D最大值+2 双精度,M指定长度,D表示小数点位数。精确数值 BigDecimal
NUMERIC(M,D) M/D最大值+2 和DECIMAL一样 BigDecimal

【注意】 1字节(bytes)= 8bit。 对于整型类型的范围:

  • 有符号范围:-2(类型字节数*8-1)到2(类型字节数*8-1)-1,如int是4字节,就 是-231到231-1
  • 无符号范围:0到2(类型字节数*8)-1,如int就是232-1 尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其如此,还不如设计时,将int类型提升为bigint类型。

⭐️ 3.2 字符串类型

数据类型 大小 说明 对应java类型
VARCHAR (SIZE) 0-65,535字节 可变长度字符串 String
TEXT 0-65,535字节 长文本数据 String
MEDIUMTEXT 0-16 777 215字节 中等长度文本数据
BLOB 0-65,535字节 二进制形式的长文本数据 byte[]

⭐️ 3.3 日期类型

数据类型 大小 说明 对应java类型
DATETIME 8字节 范围从1000到9999年,不会进行时区的检索及转换。 java.util.Date、java.sql.Timestamp
TIMESTAMP 4字节 范围从1970到2038年,自动检索当前时区并进行转换。 java.util.Date、java.sql.Timestamp

4. 表的操作

需要操作数据库中的表时,需要先使用该数据库:

use 数据库名;

⭐️ 4.1 查看表结构

desc 表名;
【MYSQL】数据库基础_第6张图片

⭐️ 4.2 创建表

语法:

CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype);
可以使用comment增加字段说明

示例:

create table stu_test (
   id int,
   name varchar(20) comment '姓名',
   password varchar(50) comment '密码',
   age int,
   sex varchar(1),
   birthday timestamp,
   amout decimal(13,2),
   resume text
);

⭐️ 4.3 删除表

语法格式:

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

示例:

-- 删除 stu_test 表
drop table stu_test;

-- 如果存在 stu_test 表,则删除 stu_test 表
drop table if exists stu_test;

你可能感兴趣的:(MySQL,数据库,mysql,服务器)