【一】操作库
【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】引擎介绍
- InnoDB:
- 默认的存储引擎,从 MySQL 5.5 开始。
- 支持事务处理(ACID兼容)、行级锁定和外键。
- 适用于需要高可靠性和事务处理的应用。
- MyISAM:
- 在 MySQL 5.5 之前是默认存储引擎。
- 提供高速存取和全文搜索能力。
- 不支持事务处理和行级锁定,支持表级锁定。
- 适用于只读或插入频繁的应用。
- MEMORY:
- 数据存储在内存中,提供高速访问。
- 适合于临时表和快速读取的场景。
- 重启数据库后,数据会丢失。
【六】数据类型
数值类型
- 整型:包括
TINYINT
, SMALLINT
, MEDIUMINT
, INT
, BIGINT
。这些类型用于存储整数,并且可以指定是否带符号(signed/unsigned)。
- 浮点数和双精度:
FLOAT
和 DOUBLE
。用于存储小数。
- 定点数:
DECIMAL
。用于存储精确的小数,常用于财务计算。
日期和时间类型
DATE
:仅存储日期。
TIME
:仅存储时间。
DATETIME
:存储日期和时间。
TIMESTAMP
:存储日期和时间,通常用于记录事件发生的时间。
YEAR
:存储年份。
字符串类型
-
CHAR
(定长字符串)
- char(10)最多能存10个字符,如果超过10个会直接报错,如果不足十个,会空格补齐
- 缺点:浪费空间
- 优点:存储速度快
- 范围:0-255字符
-
VARCHAR
(可变长度字符串)
- varchar(10)最多能存10个字符,如果超果10个字符会直接报错,如果不足10个,直接存。
- 缺点:存储速度相对慢
- 优点:不浪费内存
- 范围0-65535字节
- 最大字符数 = (65535-行其他字段总字节数-null标志字节数-长度标志字节数)/字符集单字符最大字节数
-
枚举类型
-- 插入数据时,有枚举的那个字段只能插入枚举中的其中一个
create table t1(
id int,
name varcher(15),
gender enum('male','female','other')
)
-
集合
-- 同枚举相比,集合在插入有集合的字段记录时,可以插入的记录只能在集合里面选一个或者我多个
create table t1(
id int,
name varchar(15),
hobby set('somke','game','girl'))