MySql基本命令

本文详细介绍了MySQL数据库的基本操作,包括启动和关闭数据库、创建和查询表、数据的增删改查等核心功能,并涵盖了约束设置、函数使用、连接查询等多个实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、数据库:

数据库是按照数据结构来组织、存储和管理数据的仓库

2、mysql数据库的命令:

启动数据库: net start mysql;【以管理员方式运行cmd】

在这里插入图片描述

关闭数据库:net stop mysql;【以管理员方式运行cmd】
在这里插入图片描述

连接数据库:mysql -uroot -p;回车之后输入密码
在这里插入图片描述

所有的mysql语句必须以分号结束;
建议关键字大写

(1)查看所有数据库

show databases;

(2)创建新的数据库

create database 数据库名;

3)使用数据库

use 数据库名;

(4)创建表:
语法:

create table 表名(
            字段1 类型,
            字段2 类型,
            字段3 类型
            );

例:

create table student(
                Name varchar(50),
                Sex varchar(5),
                Age int
                );

(5)查看数据库中所有的表(先用use 数据库名):

show tables;

(6)删除表

dorp table 表名;

(7)主键

primary key;(**唯一且不为空**)

(8)主键的自动增长

auto_increment;

(9)外键( 还需要声明外键关联哪一个表的哪一个键)

foreign key

(10) mysql语句中的新增
int类型的字段不用单引号引起来varchar 类型就需要使用单引号引起来

① 默认全部字段的新增(按照创建表时候的字段顺序,每个都要赋值)

insert into 表名 values (所有字段的值);

② 选择字段新增:

  insert into 表名(字段1,字段2,...) values (字段1的值,字段2的值...);

③ 批量新增:

insert into 表名(字段1,字段2,...) values (字段1的值,字段2的值,...),(字段1的值,字段2的值,...), (字段1的值,字段2的值,...);

(11)mysql语句中的修改:

语法①:

update 表名 set 字段名 = 要修改的值;

这里要注意:表中所有的字段值都会修改,不能修改单条;

语法②:

update 表名 set 字段名 = 要修改的值 where 条件;

语法③:

update 表名 set 字段名1 = 要修改的值1,字段名2 = 要修改的值2 where 条件;

语法④(适用于多个条件都需要满足的):

update 表名 set 字段名1 = 要修改的值1,字段名2 = 要修改的值2 where 条件1 and 条件2;

语法⑤适用于多个条件满足其中一个的):

update 表名 set 字段名1 = 要修改的值1,字段名2 = 要修改的值2 where 条件1 or 条件2;

(12)mysql语句中的查询:

① 查询表中所有字段
【*】默认显示被查询表中的所有字段
语法:

select * from 表名;

② 查询表中个别字段
语法:

select 字段名1,字段2 from 表名;

③ 满足多条件
语法:

select * from 表名 where 条件1 and 条件2;

④ 满足多条件中的一个
语法:

select * from 表名 where 条件1 or 条件2;

⑤ >,>=,<,<=,!=的使用
语法:

select * from 表名 where 条件1 > 一个值;
select * from 表名 where 条件1 >= 一个值;
select * from 表名 where 条件1 < 一个值;
select * from 表名 where 条件1 <= 一个值;
select * from 表名 where 条件1 != 一个值;

(13)mysql语句中的删除:

① 删除表中的所有数据
语法:

delete from 表名;

②根据条件删除
多条件都满足删除:

delete from 表名 where 条件1 and 条件2;

多条件满足一个删除:

delete from 表名 where 条件1 or 条件2;

**

(15)创建表中的约束:

**

【1】非空约束:not null
作用:限制表中的字段,必须要输入,不能为空;
用法:

CREATE TABLE studentOne(
                字段1 类型 约束
            );

例:

CREATE TABLE studentOne(
                id INT PRIMARY KEY AUTO_INCREMENT,
                name VARCHAR(50) NOT NULL, -- 非空约束
            );

【2】默认值约束:default 值
作用:当添加值时,没有添加该字段时,采用默认值
用法:

CREATE TABLE studentOne(
                字段1 类型 约束
            );

例:

CREATE TABLE studentOne(
                id INT PRIMARY KEY AUTO_INCREMENT,
                sex VARCHAR(50) DEFAULT '女', -- 默认约束
            );

【3】避免重复的约束:unique
作用:自动检测设置了避免重复值的字符段的值是否重复
用法:

CREATE TABLE studentOne(
                字段1 类型 约束
            );

例:

CREATE TABLE studentOne(
                id INT PRIMARY KEY AUTO_INCREMENT,
                idcard VARCHAR(50) UNIQUE, -- 避免重复约束
            );

(16)别名:

语法:

【1】select 字段 as '别名' from 表名;
【2】select 字段 '别名' from 表名;
**as可以以省略**

(17)函数:

【1】平均值:avg(所求的字段)
语法:

select avg(所求的字段)from 表名 where 条件;

【2】计算数量:count(字段)或count(*)
语法:

select count(字段名) from 表名 where 条件;

语法:

select count(*) from 表名 where 条件;

差异: count(字段名)根据字段统计,当字段值为NULL时,默认不统计当前数据。
【3】最大: max(字段)

select max(字段名) from 表名;

【4】最小: min(字段)

select min(字段名) from 表名;

【5】求和: sum(字段)

select sum(字段名) from 表名;

(18)模糊查询:

关键字:like
%: %表示任意多个字符
_: _表示任意一个字符

用法:

select * from where 条件

例子:

SELECT * FROM 表名 WHERE 字段 LIKE '周%';-- 查询姓周的
SELECT * FROM 表名 WHERE 字段 LIKE '周_';-- 查询姓周后面跟一个字的
SELECT * FROM 表名 WHERE 字段 LIKE '%周%';-- 查询字段中有周字的

(19)分组:

分组查询:
关键字:group by
【1】没有条件:group by 直接跟在查询语句表名之后

SELECT COUNT(*) AS '别名' FROM 表名 GROUP BY 字段;

【2】有条件:group by 跟在查询语句表名后面

  SELECT COUNT(*) AS '别名' FROM 表名 WHERE 条件 GROUP BY 字段;

分组排序:
关键字:order by
语法:order by 字段[asc/desc] ,不写默认使用asc
asc:升序,从小到大
desc:降序,从大到小

例:

SELECT * FROM 表名 ORDER BY 字段;
SELECT * FROM 表名 ORDER BY 字段 DESC;

注意:排序和分组同时都需要的话,分组在前,排序在后;

(20)范围查询

【1】 In: 查询其中符合要求的值
用法:

select * from 表名 where score in (80,90);**查询成绩要么是80要么是90**

【2】 Between and
用法:

select * from 表名 where score Between 80 and 90;查询成绩>=80并且<=90

(21)判断空值:

【1】is null:为空
用法:

SELECT * FROM 表名 WHERE 字段 IS NULL;查询性别为空的人

【2】is not null:不为空
用法:

SELECT * FROM 表名 WHERE 字段 IS NOT NULL;查询性别不为空的人

(22)子查询:

SELECT * FROM class WHERE id = (SELECT classId FROM student WHERE name = '哈哈');

(23)内连接查询:

关键字:inner join

【1】语法:

 `select * from 左表 inner join 右表 on 左表.关联字段 = 右表.被关联字段;`

【2】进阶语法:

select * from 左表 as 别名1 inner join 右表 as 别名2 on 别名1.关联字段 = 别名2.被关联字段;

【3】带条件语法:

select * from 左表 as 别名1 inner join 右表 as 别名2 on 别名1.关联字段 = 别名2.被关联字段 where 别名1.字段 = 值;

注意:内连接显示有关联的所有信息,表中关联字段为null的,不显示

(24)外连接:

【1】左外连接:left join

语法:

select * from 左表 left join 右表 on 左表.关联字段 = 右表.被关联字段;

进阶语法:

select * from 左表 as 别名1 left join 右表 as 别名2 on 别名1.关联字段 = 别名2.被关联字段;

带条件语法:

select * from 左表 as 别名1 left join 右表 as 别名2 on 别名1.关联字段 = 别名2.被关联字段 where 别名1.字段 = 值;

注意:左外连接显示left join左边表的所有信息,左边表的关联字段如果为空,那被关联表的字段己null值显示

【2】右外连接:right join

语法:

select * from 左表 right join 右表 on 左表.关联字段 = 右表.被关联字段;

进阶语法:

select * from 左表 as 别名1 right join 右表 as 别名2 on 别名1.关联字段 = 别名2.被关联字段;

带条件语法:

 select * from 左表 as 别名1 right join 右表 as 别名2 on 别名1.关联字段 = 别名2.被关联字段 where 别名1.字段 = 值;

注意:右外连接显示right join 右边表的所有信息,左表要是没有关联右表,那左表的数据全部以null显示

**

(25)交叉连接:

**
关键字: cross join

语法1:SELECT * from 表1,表2;
语法2:SELECT * from 表1 cross join 表2;

(26)分页查询:

关键字:limit

SELECT * FROM 表名 LIMIT 0,2;-- 从第一开始,选两条
SELECT * FROM 表名 LIMIT 1;-- 从第一开始,选一条,第一个数字可以省略
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值