MySQL学习笔记1(增删查改)

创建表:

/*创建数据库create database 数据库名;
*/
CREATE DATABASE mybase;
/*使用数据库use 数据库名
*/
USE mybase;/*创建数据表的格式create table 表名(列名1 数据类型 约束,列名2 数据类型 约束,列名3 数据类型 约束);创建用户表,用户编号,姓名,用户的地址将编号列,设置为主键约束,保证列的数据唯一性,非空性primary key AUTO_INCREMENT这一句意思是让主键列数据,实现自动增长
*/CREATE TABLE users (uid INT PRIMARY KEY AUTO_INCREMENT ,uname VARCHAR(20),uaddress VARCHAR(200));
/*
表的操作,不常用
show tables 显示所有数据表 desc users 查看表中结构 drop table users 删除数据表 */

 

修改表结构:

 CREATE TABLE users (uid INT PRIMARY KEY AUTO_INCREMENT,uname VARCHAR(20),uaddress VARCHAR(200));/*添加列,添加字段alter table 表名 add 列名 数据类型 约束*/ALTER TABLE users ADD tel INT ;/*修改列, 在原有的列上修改修改列名,数据类型约束  alter table 表名 modify 列名 数据类型 约束*/ALTER TABLE users MODIFY tel VARCHAR(50);/*修改列名alter table 表名 change 旧列名 新列名 数据类型 约束*/ALTER TABLE users CHANGE tel newtel DOUBLE;/*删除列alter table 表名 drop 列名  */ALTER TABLE users DROP newtel;/*修改表名rename table 表名 to 新名 */RENAME TABLE users TO newusers

 

向数据表中添加数据:

CREATE TABLE product(-- 主键列,自动增长id INT PRIMARY KEY AUTO_INCREMENT,-- 商品名字,可变字符,非空pname VARCHAR(100) NOT NULL,-- 商品的价格,doubleprice DOUBLE
);/*向数据表中添加数据 insert格式:insert into 表名(列名1,列名2,列名3) values (值1,值2,值3)注意:对应问题和类型问题
*/INSERT INTO product (id,pname,price) VALUES (1,'电脑',6666.66);
INSERT INTO product (id,pname,price) VALUES (2,'手机',1888.88);/*添加数据格式,不考虑主键格式:insert into 表名 (列名) values (值)
*/
INSERT INTO product (pname,price) VALUES('洗衣机',800);/*添加数据格式,所有值全给出格式:insert into 表名 values (全列值)
*/
INSERT INTO product VALUES (4,'微波炉',300.25);/*添加数据格式,批量写入格式:insert into 表名 (列名1,列名2,列名3) values (值1,值2,值3),(值1,值2,值3)
*/
INSERT INTO product (pname,price) VALUES 
('智能机器人',25999.22),
('彩色电视',1250.36),
('沙发',5899.02)

 

修改表中数据:

/*对数据进行更新操作数据在原有的基础上修改格式:update 表名 set 列1=值1,列2=值2 where 条件where 条件: 数据中的唯一性
*/-- 修改
UPDATE product SET price = 15999 WHERE id=2-- 修改
UPDATE product SET pname='黑白电视机', price=100 WHERE id = 6/*修改条件的写法id=6    等于,不要写双等于id<>6   不等于id<=6 与或非  && || !&&要写成  and||要写成  or ! 要写成  notid in (1,3,4,5,6) 包含
*/
UPDATE product SET price = 2000 WHERE id = 1 OR id = 7;/*删除表中的数据格式:delete from 表名 where 条件drop table 表名 删除整个数据表还有一个truncate方法也是删除,区别在于删除后重建新表,自增重新开始,而delete方法不影响自增
*/
-- 删除
DELETE FROM product WHERE id=8;

 特别注意一个问题,我在安装的时候设置的默认编码是utf8,但是windows默认的是gbk,

如果打开命令行会发现出现乱码问题,解决办法:在控制台中如果想显示正常的汉字,加入这一行:

SET NAMES gbk;

 

 

查询表中的数据:

 

CREATE TABLE zhangwu (id INT PRIMARY KEY AUTO_INCREMENT, -- 账务IDzname VARCHAR(200), -- 账务名称zmoney DOUBLE -- 金额
);
INSERT  INTO zhangwu(id,zname,zmoney) VALUES (1,'吃饭支出',247);
INSERT  INTO zhangwu(id,zname,zmoney) VALUES (2,'工资收入',12345);
INSERT  INTO zhangwu(id,zname,zmoney) VALUES (3,'服装支出',1000);
INSERT  INTO zhangwu(id,zname,zmoney) VALUES (4,'吃饭支出',325);
INSERT  INTO zhangwu(id,zname,zmoney) VALUES (5,'股票收入',8000);
INSERT  INTO zhangwu(id,zname,zmoney) VALUES (6,'打麻将支出',8000);
INSERT  INTO zhangwu(id,zname,zmoney) VALUES (7,NULL,5000);/*查询指定列的数据格式:select 列名1,列名2 from 表名
*/
SELECT zname,zmoney FROM zhangwu;/*查询所有列的数据格式:select * from 表名
*/
SELECT * FROM zhangwu;/*查询去掉重复记录DISTINCT 关键字 跟随列名
*/
SELECT DISTINCT zname FROM zhangwu/*查询重新命名列as 关键字
*/
SELECT zname AS 'name' FROM zhangwu /*查询数据中,直接进行数学计算列对数字进行计算
*/
SELECT zname,zmoney+1000 AS'sum' FROM zhangwu-- 查询所有的吃饭支出
SELECT * FROM zhangwu WHERE zname='吃饭支出'-- 查询金额大于1000
SELECT * FROM zhangwu WHERE zmoney>1000-- 查询金额在2000到5000之间 
SELECT * FROM zhangwu WHERE zmoney >= 2000 AND zmoney <= 5000
-- 改造成between and 方式
SELECT * FROM zhangwu WHERE zmoney BETWEEN 2000 AND 5000-- 查询金额是 1000,3500,5000 其中一个
SELECT * FROM zhangwu WHERE zmoney = 1000 OR zmoney=3500 OR zmoney=5000
-- 改造成in方式
SELECT * FROM zhangwu WHERE zmoney  IN (1000,3500,5000)-- like 模糊查询 配合通配符
-- 查询所有的支出(含有这两个字即可查出)
SELECT * FROM zhangwu WHERE zname LIKE '%支出%'-- 查询账务名字,五个字符的
SELECT * FROM zhangwu WHERE zname LIKE'_____'-- 查询账务名,不为空的
SELECT * FROM zhangwu WHERE zname IS NOT NULLSELECT * FROM zhangwu WHERE NOT ( zname IS NULL)

 

排序查询:

/*查询,对结果集进行排序升序,降序,对指定列排序order by 列名 [desc][asc]desc 降序asc  升序排列,可以不写
*/
-- 查询账务表,价格进行升序
SELECT * FROM zhangwu ORDER BY zmoney ASC-- 查询账务表,价格进行降序
SELECT * FROM zhangwu ORDER BY zmoney DESC-- 查询账务表,查询所有的支出,对金额降序排列
-- 先过滤条件 where 查询的结果再排序
SELECT * FROM zhangwu WHERE zname LIKE'%支出%' ORDER BY zmoney DESC

 

聚合函数:

/*使用聚合函数查询计算
*/-- count 求和,对表中的数据的个数求和  count(列名)
-- 查询统计账务表中,一共有多少条数据
SELECT COUNT(*)AS'count' FROM zhangwu-- sum求和,对一列中数据进行求和计算 sum(列名)
-- 对账务表查询,对所有的金额求和计算
SELECT SUM(zmoney) FROM zhangwu
-- 求和,统计所有支出的总金额
SELECT SUM(zname) FROM zhangwu WHERE zname LIKE'%收入%'INSERT INTO zhangwu (zname) VALUES ('彩票收入')-- max 函数,对某列数据,获取最大值
SELECT MAX(zmoney) FROM zhangwu-- avg 函数,计算一个列所有数据的平均数
SELECT AVG(zmoney)FROM zhangwu

 

分组查询:

 

/*查询所有的数据吃饭支出 共计多少工资收入 共计多少服装支出 共计多少股票收入 共计多少打麻将支出 共计多少钱分组查询:  group by 被分组的列名必须跟随聚合函数select 查询的时候,被分组的列,要出现在select 选择列的后面
*/SELECT SUM(zmoney),zname FROM zhangwu GROUP BY zname-- 对zname内容进行分组查询求和,但是只要支出
SELECT SUM(zmoney)AS 'getsum',zname FROM zhangwu WHERE zname LIKE'%支出%'
GROUP BY zname
ORDER BY getsum DESC-- 对zname内容进行分组查询求和,但是只要支出, 显示金额大于5000
-- 结果集是分组查询后,再次进行筛选,不能使用where, 分组后再次过滤,关键字 having
SELECT SUM(zmoney)AS 'getsum',zname FROM zhangwu WHERE zname LIKE'%支出%'
GROUP BY zname HAVING getsum>5000

 

转载于:https://www.cnblogs.com/xuyiqing/p/8322197.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/369768.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Angular4 中内置指令的基本用法

ngFor 作用&#xff1a;像 for 循环一样&#xff0c;可以重复的从数组中取值并显示出来。 // .tsthis.userInfo [张三, 李四, 王五];// .html<div class"ui list" *ngFor"let username of userInfo"><div class"item">{{username}}…

初入编程的新世界

准备跨入程序员的行列了&#xff0c; 今天开课第一天&#xff0c; 算起来之前学习的几天&#xff0c; 第一次真正的了解了网页制作包括什么&#xff0c; html&#xff08;结构&#xff09;&#xff0c;css&#xff08;页面美化 层叠样式表&#xff09;&#xff0c;JavaScri…

java中i+=2什么意思_三分钟看懂Java中i++与++i的性能差别以及循环中如何使用

在Java中&#xff0c;自增是一种非常常见的操作&#xff0c;在自增中&#xff0c;有两种写法&#xff0c;一种是前缀自增(i)&#xff0c;一种是后缀自增(i)。这里主要简单介绍两种自增的差别。一、含义差别前缀自增和后缀自增是不同的。前缀自增(i)是从内存中加载i&#xff0c;…

Java / JEE中的有效日志记录–映射的诊断上下文

当我和一位同事坐在一起解决一些应用程序问题时&#xff0c;一切都开始了&#xff0c;当时我注意到了一些有趣的事情。 他正在合并代码&#xff0c;我的眼睛吸引了此类“ org.apache.log4j.MDC”的注意。 这导致了以下发现&#xff1a; 什么是MDC&#xff1f; MDC代表“ 映射诊…

bzoj1049[HAOI2006]数字序列

1049: [HAOI2006]数字序列 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1813 Solved: 789[Submit][Status][Discuss]Description 现在我们有一个长度为n的整数序列A。但是它太不好看了&#xff0c;于是我们希望把它变成一个单调严格上升的序列。但是不希望改变过多的数&…

具有Aspects的Java中的Mixin –用于Scala特性示例

Scala特征允许将新行为混合到一个类中。 考虑两个特征&#xff0c;可以向JPA实体添加审核和与版本相关的字段&#xff1a; package mvcsample.domainimport javax.persistence.Version import scala.reflect.BeanProperty import java.util.Datetrait Versionable {VersionBea…

前端:HTML

1,web服务的本质 import socketsk socket.socket()sk.bind(("127.0.0.1", 8080)) sk.listen(5)while True:conn, addr sk.accept()data conn.recv(8096)conn.send(b"HTTP/1.1 200 OK\r\n\r\n")conn.secd(b"<h1>Hello world!</h1>"…

动态规划:从新手到专家

作者&#xff1a;Hawstein出处&#xff1a;http://hawstein.com/posts/dp-novice-to-advanced.html前言 本文翻译自TopCoder上的一篇文章&#xff1a; Dynamic Programming: From novice to advanced &#xff0c;并非严格逐字逐句翻译&#xff0c;其中加入了自己的一些理解。水…

小程序 foreach_【第2106期】小程序依赖分析实践

前言这种可视化分析图还是很直观的&#xff0c;很有趣。今日早读文章由自然醒授权分享。正文从这开始~~用过 webpack 的同学肯定知道 webpack-bundle-analyzer &#xff0c;可以用来分析当前项目 js 文件的依赖关系。webpack-bundle-analyzer因为最近一直在做小程序业务&#x…

python----模块

collections---------------------------------------->扩展数据类型 re-------------------------------------------------->正则相关操作&#xff0c;正则 匹配字符串 time----------------------------------------------->时间相关 三种格式&#xff1a;时间戳&…

在MySQL数据库上使用Quartz Scheduler入门

这是一些简单的步骤&#xff0c;可帮助您使用Groovy在MySQL数据库上完全入门Quartz Scheduler。 以下脚本可让您使用外部文件快速尝试不同的Quartz配置设置。 第一步是使用表设置数据库。 假设您已经安装了MySQL&#xff0c;并且有权创建数据库和表。 bash> mysql -u root …

一招搞定css页面布局

如何做出漂亮的页面&#xff1a; 1、 多写页面&#xff0c;多改。 2、 多写页面&#xff0c;多改。 3、 多写页面&#xff0c;多改。 大致的思想步骤&#xff1a; 写页面的时候先规划好大致的分块&#xff0c;无论是用定位或者浮动&#xff0c;首先要确定要应用的场景&#xf…

mysql blob取值_MySQL 数据类型:

MySQL 数据类型&#xff1a;字符型数值型日期时间型内建类型字符型&#xff1a;CHAR, BINARY&#xff1a;定长数据类型&#xff1b;VARCHAR, VARBINARY&#xff1a;变长数据类型&#xff1b;需要结束符&#xff1b;TEXT&#xff1a;TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXTBLOB: …

MySQL 中的三中循环 while loop repeat 的基本用法

-- MySQL中的三中循环 while 、 loop 、repeat 求 1-n 的和-- 第一种 while 循环 -- 求 1-n 的和 /* while循环语法&#xff1a; while 条件 DO循环体; end while; */ -- 实例&#xff1a; create procedure sum1(a int) begindeclare sum int default 0; -- default 是指…

css渲染(二) 文本

一、文本样式 首行缩进  text-indent 首行缩进是将段落的第一行缩进&#xff0c;这是常用的文本格式化效果。一般地&#xff0c;中文写作时开头空两格。[注意]该属性可以为负值&#xff1b;应用于: 块级元素(包括block和inline-block)  <div><p style"text-in…

RTKLIB的主要功能

RTKLIB是全球导航卫星系统GNSS(global navigation satellite system)的标准&精密定位开源程序包&#xff0c;RTKLIB由日本东京海洋大学&#xff08;Tokyo University of Marine Science and Technology&#xff09;的高须知二&#xff08;Tomoji Takasu&#xff09;开发。R…

28岁学python转行_28岁转行程序员,学Java还是Python?码农:想快点月薪过万就选它...

为什么要学Java&#xff1f;Python给人的印象简单是因为我们在用Python的时候&#xff0c;可以直接调用别人已经写好的代码接口就可以&#xff0c;相对于傻瓜模式&#xff0c;Java的许多处理都要原生很多&#xff0c;写的代码可能会多一些&#xff0c;但一旦完成封装&#xff0…

使用SSL和Spring Security保护Tomcat应用程序的安全

如果您看过我的上一个博客&#xff0c;您会知道我列出了Spring Security可以做的十件事 。 但是&#xff0c;在认真开始使用Spring Security之前&#xff0c;您真正要做的第一件事就是确保您的Web应用使用正确的传输协议&#xff0c;在这种情况下为HTTPS –毕竟&#xff0c;没有…

模块 hashlib模块

hashlib模块 提供摘要算法 主要做对比&#xff0c;比较两段代码是否完全一致 不管算法多么不同&#xff0c;摘要功能始终不变&#xff0c; 对同一个字符串进项同一算法摘要得到的值始终不变 MD5值的生成 import hashlib sha1 hashlib.md5() #一定加括号 sha1.update(bytes(a…

css渲染(一) 字体

一、字体属性 1.默认字体系列 chrome/opera:"宋体" firefox:"微软雅黑" safari/IE:Times,"宋体" 2.字体属性 字体类型 font-family  初始化时定义字体类型&#xff0c;如宋体 font-family: arial&#xff0c;“宋体”,“微软雅黑”;   /…