Loading

数据库操作

【一】操作库

【1】创库

create database [if not exists] <数据库名>[charset=utf8];
# 创建数据库的时候建议指定编码

【2】查库

show databases; #查所有数据库
show create database<数据库名>; #查一个数据库

【3】改库

alter database <数据库名> [charset=<编码>];
# 更改数据库的编码

【4】删库

drop database [if exists] <数据库名>;
#删库跑路

【二】操作表

  • 所有对表的操作都可以使用绝对路径的方式,这样就可以做到不切换数据库,也能对别的数据库的表进行操作
select database();
use 数据库名;

【1】增表

create table <表名>(
    <字段名1> <字段类型> [(宽度)] [约束条件],
    <字段名2> <字段类型> [(宽度)] [约束条件],
    <字段名3> <字段类型> [(宽度)] [约束条件]
);
-- 最后一个字段不能加逗号
-- 宽度就是字符的个数

【2】查表

-- 查看所有表
show tables; 

-- 查某一张表
show tables like <'表名'>;

-- 查看一张表的结构
describe 表名; 

-- 简写
desc 表名; 

-- 查看建表语句
show create table <表名> [/G]
show create table <表名> [/g]

【3】改表

-- 增加字段
alter table <表名> add <字段名> <字段类型> [(宽度)] [约束条件] [first|after <字段名>]

-- 删除字段
alter table <表名> drop <字段名>; # 只能一个个删,不能一次删多个字段

-- 修改字段
alter table <表名> modify <字段名> <字段类型> [(宽度)][约束条件];
alter table <表名> change <旧字段名> <新字段名> <新字段类型> [(宽度)] [约束条件];

-- 修改表名
alter table <旧表名> rename to <新表名>;

-- 修改存储引擎
alter table <表名> engine= <引擎名>

【4】删表和复制表

-- 删除表
drop table <表名>;

-- 复制表
create table <表名> select * from <被复制的表名>;

-- 复制表结构
create table <表名> like <被复制的表名>;

【三】操作记录

【1】增记录

-- 添加记录
insert into <表名> (字段1,字段2....) values(记录1,记录2....);

【2】查记录

-- 查表所有记录
select * from <表名>

-- 查表谋个字段的记录
select <字段名> from <表名>

【3】改记录

-- 修改记录
update <表名> set <字段名> = <修改的记录> where <条件>

【4】删记录

-- 删除记录
delete from <表名> where <条件>;

【四】SQL语句分类

DDL 数据库定义语言,用来定义和管理数据库或者数据表 create,alter,drop
DML 数据库操纵语言,用来操纵数据 insert,update,delete
DQL 数据库 查询语言,用来查询数据 select
DCL 数据库控制语言,权限控制 grant,revoke,commit,rollback

【五】存储引擎

【1】查看所有存储引擎

show engien

【2】引擎介绍

  1. InnoDB
    • 默认的存储引擎,从 MySQL 5.5 开始。
    • 支持事务处理(ACID兼容)、行级锁定和外键。
    • 适用于需要高可靠性和事务处理的应用。
  2. MyISAM
    • 在 MySQL 5.5 之前是默认存储引擎。
    • 提供高速存取和全文搜索能力。
    • 不支持事务处理和行级锁定,支持表级锁定。
    • 适用于只读或插入频繁的应用。
  3. MEMORY
    • 数据存储在内存中,提供高速访问。
    • 适合于临时表和快速读取的场景。
    • 重启数据库后,数据会丢失。

【六】数据类型

数值类型

  • 整型:包括 TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT。这些类型用于存储整数,并且可以指定是否带符号(signed/unsigned)。
  • 浮点数和双精度FLOATDOUBLE。用于存储小数。
  • 定点数DECIMAL。用于存储精确的小数,常用于财务计算。

日期和时间类型

  • DATE:仅存储日期。
  • TIME:仅存储时间。
  • DATETIME:存储日期和时间。
  • TIMESTAMP:存储日期和时间,通常用于记录事件发生的时间。
  • YEAR:存储年份。

字符串类型

  • CHAR(定长字符串)

    • char(10)最多能存10个字符,如果超过10个会直接报错,如果不足十个,会空格补齐
    • 缺点:浪费空间
    • 优点:存储速度快
    • 范围:0-255字符
  • VARCHAR(可变长度字符串)

    • varchar(10)最多能存10个字符,如果超果10个字符会直接报错,如果不足10个,直接存。
    • 缺点:存储速度相对慢
    • 优点:不浪费内存
    • 范围0-65535字节
    • 最大字符数 = (65535-行其他字段总字节数-null标志字节数-长度标志字节数)/字符集单字符最大字节数
  • 枚举类型

    • enum:单选
    -- 插入数据时,有枚举的那个字段只能插入枚举中的其中一个
    create table t1(
    	id int,
    	name varcher(15),
    	gender enum('male','female','other')
    )
    
  • 集合

    • set:多选
    -- 同枚举相比,集合在插入有集合的字段记录时,可以插入的记录只能在集合里面选一个或者我多个
    create table t1(
    	id int,
    	name varchar(15),
    	hobby set('somke','game','girl'))
    
posted @ 2024-03-24 17:02  HuangQiaoqi  阅读(8)  评论(0编辑  收藏  举报