数据库基本操作

DDL

数据库模式定义语言DDL(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言。

1.对数据库创建、删除、修改操作

2.对表结构创建、删除、修改操作

mysql8.0.22使用 mysql8使用教程_sql

创建数据库(database)

n多张不同的表结构

user1

user2

.......

数据库操作

查询

-- 查询所有数据库的名称:
show databases;
-- 查询某个数据库的字符集:查询某个数据库的创建语句
show create database 数据库名称;
-- 查询当前正在使用的数据库名称
select database();
-- 使用数据库
use 数据库名称;

创建

-- 创建数据库:
create database 数据库名称;
-- 创建数据库,判断不存在,再创建:
create database if not exists 数据库名称;
-- 创建数据库,并指定字符集
create database 数据库名称 character set 字符集名;

删除

-- 语法: 删除数据库
drop database 数据库名称;
-- 判断数据库存在,存在再删除
drop database if exists 数据库名称;

修改

-- 基本操作:修改数据库的字符集
alter database 数据库名称 character set 字符集名称;

注意:一般不对数据库进行修改操作,因为修改的安全性低,容易导致数据的缺失。

表操作

创建表

create table if not exists 表名(
                列名1 数据类型1[长度] 【字段约束】,
                列名2 数据类型2[长度] 【字段约束】,
                ....
                列名n 数据类型n[长度] 【字段约束】
            );
    * 注意:最后一列,不需要加逗号(,)
use demo;
CREATE TABLE if not exists t_user(
	id INT,
	name VARCHAR(20),
    age int,
    create_time date,
    address VARCHAR(100)
);

修改

1.修改表名称:

-- 语法:alter table 表名 rename to 新的表名;

ALTER TABLE t_user RENAME TO m_user ;

删除表

drop table 表名;

drop table if exists 表名;

数据类型

MySQL 支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。

数值类型

类型

大小

范围(有符号)

范围(无符号)

用途

TINYINT

1 Bytes

(-128,127)

(0,255)

小整数值

SMALLINT

2 Bytes

(-32 768,32 767)

(0,65 535)

大整数值

MEDIUMINT

3 Bytes

(-8 388 608,8 388 607)

(0,16 777 215)

大整数值

INT或INTEGER

4 Bytes

(-2 147 483 648,2 147 483 647)

(0,4 294 967 295)

大整数值

BIGINT

8 Bytes

(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)

(0,18 446 744 073 709 551 615)

极大整数值

FLOAT

4 Bytes

(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)

0,(1.175 494 351 E-38,3.402 823 466 E+38)

单精度
浮点数值

DOUBLE

8 Bytes

(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)

0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)

双精度
浮点数值

DECIMAL

对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2

依赖于M和D的值

依赖于M和D的值

小数值

日期和时间类型

表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。

类型

大小(bytes)

范围

格式

用途

YEAR

1

1901/2155

YYYY

年份值

DATE

3

1000-01-01/9999-12-31

YYYY-MM-DD

日期值

TIME

3

‘-838:59:59’/‘838:59:59’

HH:MM:SS

时间值或持续时间

DATETIME

8

1000-01-01 00:00:00/9999-12-31 23:59:59

YYYY-MM-DD HH:MM:SS

混合日期和时间值

TIMESTAMP

4

1970-01-01 00:00:00/2038 结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07

YYYYMMDD HHMMSS

混合日期和时间值,时间戳

字符串类型

类型

大小

用途

CHAR

0-255 bytes

定长字符串

VARCHAR

0-65535 bytes

变长字符串

TINYBLOB

0-255 bytes

不超过 255 个字符的二进制字符串

TINYTEXT

0-255 bytes

短文本字符串

BLOB

0-65 535 bytes

二进制形式的长文本数据

TEXT

0-65 535 bytes

长文本数据

MEDIUMBLOB

0-16 777 215 bytes

二进制形式的中等长度文本数据

MEDIUMTEXT

0-16 777 215 bytes

中等长度文本数据

LONGBLOB

0-4 294 967 295 bytes

二进制形式的极大文本数据

LONGTEXT

0-4 294 967 295 bytes

极大文本数据

char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符

DML

数据操作语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括 insert、delete、udpate 和select 等。(增添改查)

DML与DDL区别?

DDL 对数据库 表结构 增加、修改 删除操作

DML 表结构中的数据 增加(insert)、修改(update) 删除(delete) 查询(select )

insert

INSERT INTO 语句用于向表格中插入新的行。

语法格式:

INSERT INTO 表名称 (列名1,列名2 ...) VALUES (值1, 值2,....) // 插入数据列与值的顺序需要一一对应。

INSERT INTO 表名称 VALUES (值1, 值2,....) // 向表中插入所有列

例子:

-- 指定列名
INSERT INTO `t_user` (`id`, `name`, `age`, `addres`, `create_time`) 
VALUES (1, 'mm', 1, '1', '2022-01-20 03:51:54');
-- 不指定列名
INSERT INTO `t_user` VALUES (1, 'mm', 1, '1', '2022-01-20 03:51:54');

update

语法格式:

update 表名称 set 字段=值,字段=值,...; ---直接修改整张表的所有行数据

update 表名称 set 字段=值,字段=值,... where 条件 ---- 根据条件查找到对应行数据 修改

例子:

---修改id=1
UPDATE t_user ` SET `name` = 'mm', `age` = 25 WHERE `id` = 1;
 ---修改所有
UPDATE t_user ` SET `name` = 'mm', `age` = 25;

delete

语法格式:

delete from 表名称 where 条件 根据条件删除表中的数据

TRUNCATE mayikt_user --清空表中所有的数据

例子:

-- 根据条件id=1 删除id=1 行数据
delete from t_user where where id=1; 
---清空表中所有的数据
delete from t_user 
--清空表中所有的数据
truncate t_user ;
truncate table t_user ;

TRUNCATE 与delete 不同?

truncate:会清空表中所有的数据,速度快,不可回滚;实质是删除整张表包括数据再重新创建表;

delete:逐行删除数据,每步删除都是有日志记录的,可以回滚数据;实质是逐行删除表中的数据;