首页 > 数据库 >MySQL常用命令

MySQL常用命令

时间:2024-01-14 22:11:08浏览次数:41  
标签:-- 18 age 常用命令 students MySQL where select

操作数据库

-- 链接数据库
mysql -uroot -p 
-- 退出数据库
quit/exit
-- 显示数据库版本
select version();
-- 查看当前使用的数据库
select database();
-- 查看所有数据库
show databases;
-- 创建数据库
create database kuname charset=utf8;
-- 查看创建数据库的语句
show create database kuname;
-- 使用数据库
use kuname
-- 查看数据库的表
show tables;
-- 删除数据库
drop database kuname;

创建数据表

-- 数据表的操作
-- 查看当前数据库中所有表
show tables;
创建表
-- int unsigned 无符号整形
-- auto_increment 表示自动增长跟主键在一起
-- not null 表示不能为空
-- primary key 表示主键
-- default 默认值
-- create table 数据表名字(字段 类型 约束[,字段 类型 约束]);
create table test(name varchar(30) not null,age int unsigned);
-- 查看表结构
desc test;
create table classes(id int unsigned primary key auto_increment,name varchar(39) not null);
create table students(id int unsigned primary key auto_increment,name varchar(30) not null,age int unsigned,high decimal(3,2),gender enum("男","女","保密","中性") default "保密",cls_id int unsigned);

修改表结构

-- 查看表的创建语句
show create table students;
-- 修改表-添加字段mascot(吉祥物)
-- alter table 表名 add 列名 类型;给classes表添加mascot字段
alter table classes add mascot varchar(50);
-- 修改表-修改字段:不重命名版
-- alter table 表名 modify 列名 类型及约束;
alter table classes modify mascot varchar(100);
-- 修改表-修改字段:重命名版
-- alter table 表名 change 原名 新名 类型及约束;
alter table classes change mascot jxw int unsigned;
-- 修改表-删除字段
-- alter table 表名 drop 列名;
alter table classes drop jxw;
-- 删除表
-- drop table 表名;
-- drop database 数据库;
drop table test;

插入数据

-- 查询表内容
select * from students;
-- 全列插入
-- insert into 表名(字段1,字段2)values(值1,值2);
-- 主键字段 可以用 0 null default 来占位
-- 向classes表中插入 一个班级
> insert into classes(id,name) values(1,"koo");
-- 全部插入
-- insert into 表名 values(值1,值2,值3...)
 insert into students values(1,"koo",18,1.70,"男",1);
-- 部分插入
-- insert into 表名(列1,...)values(值1,...)
-- 多行插入
-- insert into 表名(列1)values(值),(值);
 insert into students(name) values("yoo"),("mia");

修改表数据

-- 修改
-- 全部修改
update students set age=16;
-- 按条件修改
> update students set age=28 where id=1;
-- 按条件修改多个值
update students set age=29,high=1.80 where id=1;

基本查询用法

select * from students;
select * from students where id=1;
select name,age from students;
select name,age from students where id=1;
select name as "姓名",age as "年龄" from students; -- 起别名

-- 删除语句
物理删除
delete from students where id=4;
逻辑删除 
逻辑删除
用一个字段来表示 这条信息是否已经不能再使用了
给students表添加一个 is_delete 字段 bit 类型
alter table students add is_delete bit default 0;
update students set is_delete=1 where id=3;

select students.name from students;
select s.name,s.age from students as s;
//消除重复行
select distinct gender from students;

比较运算符和逻辑运算符

select * from students where age>=18;-- > < >=   != or <> 
-- 逻辑运算符
-- and / between..and
-- 18和28之间的所有学生信息
select * from students where age>=18 and age<=28;
select * from students where age between 18 and 28;

select * from students where age>18 and gender="女";
select * from students where age>18 and gender=2; -- 枚举的数据类型可以用数字来表示,数字从1开始

select * from students where age>18 or height>=180.00;

select * from students where not (age>18 and gender=2);

-- 模糊查询
-- 模糊查询(where name like 要查询的数据)
-- like
-- %替换任意个
-- _替换1个
-- 查询姓名中 以“小"开始的名字的学生信息
select * from students where name like "小%":
select * from students where name like "__":

-- 范围查询.
-- 范围查询
-- in(1,3,8)表示在一个非连续的范围内
-- 查询 年龄为18或34的姓名的学生信息
select * from students where age in (18,34); -- (18,34)不是区间,是确切的值
-- not in 不非连续的范围之内
-- 年龄不是 18或34岁的学生信息
select * from students where age not in (18,34);
-- between...and...表示在一个连续的范围内
-- 查询 年龄在18到34之间的学生信息
select * from students where age between 18 and 34;
select * from students where age not between 18 and 34;

-- 判断is null
select * from students where height is null;
select * from students where height is not null;

-- 排序查询
排序
order by 字段
asc asc从小到大排列,即升序
desc desc从大到小排序,即降序
查询年龄在18到34岁之间的男性,按照年龄从小到大到排序
select * from students where gender=1 and age between 18 and 24 order by age asc;
select * from students where gënder=2 and age between 18 and 34 order by height desc, age asc;

-- 分组查询
select gender from students group by gender;-- 可以消除重复
select gender, count(*) from students group by gender;
select gender,group_concat(name) from students group by gender;
-- 平均年龄
select gender,avg(age) from students group by gender;
having(注意having和group by 连用 having后通常也要跟 聚合函数)
注意:聚合函数如果做为条件出现,只能和having配合。不能和where配合使用。
查询平均年龄超过30岁的性别,以及姓名
select gender,avg(age) from students group by gender having avg(age)>30;

-- 分页查询
分页
limit start,count 
limit 放在最后面(注意)
limit(要显示第几页-1)*每页分多少个,每页分多少个;
select * from students limit 2;
===
select * from students limit 0,2;
select * from students order by age asc limit 10, 2;

-- 连接查询
连接查询(表与表之间的链接,为了更好的查出有效数据)
inner join...on select...from 表A inner join 表B;
查询 有能够对应班级的学生以及班级信息
select * from students inner join classes;
select * from students inner join classes on students.cls_id=classes.id;

-- 子查询
select * from students where height>(select avg(height) from sudents);

 

标签:--,18,age,常用命令,students,MySQL,where,select
From: https://www.cnblogs.com/KooTeam/p/17964285

相关文章

  • 学习MySQL总结
    每一行称为记录每一列称为字段 SQLSQL语句的作用是实现数据库D客户端和服务端之间的通信.其表现口形式为:D带有一定格式的字符串.1970年E.F.Codd的《ARelationalModelofDataforLargeSharedDataBanks》的论文开始讲起。该论文奠定了关系模型的理论基础,Codd的同事DonCham......
  • MySql索引详情分析
    索引是帮助MySql高效获取数据的排好序的数据结构。(B+tree)为何是B+Tree这个数据结构呢?二叉树:对于单边增值的数据会造成数据倾斜,最终导致数据查询效率不高。红黑树:对于数据量大的时候树的高度会很高,也会导致查找次数变高。B-Tree叶节点具有相同的深度,叶节点的指......
  • MySQL修改安全策略时报错:ERROR 1193 (HY000): Unknown system variable ‘validate_pa
    我使用的版本是MySQL5.73,环境是LinuxCentOS7,其他版本不知道是否可行,望谅解。当我们想设置简单的密码的时候,看了别人发的如何修改安全策略的代码,如下:setglobalvalidate_password_policy=0;setglobalvalidate_password_length=1;但是当我们使用的时候,却报了这样一个......
  • docker 常用命令大全
     docker常用命令大全个人理解docker中的镜像就像是咱们java中的Class,而容器呢是基于这个镜像构建出的实例类似于咱java中根据Class构造出的一个个实例对象,本人是初学者理解有误还请见谅,并麻烦您说说您的看法让彼此相互学习… 按我理解简言之docker镜像:--......
  • 探索MySQL隔离级别
    深入理解与实战示例数据库事务的隔离级别是一个重要的概念,它定义了一个事务可能受其他并发事务影响的程度。MySQL提供了四种标准的隔离级别,每个级别都以不同的方式平衡了一致性和性能。本文将详细介绍这些隔离级别,并提供相应的示例。1.读未提交(ReadUncommitted)概念:这是最低......
  • mysql8.0数据目录
    1、数据库和文件系统1.1、查看默认数据库SHOWDATABASES;可以看到有4个数据库是属于MySQL自带的系统数据库。mysqlMySQL系统自带的核心数据库,它存储了MySQL的用户账户和权限信息,一些存储过程、事件的定义信息,一些运行过程中产生的日志信息,一些帮助信息以及时区信息等。information......
  • 【笔记-MySql】表处理语句
    【笔记-MySql】表处理语句查看表SHOWTABLES;查看列SHOWCOLUMNSFROM<tableName>;查看约束SHOWINDEXESFROM<tableName>;创建表CREATE[TEMPORARY]TABLE<tableName>(字段描述语句[,...][表级约束]);修改表名RENAMETABLE<oldtableName>TO<tabl......
  • 【笔记-MySql】库处理语句
    【笔记-MySql】库处理语句连接数据库mysql-u<user>-p<password>查看SHOWDATABASES;创建CREATEDATABASE[IFNOTEXISTS]<name>;删除DROPDATABASE<name>;选择USE<name>;......
  • 【笔记-MySql】数据处理语句
    【笔记-MySql】数据处理语句语句参数聚合函数{count|max|min|sum|avg|...}比较运算符{=|<>|!=|<|<=|>|>=}--<>:早期符号,等同于!=,据说移植和性能略优。条件描述{--将当前值作为条件<columnName>{比较运算符<value>|--......
  • SQL语句增删改操作(适用于MySQL)
    假如想要的数据库名为students数据表名为userinfo,字段格式为id(主键自增),name(varchar),sex(varchar),age(int),birthday(datetime),des(varchar)除主键外皆可为空,则有以下代码:创建数据库和表细节剖析:自增ID:AUTO_INCREMENT;设置主键:PRIMARYKEY;唯一性约束:UNIQUE非空约束:NOTNULL设......