Mysql基础命令

1、在cmd中进入数据库

mysql -u用户名  -p数据库密码

2、创建数据库

 create database 数据库名称;

3、查看数据库

show databases;

4、使用数据库

use 数据库名称

5、删除数据库

drop database 数据库名称

6、创建表

 create table student(
    -> id int(3) auto_increment not null primary key,
    -> name char(10) not null,
    -> address varchar(50) not null,
    -> year date
    -> );

7、表插入数据

insert into student values(1,'小明','中国广州',20221111);

8、修改表名:

rename table 旧表名 to 新表名;

9、查询当前表结构

desc 表名称

10、查看表详细结构的命令:

show create table 表名称;
或
show full columns from 表名称;

11、查询一个表里面所有的数据

select * from 表名

12、查看具体的一条数据

 select * from 表名称 where name='小明';

13、修改表的字段类型

 alter table 表名 modify column id tinyint;
或alter table 表名 modify id tinyint;

14、增加表的字段

alter table 表名 add  grade int not null;

15、删除表的字段

 alter table 表名 drop sex;

16、修改字段名称

 alter table student change grade sex char(10);

17、修改字段的排列顺序

alter table 表名 modify name char(10) first;

注意:change/first | after 字段名 这些关键字都是属于MySQL在标准上SQL上的扩展,在其他的数据库上不一定适用
18、更新一条数据

update student set address='中国惠州' where id=4;

19、删除单表中的数据

delete from student where id=3;

20、排序(由高到低)

select * from student order by id desc;

21、排序(由低到高)

select * from student order by id asc;

22、聚合
(1)sum求和

 select salary sum(字段名) from 表名

(2)count记录总数

select count(*) from 表名

(3)max最大值

 select max(字段名) from 表名

(4)min最小值

 select min(字段名) from 表名

(5)group by分类聚合

select department,sum(salary) from teacher group by department;

(6)with rollup分类聚合后的结果进行再汇总

select department,sum(salary) from teacher group by department with rollup;

(7)having

注意:having和where的区别在于,having是对聚合后的结果进行条件过滤,而where是在聚合前就对记录进行过滤,应该尽可能的对记录进行先过滤!

23、表连接
(1)内连接:选取两张表中相互匹配的记录

select * from teacher,teacher_record where teacher.id=teacher_record.id;

(2)外连接:不仅仅选举两张相互匹配的记录,并且回选出其他不匹配的记录
a. 左连接:
概念:包含左边表中的所有记录(包括右表中没有和它匹配的记录)

select * from teacher left join teacher_record on teacher.id=teacher_record.id;

b. 右连接:
概念:包含右边表中的所有记录(包括左表中没有和它匹配的记录)

select * from teacher right join teacher_record on teacher.id=teacher_record.id;

左连接和右连接是可以相互转换的!
24、子查询
需求:一个查询需要另一个查询的结果参与的时候
用于子查询的关键字:

in语法:select * from teacher where id in (select id from teacher_record);

注意点:in后面的子语句必须只返回一个字段
若查询结果唯一(只有一条)可以使用=代替in
not in 与上面那个相反
25、额外添加主键

 alter table student_record add primary key(id);

26、添加自动增加字段

 alter table student_record modify id int auto_increment;

27、删除主键(前提是如果有auto_increment要先删除auto_increment才行)

alter table student_record drop primary key;

28、删除auto_increment

alter table student_record modify id int

29、查看当前数据库的字符集和校对规则

 show variables like 'character_set_database';
 show variables like 'collation_database';

30、创建数据库的同时设置字符

create database student default character set utf8

你可能感兴趣的:(Mysql基础命令)