mysql基础命令(一)
安装完 mysql workbench 之后,首先将安装在 c 目录下的安装目录地址添加到环境变量中,这样我们在命令行中就可以直接使用 mysql 命令了
一、mysql 的启动
输入 mysql -u root -p ;然后回车,根据提示输入 password 即可连接上本地的数据库
我们在连接本地的时候不需要输入域名和协议,但是如果访问外部的数据库的时候,我们需要连接数据库,具体的命令是: mysql -h 域名 -P端口 -u root -p
二、mysql 的关闭
在命令行输入 exit 即可;命令行会打印 Bye; 除了exit 之外,quit 命令也可以退出数据库服务器
cls 命令可以清除命令行打印出的日志以及操作,也就是清空命令行的意思
三、数据库的命令
(1)数据库的创建
create database 数据库的名字;
(2)数据库的删除
drop database 数据库的名字;
我们在创建数据库的时候也可以直接在连接数据库服务器的时候就是创建和删除,比如 mysql -u root -p create database 数据库的名字 或者 mysql -u root -p drop database 数据库的名字
其次,如果我们想查看服务器上已经存在的数据库,我们可以通过命令 show databases 命令来打印出所有存在了的数据库
(3)修改数据库的编码格式
alter database 数据库的名字 character set utf8
(4)查看服务器上的数据库
show databases
(5)查看当前数据库下所有的表格
show tables
(6)查看当前数据库下表格的所有字段
show columns from 表格的名字 或者 desc 表格的名字
(7)查看当前表的索引包括主键
show index from 表的名字
(8)查看当前选择的是哪个数据库
select database();
四、数据表的操作命令
(1)表的创建
我们在创建数据库的时候,首先应该确定当前我们正在使用这个数据库,所以如果实在命令行,我们需要先执行 use 数据库的名字, 确保我们正在使用这个数据库
create table 表的名字(column columnType);
执行这个命令我们可以进行表的创建,第一个参数是列的字段名,第二个参数是相应列的数据类型,还有例如自增等参数的设置,多个字段之间使用逗号分隔
(2)添加字段
alter table 表的名字 add id int
如果想要指定添加的字段的位置,可以通过first(第一个位置)、after(某个字段的后边),例如:
alter table 表的名字 add age int after id; // 将 age 添加在 id 字段的后边;
alter table 表的名字 add name varchar(10) first; // 将 name 放在表的第一个位置;
(3)修改字段类型
alter table 表的名字 change id id int 或者 alter table 表的名字 modify id int
使用 change 和 modify 语法是不一样的,使用 change 的话后边紧跟的是要修改的字段,然后是改成什么字段,所以一般情况下,要修改字段的字段名的话使用的是 change 方法;
(4)修改表中某一个字段的字段名
alter table 表的名字 change 旧的字段名 新的字段名 int
(5)删除表的字段
alter table 表的名字 drop id
如果表中只剩下最后一个字段的话就不能删除了;
(6)删除表
drop table 表的名字
我们在创建或者删除表的时候,如果没有进行 use 数据库名字 的操作,我们也可以通过 create 数据库名字 . 表的名字 ()或者 drop 数据库的名字 . 表的名字 来进行表的添加和删除
(7)表进行重命名
rename table 原表名 to 新的表名
五、表中数据的增删改查
(1)添加数据
insert into 表的名字(id, name, age, sex) values ('001', '张三', 26, '男' )
在这里需要注意的是插入的时候,键名和键值要一一对应
(2)删除数据
delete from 表的名字 where id = 1
删除表中 id = 1 的记录,如果后边不写 where 即:delete from 表的名字 将会删除表中所有的记录
delete from userMessage where age between 22 and 24; 删除 22 <= age <= 24的数据
(3)更新数据
update 表的名字 set age = 26 where name = '张三'
(4)查找数据
1)、select * from 表的名字 查找所有的数据
2)、select * from 表的名字 where name='张三' 查找name=“张三”的数据
如果要查找 name 值为张三,而且 age 值为26的数据,那么我们就要 where name='张三' AND age=26
如果要查找 age = 26 或者 age = 28 的数据,那么 where age = 26 OR age = 28
如果要查找 22 < age < 27 的数据 ,那么 where age between 22 and 27
3)、select * from 表的名字 order by id
对数据进行排序,默认按照升序ASC;如果降序的话只需将DESC 跟在要排序的字段后边即可;
如果要多个字段进行排序的话,只需将字段之间用逗号隔开即可,例如: select * from 表的名字 order by id ASC, age DESC;
4)、select * from 表的名字 limit 0, 2
查看表中的前两条数据;
如果要先进行排序,然后进行提取数目的话,字需要先进行order by的操作即可,例如: select * from order by id limit 0, 2;
5)、select * from 表的名字 where name like '%春'
查询名字中带有春的数据;模糊查询的通配符包含两个:‘_’ 以及 ‘%’,其中‘_’表示任意一个字母或者文字;‘%’表示任意个字母或者文字,因此,如果要想查询第二个字是春的名字则只需: select * from 表的名字 where name = '_春%';
6)、select *,count(distinct name) from 标的名字 where age betweent 20 and 30;
查询所有的数据,并将 name 字段进行去重;
7)、select *,age+score as newColumn from 表的名字
查询所有的数据,并将 age 和 score 相加后放在新的字段中
8)、group by 分组查询
单独使用group by 命令进行查询的话,每组查询的结果里边只会展示一条数据,例如: select * from 表的名字 group by sex; 查询结果会将性别为男的展示一条,性别为女的展示一条;如所以一般在使用group by 进行分组查询的时候都会配合 group_concat() 方法函数的使用,例如 select *,group_concat(name) from 表的名字 group by sex; 该命令的执行,将会在每组数据中新加一个字段,展示性别为男的所有数据的 name 字段对应的值;
group by 除了可以结合 group_concat() 方法函数外,还可以和 求总数的函数方法count()、求和函数sum()、求平均值函数avg()、最大值函数max()、最小值函数min() 结合使用,例如:求age= 26的总数: select *,count(age=26) as total from 表的名字 group by age = 26;
使用 group by 分组查询,如果是多个分组字段的话,相互之间用逗号进行隔开,这样的话,会按照第一个字段查到相同的分组数据,然后再把这个数据根据第二个字段进行再分组;
除此之前,group by 还可以和 with rollup 一起这用,这样的话,最在最后再添加一条数据,展示查询的总的数据量一共是有多少条;
如果要修改表中的字段的属性,我们可以通过 alter table 表的名字 change id id int primary key auto_increment 好像主键而且是 int 类型的才可以进行自增的设置(我在操作的时候没有对 id 进行主键的设置,然后在操作的时候就一直的提示语法错误)