drop database [database_name]; drop database web; truncate table employer;-- 删除表和数据,并重新创建表改修改数据 update...联合查询/集合查询(union)select 查询结果是元组的集合,可用union进行结果的集合操作,相当于把多个查询结果进行连接起来输出UNION规则UNION必须由两条以上的SELECT语句组成,...UNION中的每个查询必须包含相同的列、表达式或聚集函数(各个列不需要以相同的次序列出)。列数据类型必须兼容:类型不必完全相同,但必须是DBMS可以隐含地转换的类型。...如果取出来的数据不需要去重,使用UNION ALL。...我们希望获取所有人的名字和电子邮件。
07.13自我总结 MYSQL数据库的增删改查 一.对于库的增删改查 增 create database 库名称; create database 数据库名称 charset 编码方式; 删 drop...库名称; 二.对于表的增删改查 增 增加表单create table 表名称(字段1 数据类型,字段2 数据类型........限制条件); #至少有一股字段和数据类型,最后一个字段已经最后一个数据类型结束后不加...新字段 新字段数据类型 表 改表名称:rename table 表名称 to 新名称 改表的编码:alter table 表名 charset 新编码; 查 查看所有表:show tables...查看指定表信息:desc table 表名称 查看指定表创建信息:show create table 表名称 三.对于表里的数据增删改查 增 插入一个值 insert into 表名 values...:update 表名 set 字段名称=新的值,字段名称2=值2; 修改满足条件的数据:update 表名 set 字段名称=新的值,字段名称2=值2 where 条件 查 查看所有字段:select
在/var/lib/mysql创建一个目录),删除数据库:drop database db_name;(删除目录) 比如我们在/var/lib/mysql下创建一个目录youcanseeme,而用mysql...(但是在/var/lib/mysql手动mkdir创建目录这是非常不合理的) 创建不存在(if not exists)的数据库create database if not exists database1...; 数据库编码问题 创建数据库的时候,有两个编码集:1.数据库编码集 2.数据库校验集 数据库编码集——数据库未来存储数据 数据库校验集——支持数据库进行字段比较使用的编码,本质也是一种读取数据库中数据采用的编码格式...(20)); 插入数据: mysql> insert into person (name) values ('a'); Query OK, 1 row affected (0.01 sec) mysql...对应的数据库文件夹被删除,级联删除,里面的数据表全部被删 注意:不要随意删除数据库 //删除数据d5\d4\d3; mysql> drop database d5; Query OK, 0 rows
查询 2.1 聚合查询 2.1.1 聚合查询 函数 说明 COUNT([DISTINCT] expr) 返回查询到的数据的 数量 SUM([DISTINCT] expr) 返回查询到的数据的 总和,不是数字没有意义...AVG([DISTINCT] expr) 返回查询到的数据的 平均值 MAX([DISTINCT] expr) 返回查询到的数据的 最大值 MIN([DISTINCT] expr) 返回查询到的数据的...查询每个岗位的平均工资,但是刨除掉平均工资大于2000的数据....计算每个岗位的平均工资,刨除张三,也刨除平均工资超过2000的数据. 2.2 联合查询 实际开发中往往数据来自不同的表,所以需要多表联合查询。...笛卡尔积就是单纯的排列组合,会产生有许多的无效数据.指定连接条件,把无效数据去掉. 2.2.2 外连接 外连接分为左外连接和右外连接。
DELETE FROM stu WHERE studentNo = '888888'; 删除表中所有数据 -- TRUNCATE TABLE 表名; TRUNCATE TABLE stu; 注意:使用此语句删除表中数据...UPDATE stu SET studentNo = '888888' WHERE studentNo = '123456'; 查 SELECT * FROM stu WHERE studentNo =...'888888'; 这是一段简单的查询语句。...SELECT *或 FROM [WHERE ] [GROUP BY 需要分组的字段] [ORDER BY 需要排序的字段 [ASC或DESC] ] ; *表示所有...FROM后主要是接数据来源,可以单个也可以多个。 WHERE用于条件筛选。 GROUP BY可以让查询的数据根据指定字段分组。 HAVING用于筛选组,就是对于GROUP BY分出的组进行筛选等等。
数据的增加Create 全列插入 insert into 表名 values(...); 例如: insert into classes values(0,"一班"); 注:主键字段可用 0 null...zstar1", 1); 多行插入 多行之间用逗号分隔 例如: insert into students (name, gender) values ("zstar1", 1),("zstar2",2); 数据的删除...逻辑删除(虚假的删除,常用) 实质上修改,添加一个新的字段来标记是否删除。...数据的修改Update update 表名 set 列1=值1,列2=值2... where 条件; 例如: 将id为3的记录的gender字段值改为1; update students set gender...=1 where id=3; 数据的查询Retrive 查询所有列 select * from 表名; 定条件查询 例如: 查询id为3的记录 select * from students where
Mysql统计近30天的数据,无数据的填充0。 这个应该是我们在做统计分析的时候,经常遇到的一个需求。...先说一般的实现方式,就是按照日期进行分组,但是这样会有一个问题,如果数据库表中有一天没有数据,那么是统计不出来结果的。...类似下图 2020-01-01 10 2020-01-03 20 2020-01-04 4 这个时候,我们发现,2020-01-02 这一天是没有数据的,我们希望没有数据的这一天得到也能返回日期,...而对应的数据是0,期望如下: 2020-01-01 10 2020-01-02 0 2020-01-03 20 2020-01-04 4 这时候,单单group by就没办法实现了。...一般情况就是我们应该先获取一个日期的虚拟表,把这30天的时间都列出来,然后用这个日期虚拟表再去关联我们的业务表,关联没数据的值设置为空即可,那么怎么得到近30天的日期的,给出sql实现方式 SELECT
Mysql统计近30天的数据,无数据的填充0。 这个应该是我们在做统计分析的时候,经常遇到的一个需求。...先说一般的实现方式,就是按照日期进行分组,但是这样会有一个问题,如果数据库表中有一天没有数据,那么是统计不出来结果的。...类似下图 2020-01-01 10 2020-01-03 20 2020-01-04 4 这个时候,我们发现,2020-01-02 这一天是没有数据的,我们希望没有数据的这一天得到也能返回日期...,而对应的数据是0,期望如下: 2020-01-01 10 2020-01-02 0 2020-01-03 20 2020-01-04 4 这时候,单单group by就没办法实现了。...一般情况就是我们应该先获取一个日期的虚拟表,把这30天的时间都列出来,然后用这个日期虚拟表再去关联我们的业务表,关联没数据的值设置为空即可,那么怎么得到近30天的日期的,给出sql实现方式:
1、关于库的增删改查 增 CREATE DATABASE 库名称; #-----------------=====----------------- CREATE DATABASE shool CHARSET...utf8mb4 COLLATE utf8mb4_bin; 删 DROP DATABASE 数据库; 改 #修改数据库编码 ALTER DATABASE 数据库 CHARSET 编码; 查 SHOW DATABASES...TABLE 表名称 DROP 字段; 修改字段数据类型:ALTER TABLE 表名称 MODIFY 字段 新的数据类型; 替换字段:ALTER ATBLE 表名称 CHANGE 旧字段名称 新字段...新字段数据类型; 表 改表名称:RENAME TABLE 表名称 TO 新名称; 改表的编码:ALTER TABLE 表名 CHARSET 新编码; 查 查看所有表:SHOW TABLES; 查看指定表信息...:UPDATE 表名 SET 字段名称=新的值,字段名称2=值2; 修改满足条件的数据:UPDATE 表名 SET 字段名称=新的值,字段名称2=值2 WHERE 条件 查 查看所有字段:SELECT
下面以一张学生表为例; 2.1 单行数据 + 全列插入 -- 插入两条记录,value_list 数量必须和定义表的列的数量及顺序一致 INSERT INTO student VALUES (100...查询 首先创建一张表,并插入一些数据作为案例; -- 创建考试成绩表 DROP TABLE IF EXISTS exam_result; //如果之前创建过这个名字的表就删除掉 CREATE...查询的列越多,意味着需要传输的数据量越大; -- 2. 可能会影响到索引的使用。...没有 ORDER BY 子句的查询,返回的顺序是未定义的. 2. NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面 . 3....3表示数据的长度,1表示小数点后面的位数.而我们的某些数据在操作候长度达到了4. 5.删除(Delete) -- 删除孙悟空同学的考试成绩 DELETE FROM exam_result WHERE
一、数据库DATABASE的增删改查 1、增 CREATE DATABASE DBname ; mysqladmin -u root -p create DBname ; 2、删 DROP DATABASE...DBname ; mysqladmin -u root -p drop DBname ; 3、查 查询数据库列表 show databases ; 查询某一个数据库的信息: show create...] 修改表名 alter table 旧表名 rename [to] 新表名 ; 4、查 查询数据表列单:show tables; 显示所有数据:select * from 表名; 查看数据表的数据...:describe 数据表名;或简写为desc 数据表名; 读取数据 SELECT * from table WHERE author LIKE '%COM'; 三、字段的增删改查 1、增 alter...drop column phone; 删除hiddenmountain 的phone 字段 四、数据value的增删改查 1、增 insert into hiddenmountain(name,age
每个字段由若干按照某种界限划分的相同数据类型的数据项组成,这里指的数据表中的列,一列就是一个字段 1.1增 1.1.1列表的创建: create table 表名(字段名 列约束 [可选的参数] ,...数据类型前面。 根据应用场景:根据公司的业务场景,选择合适的类型。 2.1.2浮点型(*********) float:一共只有四个字节,如果整数部分过长,则小数部分精确的位数会逐渐减少。...注意:如果在某些情况下不能确定数据的大小,建议使用varchar(255)。 char一般应用于固定长度的数据,如身份证、手机号、MD5加密之后的值。...3.2.1删除表内具体的数据 delete from 表名 where 条件; 这里的条件可以是与或非和比较运算的组合。...如下例就是通过delete清空的列表由于id设置的自增加,所以,清空后再次插入新的数据,仍会接着之前的id创建新的id。
前言 前面我们学习了MySQL数据库和数据表的创建、删除。接下来我们就需要将数据保存在数据表中。今天我们就来学习数据表的增删查改(CRUD)。...新增(Create) 一旦创建数据库和数据表,下一步就是向数据表中添加数据。MySQL 通过 insert 语句来添加一条或多条数据。...查询(Retrieve) MySQL 通过 select 语句来查询数据,查询结果通常会生成一个临时表。...,意味着需要传输的数据量越大,可能导致数据库崩溃 select * from result; 2.2 指定列查询 -- 指定列的顺序不需要按定义表的顺序来 select name,id from result...总分 from result; 2.5 去重 MySQL 使用 distinct关键字对某列数据进行去重: -- 数学成绩98重复了 select math from result; select distinct
数据库约束类型 not null :不允许某列存储空值(非空); unique :不允许你某列存储重复值(唯一); default :没有赋值的列存储默认值; primary key:主键约束,not...foreign key:外键约束,保证一个表中的数据匹配另一个表中的值的参照完整性。...id 这一列的数据不能为空。...create table student(id int unique, name varchar(20), age int); 上述命令指定 id 这一列的数据不能重复 测试:插入 id 重复的记录是否都能成功插入...,在这条语句执行后,确保 MySQL 插入外键中的每一个非空值已经在被参照表中作为主键出现。
MySQL表的增删改查(基础) 据库最主要的操作就是增(create)删(update)改(retrieve)查(delete)。(CURD) 注意:进行增删改查操作的时候,请务必选中数据库。...创建数据库,如果手动指定字符集了,以手动指定的为准,如果没有手动指定,此时就会读取MySQL的配置文件(my.ini),配置文件里面也会写一个字符集。...数据库服务区是把数据保存在硬盘上的。 mysql关系型数据库,每次进行一个sql操作,内部都会开启一个事务。每次开启事务也是有一定开销的。 查询(select) select是sql中最复杂的操作。...MySQL中数据量是非常大的,因此有可能采用的是归并排序。具体到工作中,还得看数据库中的实现。 注意: 如果SQL中没有显式的写order by,认为查询结果的顺序,是不可预期的。...先把数据库中保存的数据,进行查询,查的时候,每次得到一行,就带入到条件中。 加入or就可以带上空值了。很多sql字句都是可以相互组合的。 这里是两个列进行比较。
character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准 collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准 现在创建一张表user1: mysql...affected (0.03 sec) 存储引擎不同,此时我们查看user1和user2:建表的时候出现不同的个数 不同的存储引擎对于磁盘文件的个数要求是不一样的 查看表desc 查看当前数据库的位置...xingming varchar(60) DEFAULT NULL; 向表中插入数据insert into values mysql> insert into user values (1,'张三...字段: alter table user add image_path varchar(128) comment '这个是用户的头像路径' after birthday; 插入新字段后,对原来表中的数据没有影响...删除列 比如删除表user中的password列: alter table user drop password; 注意:删除字段一定要小心,删除字段及其对应的列数据都没了 删除表drop DROP
之前写过一遍文章,记录了Mysql统计近30天的数据,无数据填0的方式。...主要思路就是利用mysql中的函数,生成一列30天的日期格式的数据,在通过这张临时表的数据去左关联我们的业务数据,由于用的是左关联,所以30天的数据肯定是有的,和业务数据关联后,业务数据中没有该日期的数据...原文地址: Mysql统计近30天的数据,无数据的填充0_lsqingfeng的博客-CSDN博客_mysql统计30天内的数据 而最近在做统计分析的时候,遇到了一个统计近6个月的数据需求。...当时我这一看,这不是和我之前做的统计近30天的数据的需求差不多么,就准备照搬过来,但是却发现整体思路是一致的,但是生成这个近六个月的数据,有点不知所措。...核心思路还是要生成近6个月的月份数据。
MySQL基本查询 表的增删改查:CRUD Create(创建)包含insert Retrieve(读取)包含select Update(更新) Delete(删除) 一.增加数据Create 主要是...,但冲突数据的值和 update 的值相等 1 row affected: 表中没有冲突数据,数据被插入 2 row affected: 表中有冲突数据,并且数据已经被更新 此外,通过 MySQL...exam_math; 3.查询字段为表达式 在MySQL数据类型的介绍中,select可以执行相应的各种表达式,函数。...实际上 MySQL 不对数据操作,所以比 DELETE 更快,但是TRUNCATE在删除数据的时候,并不经过真正的事物,所以无法回滚。...,都是对表进行各种的增删查改,尤其对于查找,表与表之间因外键的联系等。
现在比较知名的关系型数据库有甲骨文的Oracle,MySQL,微软的SQL Server等。...MySQL的常用数据类型 1.数值类型: 分为整形和浮点型: 数据类型 大小 说明 对应Java类型 BIT[(M)] M指定位数默认为1 二进制数,M范围从1到64,存储数值范围从0到2^M-1...4字节 范围从1970到2038,自动检索当前时区并进行转换 java.util.Date 、 java.sql.Timestamp MySQL简单的增删改查...增删改查即CRUD,新增数据,查询数据,修改数据,删除数据。...数据库的增删改查操作将会是我们在今后操作中遇到的最频繁的工作内容,也是最基础最核心的业务,所以我们必须熟练掌握数据库的增删改查相关代码。 下面我来演示一下相关操作: 这是当前我电脑已经存在的数据库。
CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写 先新建一个表 一、插入数据 1.全列插入 insert into [表名...] values (对应的字段内容); 括号里的内容为插入的字段内容,插入的数目和类型需要和表结构要求的一致 2.指定列插入 insert into [表名] (要插入的列) values...(对应列的字段内容); 3.插入多组数据 insert into [表名] (要插入的列) values (对应列的字段内容),(下一个对应列的字段内容);
领取专属 10元无门槛券
手把手带您无忧上云