MySQL常用指令

发布于:2022-12-25 ⋅ 阅读:(436) ⋅ 点赞:(0)

mysql -uroot -p;   是连接数据库

show databases;   显示所有数据库

create table (表的名字) ((字段名 字段类型,字段名,字段类型))   创建表

create database (数据库的名字)   创建一个数据库

use;   进入某个数据库

show tables;   显示数据库中的所有表

desc (表名);   查看表结构

insert into (表名) ((表名中的字段)) values (字段所对应的值)(字段所对应的值);   在表中添加记录

select (列名) from (表名);   选择查看某个表的所有内容

select (列名) from (表名) order by (列名) asc;   选择某个表,并用相应的列名进行增序排序.(desc是降序)

drop table (表名)   删除表

drop database (表名)   删除数据库

delete from (表名) where (条件);   删除表里的内容

select distinct (列名) from (表名);   选择某个表的某一列 去重显示.

as   (重命名)

select (列名) from (表名) where (条件)   条件查询

select * from (表名) limit (显示几行) offset (从第几行开始显示)   分页查询 每次显示几行,以及从第几行开始显示.

update (表名)  set (列名) = (要修改的值) where (要修改的条件)

update (表名) set (列名) = (要修改的值) order by asc limit 3;   先排序(正序)然后把前三个列名的值 修改成 要修改的值 

ALTER TABLE <表名> [修改选项]

修改选项的语法格式如下:
{ ADD COLUMN <列名> <类型>   添加一个新的列
| CHANGE COLUMN <旧列名> <新列名> <新列类型>   更换一个列的名字和类型
| ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT }   修改mysql中列默认值
| MODIFY COLUMN <列名> <类型>   修改一个列的类型
| DROP COLUMN <列名>   删除某个字段
| RENAME TO <新表名> }   修改表名

not null:非空约束,指定某列不为空
unique: 唯一约束,指定某列和几列组合的数据不能重复
primary key:主键约束,指定某列的数据不能重复 并且 不能为空
foreign key:外键,指定该列记录属于主表中的一条记录,参照另一条数据

primary key auto_increment: 自增主键 指定某列的数据不能重复 并且 不能为空 并且自增

create table (表名) (列的名字) int,foreign key (列的名字) references (要引用的表名)(要引用的列) ;   外键约束

聚合函数

1. count((字段));   计算这一列一共有多少行数据,null 不算.

2. sum((字段));   计算这一行所有的数据加起来总和是多少,null不算.

3. max((字段));   求最大值

4. min((字段));   求最小值

5. avg((字段));   求平均值

分组操作,group by (要分组的字段)   据行的值,对数据进行分组,把值相同的行都归为一组~~

select role,max(salary),min(salary),avg(salary) from emp group by role   先分组 然后求出各个字段的最大值,最小值,和平均值.

select name,avg(classId) from student group by (字段) having avg(字段) = 2;   having 是分组后进行判断的条件,where 是分组前进行判断的条件.

多表查询

1.select * from (表名1),(表名2) ;   from后面可以跟多个表名,表示多表查询,多表查询就是笛卡尔积,笛卡尔积的列数等于 表名1的列数 + 表名2的列数.笛卡尔积的行数 等于 表名1的行数 * 表名2的行数.多表查询 就是一个N*M 的排列组合.

2.select * from (表1) inner join (表2) on 条件;   这也是一个多表查询语句,与第一种写法几乎是一样的,inner 其实是可以省略的.  inner join 这个表示内连接

3.select (列) from (表1) left join (表2) on (条件);   左外连接

4.select (列) from (表1) right join (表2) on (条件);   右外连接

外连接是指 获取两张表共有的内容部分,左连接是指获取表1的所有内容(左侧表内容,右侧表内容没有的话为null),右连接是指获取表2的所有内容.(获得表右侧的全部内容,左侧没有内容的话 为null)

5.自连接,自连接就是自己和自己连接,但是自己和自己连接会有重名的情况,所以要用 as 换一个名字,自连接的作用是把 行和行 之间的比较,换成 列和列 之间的比较 因为 列和列之间的比较非常的容易,而行和行的比较就有些困难了,自连接的语法为 select * from (表名1),(表名1).

6.子查询,子查询就是一个套娃,将两个SQL语句合成一条SQL语句,例如 将一个函数的返回值 当另一个函数的参数一样. 如果子查询返回的参数 不止一条 那么就需要用关键字 in 来将这多条数据当做函数参数来使用. 语法格式为 select * from (表名) where name in = (select name from student where classId = 1)

7.union 这是合并查询的关键字 将两个select 合并起来,当然 也可以使用 or 来替换union这个关键字.使用or的时候 必须是针对同一张表才行.而union 则没有这个要求.

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到