DataBase(28)
1、数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。
2、SQL通用语法: 四大天王(int、double、varchar、date)
l、 SQL语句可以单行或多行书写,以分号结尾 2、 可使用空格和缩进来增强语句的可读性 3、 MySQL数据库的SQL语句不区分大小写,建议使用大写,例如:SELECT * FROM user。 4、 同样可以使用/**/的方式完成注释
注:varchar是可变字符类型。
3、主键:用于标识当前记录的字段。它的特点是非空,唯一。在开发中一般情况下主键是不具备任何含义,只是用于标识当前记录。
4、开启服务方式 dos窗口敲命令:services.msc 或者 net start mysql 停止操作: net stop mysql
sql语句:
1、创建一个表:
CREATE TABLE zhangwu (
id INT PRIMARY KEY AUTO_INCREMENT, -- 账务ID
name VARCHAR(200), -- 账务名称
money DOUBLE, -- 金额
);
2、插入表记录:
INSERT INTO zhangwu(id,name,money) VALUES (1,'吃饭支出',247);
INSERT INTO zhangwu(id,name,money) VALUES (2,'工资收入',12345);
3、查询指定字段信息:
select id,name from zhangwu;
4、查询表中所有字段:
select * from zhangwu;
5、distinct用于去除重复记录:
select distinct money from zhangwu;
6、别名查询,使用的as关键字,as可以省略:
表别名格式:
select * from 表名 as 别名;
或
select * from 表名 别名;
列别名格式:
select 字段名 as 别名 from 表名;
或
select 字段名 别名 from 表名; 表别名:
select * from zhangwu as zw;
列别名:
select money as m from zhangwu;
或
select money m from zhangwu;
注:别名可以给表中的字段,表设置别名。 当查询语句复杂时,使用别名可以极大的简便操作。
条件查询:
格式 :select 字段 from 表名 where 条件
举个栗子:查询所有吃饭支出记录
SELECT * FROM zhangwu WHERE name = '吃饭支出';
7、创建数据表和字段的技巧,假如表名叫users,那么创建字段(用户编号,用户姓名,用户地址)就用表名的首字母+字段的英文来创建,即:uid、uname、uaddress。
8、将编号列设置为主键约束,来保证列的数据唯一性,非空性。数据库有一个人性化设计,让主键列数据实现自动增长。
9、alter table biao1 + add 是追加新字段 ,modify 是修改某字段的数据类型,而change是修改某字段的名字 和数据类型。
10、修改表结构:
CREATE TABLE biao1(
bid INT PRIMARY KEY AUTO_INCREMENT,
bname VARCHAR(20),
baddress VARCHAR(200) );/*创建数据表*/
ALTER TABLE biao1 ADD bhobby VARCHAR(200);/*表追加字段*/
ALTER TABLE biao1 MODIFY bhobby INT; /*改字段数据类型*/
ALTER TABLE biao1 CHANGE bhobby btel INT;/*改字段名字和数据类型*/
ALTER TABLE biao1 DROP btel;/*表删除某字段*/
RENAME TABLE biao1 TO newbiao1;/*修改表名*/
DESC newbiao1;/*查看表结构*/
SHOW TABLES; /*查看所有表*/
DROP TABLE users;/*删除数据表*/
11、添加数据:注意问题(主键,字符串类型用单引号)
CREATE TABLE product(
-- 主键列,自动增长
pid INT PRIMARY KEY AUTO_INCREMENT,
-- 商品名字,可变长度,非空
pname VARCHAR(100) NOT NULL,
-- 商品价格,double类型
price DOUBLE
)
12、插入商品数据的几种方式:
INSERT INTO product (pname,price) VALUES ('笔记本',4399.08);
INSERT INTO product (pname,price) VALUES
('日内瓦',299.08),
('苍老师',99.08);
13、更新数据:修改条件的几种方式:
UPDATE product SET price = 100,pname='黑白电视' WHERE pid=6;
UPDATE product SET price = 2000 WHERE pid=2 OR pid=7;
UPDATE product SET price = 1431.00 WHERE pid IN(1,3,4);
UPDATE product SET price = 998.00 WHERE pid NOT IN (1);
14、命令行(GBK)乱码现象,select后汉字会乱码显示,而mysql安装的字符编码是utf-8 ,解决方法: dos输入 :set names 'gbk';
15、数据查询:
CREATE TABLE zhangwu (
id INT PRIMARY KEY AUTO_INCREMENT, -- 账务ID
zname 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 zname,zmoney FROM zhangwu;
SELECT * FROM zhangwu;
SELECT zname FROM zhangwu; /*
查询数据去重
*/
SELECT DISTINCT zname FROM zhangwu; /*
查询重新命名列
*/
SELECT zname AS 'name' FROM zhangwu; /*
查询数据中,直接进行数学运算
列对数字进行计算
*/
SELECT(1+1);
SELECT zname,zmoney+1000 AS 'zmoneySum' FROM zhangwu;
SELECT zmoney FROM zhangwu WHERE zmoney>1000; SELECT zmoney FROM zhangwu WHERE zmoney>=2000 AND zmoney<=5000;
SELECT zmoney FROM zhangwu WHERE zmoney BETWEEN 2000 AND 5000; SELECT zmoney FROM zhangwu WHERE zmoney=1000 OR zmoney=3500 OR zmoney=5000;
SELECT zmoney 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 NULL;
SELECT * FROM zhangwu WHERE NOT (zname IS NULL);
SELECT * FROM zhangwu WHERE zname IS NULL; /*
查询账务表,价格进行升序[asc]默认 /降序[desc]
*/
SELECT * FROM zhangwu ORDER BY zmoney;
SELECT * FROM zhangwu ORDER BY zmoney DESC;
SELECT * FROM zhangwu WHERE zname LIKE '%支出%' ORDER BY zmoney DESC; /*
使用聚合函数查询计算。总记录数
*/
SELECT COUNT(*) AS 'count' FROM zhangwu; /*
使用聚合函数统计所有支出的总金额
*/
SELECT SUM(zmoney) FROM zhangwu WHERE zname LIKE '%支出%';
/*
使用聚合函数获取最大值/最小值
*/
SELECT MAX(zmoney) FROM zhangwu;
/*
使用聚合函数获取平均值
*/
SELECT AVG(zmoney) FROM zhangwu;
/*
分组查询
having和where的区别在于having是分组后对数据进行过滤,而where是分组前过滤
*/
SELECT zname,SUM(zmoney) AS 'getsum' FROM zhangwu WHERE zname LIKE '%支出%'
GROUP BY zname
ORDER BY getsum DESC; SELECT SUM(zmoney) AS 'getsum',zname FROM zhangwu WHERE zname LIKE '%支出%'
GROUP BY zname HAVING getsum>5000;
;
DataBase(28)的更多相关文章
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(28)-系统小结
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(28)-系统小结 我们从第一节搭建框架开始直到二十七节,权限管理已经告一段落,相信很多有跟上来的园友,已经 ...
- 全网最详细的Windows系统里Oracle 11g R2 Database(64bit)安装后的初步使用(图文详解)
不多说,直接上干货! 前期博客 全网最详细的Windows系统里Oracle 11g R2 Database(64bit)的下载与安装(图文详解) 命令行方式测试安装是否成功 1) 打开服务(cm ...
- ajax简单后台交互-我们到底能走多远系列(28)
我们到底能走多远系列(28) 1,扯淡 单身的生活,大部分时间享受自由,小部分时间忍受寂寞. 生活有时候,其实蛮苦涩,让人难以下咽.那些用岁月积累起来的苦闷,无处宣泄,在自己的脑海里蔓延成一片片荆棘, ...
- Windows Phone开发(28):隔离存储B
原文:Windows Phone开发(28):隔离存储B 上一节我们聊了目录的操作,这一节我们继续来看看如何读写文件. 首先说一下题外话,许多朋友都在摇摆不定,三心二意,其实这样的学习态度是很不好的, ...
- 全网最详细的Windows系统里Oracle 11g R2 Database(64bit)的完全卸载(图文详解)
不多说,直接上干货! 前期博客 全网最详细的Windows系统里Oracle 11g R2 Database(64bit)的下载与安装(图文详解) 若你不想用了,则可安全卸载. 完全卸载Oracle ...
- Qt 学习之路 2(28):坐标系统
Qt 学习之路 2(28):坐标系统 豆子 2012年11月25日 Qt 学习之路 2 59条评论 在经历过实际操作,以及前面一节中我们见到的那个translate()函数之后,我们可以详细了解下 Q ...
- Flutter学习笔记(28)--使用第三方jar包
如需转载,请注明出处:Flutter学习笔记(28)--使用第三方jar包 1.打开一个Flutter项目,点击编码窗口右上角的Open for Editing in Android Studio,这 ...
- [易学易懂系列|rustlang语言|零基础|快速入门|(28)|实战5:实现BTC价格转换工具]
[易学易懂系列|rustlang语言|零基础|快速入门|(28)|实战5:实现BTC价格转换工具] 项目实战 实战5:实现BTC价格转换工具 今天我们来开发一个简单的BTC实时价格转换工具. 我们首先 ...
- leecode刷题(28)-- 二叉树的前序遍历
leecode刷题(28)-- 二叉树的前序遍历 二叉树的前序遍历 给定一个二叉树,返回它的 前序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 思路 ...
随机推荐
- 数据库——MySQL及安装
what's the MySQL MySQL是一个关系型数据库管理系统,MySQL 是目前最流行的关系型数据库管理系统之一,在 WEB 应用方面MySQL是最好的 RDBMS (Relational ...
- Redis入门到高可用(五)—— 单线程
一.单线程为何这么快 1)绝大部分请求是纯粹的内存操作(非常快速) 2)采用单线程,避免了不必要的上下文切换和竞争条件 3)非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框 ...
- su - 和su的区别
su root和su - root: su只是切换了root身份,但Shell环境仍然是普通用户的Shell:而su -连用户和Shell环境一起切换成root身份了 推荐使用su - .
- Spark MLlib之水塘抽样算法(Reservoir Sampling)
1.理解 问题定义可以简化如下:在不知道文件总行数的情况下,如何从文件中随机的抽取一行? 首先想到的是我们做过类似的题目吗?当然,在知道文件行数的情况下,我们可以很容易的用C运行库的rand函数随机的 ...
- Marathon自动扩缩容(marathon-lb-autoscale)
我们在服务里面创建如下的应用(以下是创建完复制过来的json): { "id": "/nginxtest", "cmd": null, &q ...
- java获取请求的url地址
1.获取全路径request.getRequestURL(); //得到http://localhost:8888/CRM/loginController/login 2.获取协议名和域名reques ...
- 20165321 2017-2018-2《Java程序设计》课程总结
每周作业链接汇总 预备作业1:20165321 我期望的师生关系 预备作业2:20165321 学习基础与C语言学习心得 预备作业3:20165321预备作业3:Linux安装及命令入门 第一周作业: ...
- 软件测试常用Linux命令
有些技能可以事半功倍,有些命运掌握在我们手中.熟练的掌握和使用这些命令可以提高工作效率,并且结合这些命令对测试过程中遇到的问题进行一些初步的定位. 1 目录与文件操作 1.1 ls(初级) 使用权限: ...
- iOS 设计模式-NSNotificationCenter 通知中心
通知介绍 每一个应用程序都有一个通知中心(NSNotificationCenter)实例,专门负责协助不同对象之间的消息通信 任何一个对象都可以向通知中心发布通知(NSNotification),描述 ...
- Spring+SpringMVC+MyBatis整合配置
前端控制器 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version=& ...