相关信息在/etc/my.cnf中
文章目录
执行顺序
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4c1887fc46cbbb5b206f10e389b74f04.png)
mysql
进出mysql
# 进入本机mysql
mysql -u 用户名 -p密码 # mysql -u root -proot p后直接跟密码
mysql -h localhost -u root -proot
mysql -h 127.0.0.1 -u root -proot
mysql --user=root --password=root
#连接到远程主机上的mysql
mysql -h 远程主机地址 -u test -p123
mysql --host=ip --user=用户名 --password=密码
'''
-h 有三种参数
%:任意主机
localhost:仅本地可以登录(比127.0.0.0更优)
localhost和127.0.0.1大致下一样,区别:
localhost:
无需联网
不适用网卡,不受网络防火墙和网卡的限制,不会解析成ip,不占网卡、网络资源。
本机访问
127.0.0.1:
无需联网
网卡传输,受网络防火墙和网卡限制
本机访问
本机ip
联网
网卡传输,受防火墙和网卡限制
本机或外部访问
Ip地址:指定的ip可登录
'''
# 退出mysql
mysql> quit;
mysql> eixt;
查看编码、索引、端口、文件路径
# 查看数据文件存放路径
mysql> show variables like '%datadir%';
# 查看用户使用端口
mysql> show variables like 'port';
#查看每个库所使用的编码
mysql> show variables like 'character%';
# 查看表中的索引,两种方式:
mysql> show index from 表名;
mysql> desc 表名;(看哪个是主键 PRI)
DDL : 定义数据库对象(库,表,列)
mysql 操作库 CRUD
1. 创建 Create
# 创建
mysql> create database db;
# 创建指定编码格式的数据库
mysql> create database db default character set utf8/gbk;
# 创建数据库,当不存在该数据库时再创建
mysql> create database if not exists db;
#创建数据库,并制定编码类型
mysql> create database if not exists db character set gbk/utf8;
2. 查询 Retrieve
# 查询所有数据库的名字
mysql> show databases;
# 查询某个数据库的创建时的编码格式
mysql> show create database db;
# 现在使用的是哪个数据库
mysql> select database();
3. Update 修改
# 修改数据库的编码格式为:
mysql> alter database db character set utf8/gbk;
4. Delete 删除
# 删除数据库
mysql> drop database db;
# 判断是否存在,然后再删除
mysql> drop database if exists db;
5. 使用
mysql> use db;
mysql 操作表 CRUD
1. Create 创建
# 创建表 一定要设置主键(是索引,当数据库中量大时,可加快查找速度)。null:可为空,not null:不可为空
mysql> create table biao(
#默认自增(一表最多一个,做主键),插入数据时,可不用管它,primary key主键,一列的唯一索引,可有多列组合而成复合主键,此时每个字段都是索引
id int auto_increment,
name varchar(3) not null default 'hua',
age int(3) null default 18,
sex int(1) null,
primary key(name,sex) #复合主键,每个字段都是索引,为之后加快查找
)engine=InnoDB default charset=utf8;
mysql> create table user(
id int primary key auto_increment,
name varchar(5),
password varchar(10)
);
insert into user(name,password) values('bb','bbb');
insert into user values(null,'aa','aaa');
insert into user(name,password) values
('bb','bbb'),
('cc','ccc');
# 复制一个表的结构
mysql> create table teacher_table like student_table;
2. Retrieve 查询
# 查看当前数据库中有几个表
mysql> show tables;
# 查看当前数据库中某个表的结构
mysql> desc student_table;
# explain:可看是否通过主键索引进行查询,显示了 mysql 如何使用索引来处理 select 语句以及连接表
mysql> explain select name,age from biao1 where sex=0;
mysql> select * from biao1 where id>1 and name != 'mign' and sex=0 and age between 5 and 14 and num in (3,6,8) and count not in (3,12);
3. Update 修改
1. 修改表名
alter table 表名 rename to 新表名;
2. 修改表的字符集/编码
alter table 表名 character set utf8/gbk;
3. 添加一列
alter table 表名 add 列名 数据类型;
4. 修改列名称、类型
mysql> alter table 表名 modify 列名 修改后的类型;//只修改列的类型
mysql> alter table 表名 change 原列名 新列名 修改后的类型;//修改列的名字的类型
alter table biao change id name varchar(20);
5. 删除列
mysql> alter table 表名 drop 列名;//需在表中保留至少一个列
4. Delete 删除
# 删除表
mysql> drop table student_table;
# 如果存在某表,将其删除
mysql> drop table if exists student_table;
5. 添加索引
不同表的索引名可以重复【同个库中的外键名不能重复】,因为索引文件一表一个
idx_字段 普通索引
uk_字段 唯一索引
DML : 增删改表中的数据
1. 添加数据
* 除了数字类型,其他类型使用要用引号(单双皆可)
# 向表中插入一条数据
mysql> insert into biao1 values('li',32,0);#每个字段都插入,默认给所有列添加
mysql> insert into biao1(name,age) values('li',22); #个别字段插入,没有添加的字段,给默认值。
# 向表中插入几条数据,不定义列名,默认给所有列添加值
mysql> insert into biao1 values
('ling',2,0),
('dsf',321,0),
('lsa',323,0);
1.5 添加数据replace
replace into biao1(name, sex) values('hua',12);
首先该表要有主键和唯一索引
插入时,按主键或唯一索引查找
若没找到:插入
若找到:先把原来的那行删掉,再插入
2. 删除数据
#删除一条/若干条
mysql> delete from