基本命令操作
连接
// 连接本机的3306端口上的mysql服务
mysql -uroot -proot
// 连接本机的其他端口
mysql -uroot -proot -P 3307
// 连接其他主机的其他端口
mysql -uroot -proot -P 3307 -h 192.168.100.113
库操作
创建库
create database mydb;
// 设置编码与字符集
create database mydb default character set utf8 collate utf8_general_ci;
create database mydb 代表的是创建数据库 mydb
default character set utf8 代表的是将该库的默认编码格式设置为utf8
collate utf8_general_ci 代表的是数据库校对规则,utf8_bin将字符串中的每一个字符用二进制数据存储,区分大小写。utf8_genera_ci不区分大小写,ci为case insensitive的缩写,即大小写不敏感。utf8_general_cs区分大小写,cs为case sensitive的缩写,即大小写敏感
// 查看库
show databases;
// 进入库
use mydb;
// 查看库里面的表
show tables;
// 查看库的编码,有的编码写中文会报错,这个要注意
show create database mydb;
// 删除数据库
drop database mydb;
// 修改库的编码
alter database mydb character set utf8;
表操作
前提必须是进入到某个库里面
建表
create table user
(
id int(11) primary key auto_increment not null comment '序号', # 主键,自动增长
username varchar(50) unique not null comment '姓名', # 不能为空,不能重复
sex boolean default true comment '性别 1 男 0 女', # tinyint(1) 一位 默认值是1
age int(8) default 18 comment '年龄,默认18', # tinyint(1) 一位 默认值是1
created_at timestamp default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP comment '创建时间' # 创建时间,时间自动创建
);
字段约束
常见的字段约束
primary Key # 记录的唯一标识,能够通过该标识确定唯一一条记录 一般用于记录id
default # 默认值
unique # 唯一约束
not null # 空值约束,不可以为空,不写就是可以为空
auto_increment # 自动增长
// 查看表结构
desc user;
// 删除表
drop table user;
// 删除表中全部数据
delete from user where true;
// 重置自增计数器
alter table user auto_increment = 1;
// 更改表名
rename table old_user to new_user;
// 新增字段
alter table user add column nick varchar(50) null;
// 删除字段
alter table user drop column nick;
# 新增索引
alter table user add index index_name (username);
# 查看索引 默认是有一个主键索引的
show index from user;
# 删除索引
alter table user drop index index_name;
数据操作
插入数据
# 完整的插入语句
insert into user(id, username, sex, created_at) value (
2, 'zhangsan', 0, '2023-10-17 08:15:03'
);
# 因为有些字段设置了默认值和可以为null或自增长
insert into user(username) value ('wangwu'); # 简单插入语句
# 批量插入
insert into user(username) values ('wangwu1'),
('lisi'),
('fengfeng');
有的时候默认编码,插入中文会报错
查询
查询要后面专门讲查询,这里先掌握三个查询语句
# 查这张表的全部数据,字段全部显示
select * from user;
# 查这张表的全部数据,字段部分显示
select id,username from user;
# 条件查询,查询id为2的数据
select id,username from user where id = 2;
修改
修改的前提就是要找到数据
# 找到id为2的将 username修改为lisi123
update user set username = 'lisi123' where id = 2;
# 也可以修改多个字段
update user set username = 'lisi123', sex = 0 where id = 2;
# 也可以批量修改
update user set sex = 0 where id > 0;
# 将某个字段的值赋给其他字段
update user set username = user.nick where id = 1;
update user set age = user.age + 1 where id=3;
删除
# 删除id为1的数据
delete from user where id = 1;
// 删除表中全部数据
delete from user where true;
// 重置自增计数器
alter table user auto_increment = 1;