快捷查看指令 ctrl+f 进行搜索会直接定位到需要的知识点和命令讲解(如有不正确的地方欢迎各位小伙伴在评论区提意见,博主会及时修改)
数据库基本操作
以下是一些 MySQL 基础操作 SQL 指令:
1.创建库
create database 库名;
2.查看数据库
show databases;
3.进入数据库
use 库名;
4.查看当前所在的库
select database();
5.删除数据库
DROP DATABASE database_name;
6.创建数据表
表中包含行(记录)和列(字段),在创建表时需要将表中可储存的信息一并设置好
语法:
create table 表名(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
字段名3 类型[(宽度) 约束条件]
)[存储引擎 字符集];
==在同一张表中,字段名是不能相同
==宽度和约束条件可选
==字段名和类型是必须的
7.查看当前库中有哪些表
show tables;
8.查看表结构:
desc 表名;
9.查看表里面的所有记录:
语法:
select 内容 from 表名;
比如:
select * from 表名;
*:代表所有内容
10.查看表里面的指定字段:
语法:
select 字段1,字段2 from 表名;
比如:
select name,sex from 表名;
11.查看表的状态
show table status like ‘表名’\G —每条SQL语句会以分号结尾,想看的清楚一些以\G结尾,一条记录一条记录显示。(把表90度向左反转,第一列显示字段,第二列显示记录)使用的\G就不用添加分号了
- 删除数据表
DROP TABLE table_name;
13.插入数据
INSERT INTO table_name (column1, column2, column3, …)
VALUES (value1, value2, value3, …);
- 更新数据
UPDATE table_name SET column1=value1, column2=value2, … WHERE some_column=some_value;
- 删除数据
DELETE FROM table_name WHERE some_column=some_value;
16.修改表名称
方式一、语法:
rename table 旧表名 to 新表名;
mysql> rename table t1 to t2;
Query OK, 0 rows affected (0.00 sec)
方式二、语法:
alter table 旧表名 rename 新表名;
mysql> alter table t2 rename t3;
17.添加新字段
语法:
alter table 表名 add 字段 类型;
mysql> alter table t3 add math int(10);-------添加的字段
mysql> alter table t3 add (chinese int(10),english int(10));------添加多个字段,中间用逗号隔开。
18.修改字段名称、数据类型、类型
语法:
alter table 表名 change 旧字段 新字段 类型; #change修改字段名称,类型,约束,顺序
mysql> alter table t3 change max maxs int(15) after id; #修改字段名称与修饰并更换了位置
19.修改字段类型,约束,顺序
语法:
alter table 表名 modify 字段 类型; #modify 不能修改字段名称
mysql> alter table t3 modify maxs int(20) after math; #修改类型并更换位置
20.删除字段
mysql> alter table t3 drop maxs; #drop 丢弃的字段。
数据类型
数据类型 | 解释 | 注意事项 |
---|---|---|
tinyint | 1字节整数 | 有符号数:-128~127 无符号数(unsigned):0~255 |
smallint | 2字节整数 | 有符号数:-32768~32767 无符号数:0~65535 |
mediumint | 3字节整数 | 有符号数:-8833608~8833607 无符号数:0~1677215 |
int、integer | 4字节整数 | 有符号数:-2147483648~2147483647 无符号数:0~4294967295 |
bigint | 8字节整数 | 有符号数:-9223372036854775808~9223372036854775807 无符号数:0~18446744073709551615 |
float | 4字节浮点数 | -3.402823466E+38~3.402823466E+38 |
double | 8字节浮点数 | -1.7976931348623157E+308~1.7976931348623157E+308 |
decimal(m,d) | p+2个字节,定点数 | m表示精度(数字有效长度),d表示标度(小数点的位数) m最大值65,默认值10;d最大值30,默认值0 |
char(n) | 定长字符串 | 无论保存的数据多少,一定占n的字符空间,n最大255 |
varchar(n) | 变长字符串 | 根据保存的数据多少,占据对应的字符空间,n最大65535 |
text | 大文本类型 | 能保存4G大小文字 |
enum | 枚举类型 | 在给定的范围内选择一个值,比如性别 enum(‘F’,‘M’) |
date | 4字节 | 包含年月日,1000-01-01~9999-12-31 |
time | 3字节 | 包含时分秒,-838:59:59~838:59:59 |
datetime | 8字节 | 包含年月日 时分秒,1000-01-01 00:00:00~9999-12-31 23:59:59 |
timestamp | 4字节 | 包含年月日时分秒,1970-01-01 08:00:01~2038-01-19 11:14:07 |
约束
约束 | 解释 | 说明 |
---|---|---|
primary key | 主键 | 用来明确一列为主键列 |
not null | 非空 | 约束一列的值不能为null |
unique | 唯一 | 约束一列的值不能重复 |
default | 默认 | 当列没有值时,设置默认值 |
references | 外键约束 | 明确该列为外键列,并指明引用哪一张表的哪一列值 |
enum | 枚举约束 | 明确该字段的值选择范围 |
多表联查
内连接
语法:
select 表1.列名,… ,表2.列名,…
from 表1 inner join 表2
on 连接条件;特点:两张表中只要满足连接条件的数据才显示,不管是哪一张表的数据,只要不满足连接条件一定不显示。
右外连接
语法:
select 左表.列名,… ,右表.列名,…
from 左表 right outer join 右表
on 连接条件;
特点:右表中无论是否满足连接条件都显示,左表中数据满足连接条件才显示,不满足就不显示。
左外链接
语法:
select 左表.列名,… ,右表.列名
from 左表 left outer join 右表
on 连接条件;
特点:左表中数据无论是否满足条件一定显示,右表中的数据满足条件显示,不满足条件不显示。
以上是一些 MySQL 基础操作 SQL 指令,它们可以用于创建数据库、数据表,插入、查询、更新和删除数据等常见操作。