首页 > 数据库 >MySQL基础命令

MySQL基础命令

时间:2023-10-10 16:00:26浏览次数:50  
标签:MySQL 基础 查询 命令 字段名 表名 where id select

一)基础命令

1)对数据库的操作

1.使用
use 库名;
2.创建
create database 库名;

3.删除
drop database 库名;

4.显示数据库,表
show databases;
show tables;

2)对数据表的操作

1.创建表
create table 表名(字段 字段类型,id int,name varchar(32));

2.删除表
drop table 表名;

3.修改表名
alter table 旧name rename 新name;

4.查看表的基本结构
describe 表名;

3)对数据的操作

1.添加数据
insert into 表名(字段,id,name)values(值,1,“zl”);
2.修改数据
update 表名 set 字段=新值 where id=1(条件);
3.删除数据
delete from 表名 where 条件;

4)对表的字段的操作

1.修改字段名

alter table 表名 change 旧字段名 新字段名 新数据类型;

2.修改字段数据类型
alter table 表名 modify 字段名 数据类型;

3.添加字段
alter table 表名 add 新字段名 数据类型 [约束条件] [first|after] 已存在字段名;

4.删除字段
alter table 表名 drop 字段名;

二)约束

NOT NULL 约束:确保某列不能有 NULL 值。
DEFAULT 约束:当某列没有指定值时,为该列提供默认值。
UNIQUE 约束:确保某列中的所有值是不同的。
PRIMARY Key 约束:唯一标识数据库表中的各行/记录。
CHECK 约束:CHECK 约束确保某列中的所有值满足一定条件。

1)常用约束

唯一约束:unique
非空约束:not null
默认约束:default ’值‘
注意:值为字符串型使用单引号,为整型则不需要加任何符号;若加的是中文默认值,则需加上 default charset=utf8
例如:
CREATE TABLE t_emp(
id INT PRIMARY KEY,
name VARCHAR(22) not null unique,
sex VARCHAR(2) DEFAULT '男'
) DEFAULT CHARSET=utf8;

2)主键约束【primary key】

定义列同时:id int primary key
定义列之后:primary key(id)
多字段联合主键:primary key(字段1,字段2)

 

3)外键约束【foreign key】

语法:[CONSTRAINT 外键名] FOREIGN KEY 字段名 REFERENCES 主表名(主键名) 
例如;
CREATE TABLE t_dept
(
deptId INT PRIMARY KEY,
name VARCHAR(22),
location VARCHAR(50)
);
CREATE TABLE t_emp
(
id INT PRIMARY KEY,
name VARCHAR(22),
deptId INT,
CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptId) REFERENCES t_dept(deptId)
);

4)检查约束【check】

语法:constraint check_name check(条件)
例:创建一个学生表
create table students(
id int primary key,
name varchar(32),
gender varchar(10),
birthday date,
constraint ck_gender check(gender='男' or gender='女')
);

三)查询语句

1)单表查询+条件查询

select *from 表名;
select 字段1,字段2 from 表名;
select 字段名 from 表名 where 字段名 in (n1,n2,n3);【括号内的数字必须为INT型】
select 字段名 from 表名 where 字段名 not in (n1,n2,n3);【除了括号中出现内容外的所有内容】
select 字段名 from 表名 where 字段名 between n1 and n2;
select 字段名 from 表名 where 字段名 not between n1 and n2;
select * from 表名 where 字段名 is null;【查询空值】
select distinct 字段名 from 表名;【去除重复结果】
select * from 表名 where 条件1 and 条件2;【多条件查询】
select * from 表名 where 条件1 or 条件2;

2)排序查询

select * from 表名 where 条件 order by 字段名 desc;【desc:降序,asc:升序】
例:要求显示所有雇员的信息,按照工资由高到低排序,若工资相等,则按照雇佣日期由早到晚排序
SELECT* FROM emp ORDER BY sal DESC,hiredate asc;

3)模糊查询

select 字段名 from 表名 where 字段名 like "%";【任意通配符】
select 字段名 from 表名 where 字段名 like "_";
注意:
百分号通配符%:可以匹配任意长度的字符,甚至包括零字符
下划线通配符_:只能模糊匹配1个字符

select * from 表名 limit 偏移量,记录数;
例如:
查询班级中第2名到第5名的学生信息
select * from tb_score order by score desc limit 1,4;

4)分组查询

select * from 表名 group by 字段名;【分组查询】
注意:一般情况下,group by都和聚合函数一起使用
例:
-- 查询男女学生的人数(分组和聚合函数)
select gender,count(*) from students group by gender;

5)连接查询:【join on】

1-内连接查询
语法:from 表1 join 表2 on 表1.字段名=表2.字段名
2-外连接查询
类型:左外连接查询和右外连接查询;
语法:from 表1 left/right [outer] join 表2 on 表1.字段=表2.字段
3-全外连接自然连接 FULL JOIN:根据连接条件进行连接,如果连接不上的,左右表记录为null,不丢弃数据

例:三表查询
-- 查询学生姓名、所选课程名称和成绩(连接查询)
-- 写法1:
select students.name,course.cname,score.mark from students
join score on students.id=score.id
join course on course.cnumber=score.cnumber;
-- 写法2:
select students.name,course.cname,score.mark from score
join course on course.cnumber=score.cnumber
join students on students.id=score.id;

标签:MySQL,基础,查询,命令,字段名,表名,where,id,select
From: https://www.cnblogs.com/longhj/p/17720903.html

相关文章

  • MySQL业务用户无法修改的会话级别参数
    对于MySQL的系统参数,有些参数只能在全局级别(global)修改,有些参数能在全局和会话(session)级别修改。对于能在会话级别修改的参数,应用用户也可以在当前会话中修改需要的参数来实现不同的业务需求。比如sql_mode参数,如果不同的应用可以根据不同的需求在各自的session中进行修改。此外,......
  • 【Postman】以命令行形式执行Postman脚本(使用newman)
    以命令行形式执行Postman脚本(使用Newman)目录以命令行形式执行Postman脚本(使用Newman)一、背景二、Newman的安装1、Node.js2、Newman三、脚本准备四、Newman的执行1、run2、变量的使用3、参数化文件4、指定folder五、生成报告1、生成简洁版html报告2、生成加强版html测试报告和Json......
  • linux命令2
    1.grep  zgrepQYJF03*.zip|more  项目中使用了这个命令来查看日志中发过的含有交易码为QYJF03的报文。本来要一个一个去解压ZIP日志,然后搜索QYJF03找到对应的发送、响应报文,使用这个命令大大简化了操作,速度效率提升好多。望而生畏的grep是linux用户用来搜索文本字符串......
  • MySQL 低版本 解决row_number()over()无法使用的方法
    MySQL8以上版本支持了很多的窗口函数,但是低版本的可能也需要用到row_number()over()selecta.u_name,a.class,a.score,if((@class=null)or(@class=a.class),@rownum:=@rownum+1,@rownum:=1)rn,#没有并列情况if((@class=......
  • Eureka基础
    学习自:Eureka入门教程-基础篇|Clay的技术空间Eureka入门教程-知乎Eureka之使用详解_eureka使用-CSDN博客16图|实战Eureka集群搭建+服务注册+调用-知乎k8s发布Springcloud+eureka架构服务优雅启动停止方案-枫&vce-博客园1、简介CAP定理在了解Eureka之前......
  • 前端面试八股文 工程化+性能优化+计算机基础
    前端面试八股文工程化+性能优化+计算机基础前端页面性能如何优化?以下是一些前端性能优化的常用方法:减少资源加载时间:这可以通过多种方式实现,比如压缩和合并CSS和JavaScript文件,使用CDN(内容分发网络)来快速传输资源,以及使用浏览器缓存来避免重复下载。优化图片:图片通常是网页......
  • MySQL存储过程、递归调用
    MySQL存储过程、递归调用实现字典数据的预处理,维护类别表、数据表、tree表,数据库在jwzh_manager库1、先将excel导入到system_dict表,按表字段注释对应匹配。2、编写存储过程处理数据CREATEDEFINER=`root`@`%`PROCEDURE`handle_system_dict`()BEGIN #Routinebodygoesher......
  • 9月《中国数据库行业分析报告》已发布,47页干货带你详览 MySQL 崛起之路!
    为了帮助大家及时了解中国数据库行业发展现状、梳理当前数据库市场环境和产品生态等情况,从2022年4月起,墨天轮社区行业分析研究团队出品将持续每月为大家推出最新《中国数据库行业分析报告》,持续传播数据技术知识、努力促进技术创新与行业生态发展,目前已更至第十七期,并发布了共计1......
  • cadquery常用命令
    .Workplane("front")确定绘图平面.circle(2.0)画圆.pushPoints([(1.5,0),(0,1.5),(-1.5,0),(0,-1.5)])创建点合集.extrude(0.125)拉伸.cutThruAll()完全贯穿切除.polygon(5,1.0)绘制多边形,第一个数是边数,第二个数是边长.起点在x轴上.存......
  • MySQL进阶篇:第三章_SQL性能分析
    MySQL进阶篇:第三章_SQL性能分析SQL执行频率MySQL客户端连接成功后,通过show[session|global]status命令可以提供服务器状态信息。通过如下指令,可以查看当前数据库的INSERT、UPDATE、DELETE、SELECT的访问频次:--session是查看当前会话;--global是查询全局数据;SHOW......