首页 > 数据库 >2,mysql的常用查询语句

2,mysql的常用查询语句

时间:2023-09-05 13:22:41浏览次数:53  
标签:语句 -- tb 查询 mysql where id select

一、数据库

1,创建数据库

create database database_name;

数据库的Name的命名一般按照公司规范,例如:

create database db_book;

2, 查看数据库

Show databases;

3,删除数据库

Drop database database_name;

例如:

Drop database db_book;

二、表结构的增删改

1.,创建一个表

Create table table_name(字段 属性,) CHARSET=utf8;

2,给表增加字段 add

Alter table table_name add filed_name 属性;

1,修改表名

Alter table old_tableName rename new_tableName;

2,给表修改字段 change

Alter table table_name  change  old_field_name new_field_name 属性;

3,删除表字段 drop

Alter table table_name drop field_name;

4,删除表

Drop table table_name;

 

三、单表查询

-- 查询所有的数据

select * from t_student ;

-- 查询年龄20的学生  where

select * from t_Student where age=21;

-- 查询年龄不等于20的学生 !=

select * from t_Student where age!=21;

-- 查询年龄20到21间的学生  between and

select * from t_Student where age between 20 and 21;

-- 初选年龄不在20到21间的学生

select * from t_Student where age not between 20 and 21;

-- 查询年龄在数组中的学生 in

select * from t_Student where age in (20, 21);

-- 查询 not in

select * from t_Student where age not in (20, 21);

-- 查询 null

select * from t_Student where sex is null;

-- 查询is not null;

select * from t_Student where sex is not null;

-- like 模糊查询_是一个词

select * from t_Student where stuName like '张_';

-- %是多个词

select * from t_Student where stuName like '张%';

-- 去除字段中的重复值

select distinct gradeName from t_Student;

-- GROUP BY必须分组相关数据,如果直接用*,会报错

select gradeName,GROUP_CONCAT(stuName)  from t_Student GROUP BY gradeName;

--having是对已经查出得结果,二次操作

SELECT sex,COUNT(stuName) FROM t_student GROUP BY sex HAVING COUNT(stuName)>2;

-- 从下标2开始,10个数据

select * from t_Student limit 2,10

四、 聚会函数查询

-- count,计数

select COUNT(*) as total from t_grade ;

-- 分组后再计数

 

-- 最大的得分,

select stuName,COUNT(*) as total from t_grade GROUP BY stuName;

当使用group by 时,前边必须查询分组字段

select stuName, MAx(score) from t_grade GROUP BY stuName;

-- avg平均数

select stuName, avg(score) from t_grade GROUP BY stuName;

五、 多表查询、内连接,左右外连接

-- 直接通过where实现多表的连接,内连接

select * FROM t_book tb, t_booktype tbk where tb.bookTypeId = tbk.id;

-- 通过table1 left join table2 on 表1属性=表2属性

select * FROM t_book tb LEFT JOIN t_booktype tbk on tb.bookTypeId= tbk.id;

-- 通过table1 right join table2 on 表1属性=表2属性

select * FROM t_book tb RIGHT JOIN t_booktype tbk on tb.bookTypeId = tbk.id;

-- 连接后,再次通过and来操作过滤

select * FROM t_book tb RIGHT JOIN t_booktype tbk on tb.bookTypeId = tbk.id and tb.price > 70;

-- 三张表连接

select * FROM (t_book tb RIGHT JOIN t_booktype2 tbk2 on tb.bookTypeId=tbk2.id ) RIGHT JOIN t_booktype tbk on tb.bookTypeId = tbk.id;

六、子查询

对已经查询的结果再次查询,in, any,all,exists

-- 对已经查询的结果再次查询,使用where in

SELECT * FROM t_book tb where tb.id in (SELECT id FROM t_booktype);

-- 对查询结果在查询,使用where exists 子查询有结果就查询外边

SELECT * FROM t_book tb where exists (SELECT id FROM t_booktype);

-- 对查询结果在查询,使用where not exists 子查询没有结果就查询外边

SELECT * FROM t_book tb where not exists (SELECT id FROM t_booktype);

-- 对查询结果在查询,使用where any 满足任何一个子查询的结果,就查询外边

SELECT * FROM t_book tb where price >= any (SELECT price FROM t_pricelevel);

-- 对查询结果在查询,使用where all 满足全部子查询的结果,就查询外边

SELECT * FROM t_book tb where price >= all (SELECT price FROM t_pricelevel);

七、联合查询

使用union,union all,和给表、字段取别名

-- union会自动去掉重复数据,union的两个表必须有相同的列数,按照第一个表的字段去排列数据

SELECT id FROM t_book union SELECT id FROM t_booktype ;

-- union all不去掉重复数据,union all的两个表必须有相同的列数,按照第一个表的字段去排列数据

SELECT id, price FROM t_book union all SELECT id,bookTypeName FROM t_booktype ;

-- 字段一般加上as,也可以省略,表后直接加别名,不需要as

SELECT tb.id as id1, tb.price as price2, tbk.id as tbk_id FROM t_book tb LEFT JOIN t_booktype tbk on tb.bookTypeId = tbk.id;

八、表数据的增删改

-- 增加表中数据行

insert into t_book (author) values('我爱我家'),('我爱我家2'),('我爱我家3');

-- 删除表中数据行

DELETE from t_book where author is Null;

-- 修改表中数据行

update t_book set author='我' WHERE author like '我%' ;

 

标签:语句,--,tb,查询,mysql,where,id,select
From: https://www.cnblogs.com/wuzhenhu/p/17679333.html

相关文章

  • MySQL入门系列2-数据控制语言(DCL)
    一、概念DCL数据控制语言,用来管理数据库用户、控制数据库的访问权限。二、查询用户select*frommysql.user;其中Host代表当前用户访问的主机,如果为localhost,代表只能够在当前本机访问,不可以远程访问的。User代表的是访问该数据库的用户名。在MySQL中需要通过Host和User来唯......
  • C/C++地铁线路查询系统[2023-09-05]
    C/C++地铁线路查询系统[2023-09-05]地铁线路查询问题描述:当一个用户从甲地到乙地时,由于不同需求,就有不同的交通路线,有人希望以最短距离到达,有人希望用最少的换乘次数等。请编写一北京地铁线路查询系统,通过输入起始站、终点站,为用户提供两种或以上决策的交通咨询。设计要求:......
  • [TRACE]Admin中描述更改的查询
     1.select*fromt_nomenwhereet_refakf_se='6567863JWA'andet_typtra='U'andet_refakf_compisnull//查询出id_nomen:2141532.select*fromt_simowhereet_nomen=214153andet_modeop_pereisnullandsimo_fin_validiteisnull//查询出id_s......
  • 五笔字根查询接口
    输入法,五笔打字,生活服务,字根查询一、接口介绍可对五笔字根口诀及五笔编码查询,希望能为您学习五笔输入法提供帮助。二、功能体验三、产品特点四、API文档4.1五笔字根查询查询4.1.1接入点说明查询五笔字根。4.1.2接口地址http[s]://route.showapi.com/1861-1?showapi_......
  • 1,mysql基础:mysql的安装,mysql的基本数据类型
    第一章安装1,windows安装https://dev.mysql.com/downloads/mysql/如果是msi的安装包,一步步安装就可以,如果是zip包,解压后需要设置在存在有bin文件夹的同目录新建一个my.ini文件加入一下代码:[mysqld]#设置3306端口port=3306#设置mysql的安装目录basedir=C:\ProgramFi......
  • Qt调用 mysql数据库 QSqlQuery::exec()堵塞
    RT,因为某个字段名称写错了,修改字段语句,语句大致如下altertablet_user_settingchangefield1field2varchar(32)default'11'comment'22'每当执行到query.exec()时,直接堵塞不动,刚好我这里使用workbench查看数据库,在workbench调用同样语句,程序就不堵塞了,每次都是这样。最......
  • Windows下Mysql完全卸载教程
    1,windows系统(快捷键win+r)进入命令行输入:netstopmysql2,进入控制面板,卸载mysql3,进入C:\ProgramFiles(x86),C:\ProgramFiles,C:\ProgramData中,将MySQL文件夹删除4,在注册表中彻底清除mysql的东西快捷键win+r输入regedit进入注册表找到HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Ser......
  • MySQL将timestamp默认值设置为null
    问题以前MySQL创建表的的时候,timestamp类型的字段可以不加默认值。createTimetimestampCOMMENT'创建时间',这样创建是没有问题的。但是现在却报错,“Invaliddefaultvaluefor‘createTime’”问题原因:因为MySQL5.6以后timestamp设定默认值规则改变,不能为000000-0000:00:00......
  • mysql忘记root密码
    mysql忘记root密码并修改:1、绕过密码验证修改msyql配置文件[mysqld]下添加skip-grant-tables    ##跳过授权表2、重启mysql服务3、登录mysql,use进入mysql库,修改user表修改root密码updateusersetauthentication_string='123'where user='root'andhost=......
  • 【面试题精讲】MySQL中覆盖索引是什么
    有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top首发博客地址系列文章地址在MySQL中,覆盖索引是一种特殊类型的索引,它包含了查询所需的所有列,而不仅仅是索引列本身。当一个查询可以完全使用覆盖索引来满足时,MySQL可以直接从......