MySQL基本命令

Posted xjmlove

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL基本命令相关的知识,希望对你有一定的参考价值。

 

  1 一、基本命令
  2 1、启动服务:
  3     说明:以管理员身份运行cmd
  4     格式:net start 服务名称
  5     示例:net start mysql56
  6 
  7 2、停止服务:
  8     说明:以管理员身份运行cmd
  9     格式:net stop 服务名称
 10     示例:net stop mysql56
 11 
 12 3、连接数据库
 13     格式:mysql -u 用户名 -p
 14     示例:mysql -u root -p
 15     输入密码:root
 16 
 17 4、退出登录(断开连接)
 18     quit or exit or \q
 19 
 20 5、查看版本(连接后可执行)
 21     示例:select version();
 22 
 23 6、显示当前时间(连接后可执行)
 24     示例:select now();
 25 
 26 7、远程连接
 27     格式:mysql -h ip地址 -u 用户名 -p
 28     输入对方mysql密码
 29 
 30 
 31 
 32 二、数据库操作
 33     1、创建数据库
 34         格式:create database 数据库名 charset utf8;
 35         示例:create database sunck charset utf8;
 36     2、删除数据库
 37         格式:drop database 数据库名;
 38         示例:drop database sunck;
 39     3、切换数据库
 40         格式:use 数据库名
 41         示例:use sunck;
 42     4、查看当前选择的数据库
 43         select database();
 44     5、查看所有数据库
 45         格式:show databases;
 46     6、查看数据库的创建语句
 47         格式:show create database 数据库名字;
 48         示例:show create database sunck;
 49 
 50 三、表操作
 51     1、查看当前数据库所有表
 52         show tables;
 53     2、创建表
 54         格式:create table 表名(列及类型)
 55         说明:auto_increment自动增长
 56               primary key主键
 57               not null不为空
 58         示例:create table student(id int auto_increment primary key,name varchar(20) not null,age int not null,gender bit default 1,address varchar(20),isDelete bit default 0);
 59 
 60     3、删除表
 61         格式:drop table 表名
 62         示例:drop table student;
 63     4、查看表结构
 64         格式:desc 表名
 65         示例:desc student;
 66     5、查看建表语句
 67         格式:show create table 表名;
 68         示例:show create table student;
 69     6、重命名表名
 70         格式:rename table 原表名 to 新表名;
 71         示例:rename table student to studnets;
 72     7、修改表
 73         格式:alter table 表名 add|change|drop 列名 类型;
 74 四、数据操作命令
 75 
 76 1、增
 77     a、全列插入
 78         格式:insert into 表名 values(……);
 79         说明:主键列是自动增长的,但是在全插入时需要占位,通常使用0,插入以后以实际数据为准
 80         示例:insert into student values(0,tom,19,1,北京,0);
 81     b、缺省插入
 82         格式:insert into 表名(列1,列2,列3,……) values(值1,值2,3,……)
 83         示例:insert into student (name,age,address) values(lilei,19,上海);
 84     c、同时插入多条数据
 85         格式:insert into 表名 values(...),(...),...;
 86         示例:insert into student values(0,hanmeimei,18,0,北京,0),(0,poi,19,1,海南,0),(0,wenli,20,0,石家庄,0);
 87 
 88 2、删
 89     格式:delete from 表名 where 条件;
 90     示例:delete from student where id=4;
 91     注意:没有条件是全部删除,慎用
 92 
 93 3、改
 94     格式:update 表名 set 列1=值1,列2=值2,列3=值3,...where 条件
 95     示例:update student set age=22 where id=3;
 96     注意:没有条件是全部列修改,慎用
 97 
 98 4、查
 99     说明:查询表中所有数据
100     格式:select * from 表名
101     示例:select * from student;
102 
103 五、查
104     1、基本语法
105         格式:select * from 表名;
106         说明:
107             a、from关键字后面是表名,表示数据来源这张表
108             b、select后面写表中的列名,如果是*表示在结果集中显示表中的所有列
109             c、在select后面的列名部分,可以使用as为列起别名,这个别名显示在结果集中
110             d、如果要查询多个列,之间使用逗号分隔
111 
112         示例:
113              select * from student;
114              select name,age from student;
115              select name as a, age from student;
116 
117     2、消除重复行
118         在select后面列前面使用distinct可以消除重复的行
119         示例:select distinct gender from student;
120 
121     3、条件查询
122         a、语法
123             select * from 表名 where 条件
124 
125         b、比较运算符
126             等于          =
127             大于          >
128             小于          <
129             大于等于      >=
130             小于等于      <=
131             不等于        !=或<>
132             需求:查询ID值大于1的所有数据
133             示例:select * from student where id>1;
134 
135         c、逻辑运算符
136             and     并且
137             or      或者
138             not139             需求:查询id大于2的女同学
140             示例:select * from student where id>2 and gender=0;
141 
142         d、模糊查询
143             like
144             %表示任意多个字符
145             _表示一个任意字符
146 
147             需求:查询姓习的同学
148             示例:
149                 select * from student where name like 习%;
150                 select * from student where name like 习_;
151 
152         e、范围查询
153             in                  表示在一个非连续范围内
154             between...and...    表示在一个连续范围内
155 
156             需求:查询编号为5,6,7的学生
157             示例:select * from student where id in (5,6,7);
158             需求:查询编号为5到9的学生
159             示例:select * from student where id between 5 and 9;
160 
161         f、空判断
162             注意:null与‘‘是不同
163             判断空:is null
164             判断非空:is not null
165 
166         g、优先级
167             小括号,not 比较运算符,逻辑运算符
168             andor 优先级高,如果同时出现并希望先选or,需要结合()来使用
169 
170     4、聚合
171         为了快速得到统计数据,提供了五个聚合函数
172         a、count(*)      表示计算总行数,括号中可以写*和列名
173         b、max(列)       表示求此列的最大值
174         c、min(列)       表示求此列的最小值
175         d、sum(列)       表示求此列的和
176         e、avg(列)       表示求此列的平均值
177 
178         需求:查询学生总数
179         示例:select count(*) from student;   * or180         需求:查询女生编号的最大值
181         示例:select max(id) from student where gender=0;
182         需求:查询女生编号的最小值
183         示例:select min(id) from student where gender=0;
184         需求:查询所有学生年龄和
185         示例:select sum(age) from student;
186         需求:查询所有学生平均值
187         示例:select avg(age) from student;
188 
189     5、分组
190         按照字段分组,表示此字段相同数据会被放到一个集合中
191         分组后,只能查询出相同的数据列,对于有差异的数据列,无法显示在结果集中,可以对分组后的数据进行统计,做聚合运算
192 
193         语法:select 列1,列2,聚合......from 表名 group by 列1,列2,列3,......;
194         需求:查询男女生总数
195         示例:
196             select gender,count(*) from student group by gender;
197             select name,gender,count(*) from student group by gender,age;
198         分组后的数据筛选:
199             select 列1,列2,聚合......from 表名 group by 列1,列2,列3,...... having 列1,...聚合.....;
200             示例:select gender,count(*) from student group by gender having gender;
201 
202             where与having 的区别
203             where是对from后面指定的表进行筛选,属于对原始数据的筛选
204             having是对group by的结果进行筛选
205 
206     6、排序
207         语法:select * from 表名 order by 列1 asc|desc,列2 asc|desc,...;
208         说明:
209             a、将数据按照列1进行排序,如果某些列1的值相同,则按照列2进行排序
210             b、默认按照从小到大的顺序排序
211             c、asc升序(默认)
212             d、desc降序
213         需求:按年龄排序
214         示例:
215             select * from student order by age;
216             select * from student order by age,id;
217 
218     7、分页
219         语法:select * from limit start,count
220         说明:start 索引从0开始
221         示例:
222             select * from student limit 0,3;
223             select * from student limit 3,3;
224             select * from student where gender=1 limit 0,3;
225 
226 六、关联
227     建表语句:
228     1、create table class(id int auto_increment primary key,name varchar(20)not null,stuNum int not null,);
229     2、create table students(id int auto_increment primary key,name varchar(20)not null,gender bit default 1,classid int not null,foreign key(classid) references class(id));
230 
231 
232     插入一些数据:
233     insert into class values(0,python01,55),(0,python02,60),(0,python03,50),(0,python04,66);
234     insert into students values(0,tom,1,1);
235     insert into students values(0,jack,1,3);
236     insert into students values(0,lilei,1,1);
237 
238     select * from students;
239     关联查询:
240     select students.name,class.name from class inner join students on class.id=students.id;
241     select students.name,class.name from class left join students on class.id=students.id;
242     select students.name,class.name from class right join students on class.id=students.id;
243     分类:
244     1、表A inner join 表B
245         表A 与 表B 匹配的行会出现在结果集中
246     2、表A left join 表B
247         表A 与 表B 匹配的行会出现在结果集中,外加表A中独有的数据,未对应的数据使用null填充
248     3、表A right join 表B
249         表A 与 表B 匹配的行会出现在结果集中,外加表B中独有的数据,未对应的数据使用null填充

 

以上是关于MySQL基本命令的主要内容,如果未能解决你的问题,请参考以下文章

如何看mysql版本

VSCode自定义代码片段——git命令操作一个完整流程

VSCode自定义代码片段——cli的终端命令大全

VSCode自定义代码片段4——cli的终端命令大全

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程