day 37-8 关于mysql 的增 删 改 查 及联合列表
1 VARCHAR : 字符串的意思 (括号内的数字代表尾数) 输入的字符串在这个范围内都行
CHAR :字符串的意思(区别就有几位数字 必须写几位)
INT 整数(位数) 输入的数字在范围内都行 最长是10位 后边括号数字可以不加
BIGINT 整数(位数) 最长是20位
FLOAT 小数(位数) 输入的数字在范围内都行
2 创建数据库两种方法
第一种 右击 新建
第二种 输入命令: CREATE DATABASE +库名
CREATE DATABASE WANGLUO
Schema 数据库对象集合
3 建立列表的格式有两种方式
新建列表的是的主键 PRIMARY KEY 表示 这个不能重复 一般在id 上
DOUBLE(10,2) 最大数字是10位 小数最多占2位
第一种 在列表处 右击新建 然后 按照要求写
第二种 点击要操作的数据库 然后 查询 新建查询 输入命令:
例如 name sex age
create table 列表名(name VARCHAR(10) NOT NULL PRIMARY KEY ,sex CHAR(2)
NOT NULL, age int(10)) 列表名完成
例如 新建王岩练习2 的列表名 p_id ,p_name,p_age,p_menpai,p_leader ,p_sal
第一步建表
create table 王岩练习2(
p_id VARCHAR(19) not null PRIMARY KEY
,p_name VARCHAR(19) not null
,p_age INT not null
,p_menpai VARCHAR(19) not null
,p_leader VARCHAR(19) not null
,p_sal DOUBLE(10,2) not null)
第二步上传就是 insert into 王岩练习()或者( p_id ,p_name,p_age,p_menpai,p_leader ,p_sal)values('p001','张三','100','武当','p001','10000'),或者
('p002','张无忌','20','明教','0','8000'),
('p003','岳不群','40','华山','0','6500'),
('p004','东方不败','35','日月神教','0','12000'),
('p005','令狐冲','21','明华山','p003','4000'),
('p006','林平之','18','华山','p004','2000'),
('p007','左冷禅','50','嵩山','0','10000'),
('p008','','46','武当','p004','10000'),
('p009','张远桥','55','武当','p005','6500');
4增加一个字符段
insert into +列表名 (列表的格式分别用英文逗号隔开)values(一 一相对应填入值);
INSERT INTO `王岩练习` (p_id,p_name,p_age,p_menpai,p_leader,p_sal) VALUES
('p001','张三','100','武当','p001','10000');
5删除delete 删除具体的
delete from +表名+ 条件where 字符段 = 内容
DELETE FROM 王岩练习 WHERE p_name ='张三'
drop 删除列表
drop table +l列表名;(后边以分号结尾)
DROP TABLE`ren员表`;
drop 删除数据库
drop database 库名;
DROP DATABASE wangluo;
6 改 update +l列表名 set 字符段 = ‘更改后的名字’ where 字符段= ’更改前的名字‘
UPDATE `王岩练习` SET p_name= '张三丰' where p_name= '张三'
7 查询
问题1 单条件查询50岁以上的人
selec * from 列表名 +条件 字符段 >= 50
SELECT * FROM `王岩练习` WHERE p_age >=50;
问题2 双条件查询 50岁以上并且工资10000以上的
select * from 列表名 +条件 p_age >= 50 and p_sal >10000
SELECT * FROM `王岩练习` WHERE p_age>50 AND p_sal >8000;
此时 的and 也可以用符号 但是必须是 双的 &&
问题2 -1 补充的 问题 工资在5000 在8000之内的 运用between
SELECT * FROM `王岩练习` WHERE p_sal BETWEEN 5000 AND 8000:
问题3 or的用法 省略 但是 必须是 ||
问题4 找人的名字 模糊查找的用法 用like
selec * from 列表名 +条件 like (模糊的名字)
SELECT * FROM `王岩练习` WHERE p_name LIKE '张%'
张% : 张某某 ,%张: 某某张
问题5 同时包含几个内容的 需要in
select * from 列表名 +条件字符段 in(字符段1,字符串2,字符段3)
SELECT * FROM `王岩练习` WHERE p_menpai in('武当','华山','嵩山')
问题6 正序 倒叙的问题 order by 正序 asc 倒叙desc
SELECT * FROM `王岩练习` ORDER BY p_sal ASC;
SELECT * FROM `王岩练习` ORDER BY p_sal DESC;
问题7 等于 21岁以上的人 他的领导人是谁
select p_leader from '王岩练习' where p_age ='21' 结果p003
selcet * p_id from '王岩练习' where p_id = p003;
第二种 ;SELECT * FROM `王岩练习` WHERE p_id=(SELECT p_leader FROM `王岩练习` WHERE p_age ='21');
逻辑上的运算 不等于 <> 或者 !=(这个很少用)
-----------------------------
COLUMNS ,设置网格的列数,设置列间距
查看 数据表结构 show COLUMNS from 表名字
alter 改变
更改表明 alter table table_name rename table_new_name
charset 字符集,字符编码
新建一个utf - 8 的数据库
create database luodandan charset utf8;
更改一个数据的格式为gbk
ALTER DATABASE luodandan CHARSET gbk;
查询 (核心);
1 查询所有;
select * from 表名;
* 代表素有 from 表示选取哪个表查询
最好把* 换成具体的字符段(字符段就是 建表时候那个 参数 nam varchar(10) not null)
SELECT * from wytext;
2 查询某两个字段
select 字段1,字段2 from 表名
SELECT p_name,p_sal from wytext;
3根据条件查询
select * from 表名 where 字段 = '值'
where ;表示条件 跟在where 后边的统称值为条件
SELECT * FROM wytext WHERE p_age > 50;
4 多条件查询
select * from 表名 where 字段 1= 值1 and (or) 字段2 = 值2 and(or) 字段 3=值3;
and 并且符号& or 或者的意思 | 但是此时的符号 必须是两个 && ||
SELECT * FROM wytext WHERE p_age>'50' AND p_sal>='10000'AND p_menpai ='武当';
5 逻辑运算查询
select * from 表名 where 字段1 <> 值1 and 字段2 > 值2;
逻辑运算符 ; = , (!=, <>), >, <, >=, <=
SELECT * FROM wytext WHERE p_age <> '50' AND p_sal >'10000'
6 模糊查询 like
select * from 表名 where 字段 like '%字段%'
‘’字段% 表示 字段头xxx
'%字段' 表示字段结尾 xxx字段
%字段% 包含的字段 xx字段xxx
select * from wytext where p_menpai like '%派%';
7 集合查询(自己理解就是查多个字段的值)
select * from 表名 where 字段 in(值1,值2,值3,值4);
SELECT * FROM wytext WHERE p_menpai in('派森派','明教','日月神教','武当');
8 区间查询
select * from 表名 where 字段 betwee 值1 and 值2;
两个之间 between and 而且 属于包含的意思(比如说数字)
SELECT * FROM wytext WHERE p_sal BETWEEN '10000' and '12000'
9 排序 正序 ORDER BY 字段 ASC 倒叙 ORDER BY 字段 DESC
注意 无论是倒叙 还是正序 都是条件 和where 不能同时存在
select * from 表名 where ORDER BY 字段(asc)or desc
SELECT * FROM wytext ORDER by p_age ASC;
10 嵌套查询
select *from 表名 where 字段in(select 字段 from 表名 where id = 值 )
注意 () 括号优先
遇到= 值唯一 晕倒in的值 集合
找得是21岁的那人 他的领导是谁
SELECT * FROM wytext where p_id in(SELECT p_leader FROM wytext WHERE p_age = '21')
答题继续;
11 当前工资最高的人员
最高 max()
select max(p_sal) as ’起别名 ‘from 表名;
注意 as ‘起别名’ 这个可以不用写
SELECT MAX(p_sal) as p_sal FROM wytext; 这个是工资最高的是多钱 15000
SELECT p_name FROM wytext WHERE p_sal=(SELECT MAX(p_sal) as p_sal FROM wytext);
12 当前工资最高的人员
最低 min()
select min(p_sal) from 表名;
select min(p_sal) from wytext ;
select p_name from wytext where p_sal = (select min(p_sal) from wytext );
13 查询所有人的平均工资
平均值 avg()
SELECT avg(p_sal)FROM wytext;
14 查询所有人员的工资的总和
sum() 总和
select sum(p_sal) from wytext;
15 查询目前有多少个人员
count() 数数量
select COUNT(p_id)from wytext;
16 查询各门派的平均工资
分组 group by 字符段
select avg(p_sal) ,p_menpai from wytext group by p_menpai;
as 的使用情况 更明晰
select avg(p_sal)as '平均工资', p_menpai as '门派' from wytext group by p_menpai;
按照顺序 注意 这个顺序 最一定放在最后
ordr by 字段
select avg(p_sal),p_menpai,p_name from wytext GROUP BY p_menpai order by avg(p_sal) asc;
17 查询武当派的最高工资的是谁
思路 先找人-----工资最高 -------武当派
注意 (select max(p_sal) from wytext where p_menpai = '武当' ) 结果是个工资的最大值
SELECT p_name FROM wytext WHERE p_sal = (SELECT MAX(p_sal) FROM wytext WHERE p_menpai= '武当')and p_menpai = '武当'
18武林中有哪些门派
SELECT p_menpai FROM wytext ; ## 表示每个人对应的门派
SELECT p_menpai FROM wytext GROUP BY p_menpai; ## group by 分组 意思就几个人对应的一组 出来就是单纯的组
19查询当前武林有哪些门派和门派的平均工资
select p_menpai ,AVG(p_sal )from wytext GROUP BY p_menpai;
20 查询当前人员中的第3条到第7条的数据
limit 表示分页 limit(x,y)
x 按照索引 取值 x=1 时候 从2取值
y 就是本页句有y 个值 每次查询y条数据
select * FROM wytext limit 2,5
21查询没有门派的人员有哪些
主要是表里面 那个有没有null
SELECT * FROM wytext WHERE p_menpai is null; ## 前提是建表时 p_menpai 设置时候就是not null
SELECT * FROM wytext WHERE p_menpai=''; 修改的时候必须是= 不能is
UPDATE wytext set p_menpai = NULL WHERE p_id='p008' 这个是在没有设置 not null
22 查询武当派下有哪些小弟
-- SELECT * FROM wytext WHERE p_leader=(SELECT p_id FROM wytext WHERE p_menpai = '武当'AND p_leader='0')
SELECT * FROM wytext WHERE p_menpai = '武当'and p_leader <> '0'; 注意引号
23 各门派的工资总和 并排序
条件 group by +字段 order by 字段+顺序
SELECT SUM(p_sal),p_menpai FROM wytext GROUP BY p_menpai ORDER BY SUM(p_sal) ASC;
24 查询人员并显示门派所在位置(多表联合查询)
select * from 表1 ,表2 条件 where 表1.共同字段= 表2.共同字段 ;
select * from wytext, wei where wytext.p_menpai = wei.a_name;
注意:如果多表联合查询不加条件则会出现(笛卡尔乘积) 就是 表1的行数 x表2的行数
注意:在使用多表联合查询时,一定要加条件
结果:符合两个表条件的结果
25 查询人员表 如果人员表,如果人员门派在位置则显示位置信息,不存在则不显示位置
则不显示位置
select * from wytext left join wei on wytext.p_menpai = wei.a_name
注意 on 表示条件 专门配置 left join来使用
特点左表数据全要,右表的数据与左表数据相匹配则显示,不匹配则以null 填写
26 查询位置表 如果人员的门派 位置信息则显示人员,没有则不显示。
select * from wytext right join wei on wytext.p_menpai = wei.a_name;
27 查询登记了地址位置的门派人员信息
select * from wytext inner join wei on wytext.p_menpai = wei.a_name
day 37-8 关于mysql 的增 删 改 查 及联合列表的更多相关文章
- 好用的SQL TVP~~独家赠送[增-删-改-查]的例子
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...
- iOS FMDB的使用(增,删,改,查,sqlite存取图片)
iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...
- iOS sqlite3 的基本使用(增 删 改 查)
iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...
- django ajax增 删 改 查
具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...
- ADO.NET 增 删 改 查
ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...
- MVC EF 增 删 改 查
using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...
- Go语言之进阶篇mysql增 删 改 查
一.mysql操作基本语法 1.创建名称nulige的数据库 CREATE DATABASE nulige DEFAULT CHARSET utf8 COLLATE utf8_general_ci; ...
- 简单的php数据库操作类代码(增,删,改,查)
这几天准备重新学习,梳理一下知识体系,同时按照功能模块划分做一些东西.所以.mysql的操作成为第一个要点.我写了一个简单的mysql操作类,实现数据的简单的增删改查功能. 数据库操纵基本流程为: 1 ...
- python基础中的四大天王-增-删-改-查
列表-list-[] 输入内存储存容器 发生改变通常直接变化,让我们看看下面列子 增---默认在最后添加 #append()--括号中可以是数字,可以是字符串,可以是元祖,可以是集合,可以是字典 #l ...
随机推荐
- PHP 练习项目------歆语微博项目
一个简单微博项目,php+mysql+apache开发,个人购买资料的项目练习,适合新手练习. 测试账号:zhangqie 密码:123456 功能列表: 数据库增删改查, 图片上传 表情,@好友 ...
- php二分法查找
//二分查找(数组里查找某个元素) function bin_sch($array, $low, $high, $k) { if ($low <= $high) { $mid = intval( ...
- bzoj4804: 欧拉心算 欧拉筛
题意:求\(\sum_{i=1}^n\sum_{j=1}^n\phi(gcd(i,j))\) 题解:\(\sum_{i==1}^n\sum_{j=1}^n\sum_{d=1}^n[gcd(i,j)== ...
- ThinkPHP3的使用
1. 初始目录 7d 根目录 ├─Application 应用目录(空) ├─Public 资源文件目录 ├─ThinkPHP 框架目录 └─index.php 入口文件 2. 入口文件 // 应用入 ...
- [POJ题目分类][转]
Hint:补补基础... 初期:一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治 ...
- vue虚拟DOM源码学习-vnode的挂载和更新流程
代码如下: <div id="app"> {{someVar}} </div> <script type="text/javascript& ...
- IDEA上传一个项目到github
IDEA上传一个项目到github 只要3步 1. 2. 3. 4. 5.查看页面 上传成功... 详情: https://blog.csdn.net/qq_27093465/article/d ...
- nginx 隐藏 index.php 和 开启 pathinfo 模式的配置
nginx 通过 location 的规则匹配将 php 转发给 php-fpm 处理后获取结果然后返回给客户端,转发模式可以通过 unix sock 或 tcp socket 方式.百度了好多文章我 ...
- nginx反向代理配置相对路径
需求: 在公司内部搭建了一个php的网站,想用花生壳映射到外网. 一.反向代理解决直接映射不成功问题 直接用把花生壳的"域名+端口"指向此php网站并竟然不生效.但是不加网站名可以 ...
- Qt之获取子部件
Qt5.10 QList<QObject*> list_children = this->children(); for(int i=0;i<list_children.siz ...