MySQL数据库学习笔记

MySQL常用语法总结

一.创建Web数据库

1.登陆到数据库

mysql -h hostname -u username -p
mysql -h hostname -u username -D dbname -p

2.创建数据库

CREATE database dbname

3.使用数据库

USE dbname

4.创建数据库表

CREATE TABLE tablename (columns)

5.列的数据

create table customers(
customerid int unsigned not null auto_increment primary key,
name char(50) not null,
address char(100) not null,
city char(30) not null    
);
create table orders
( orderid int unsigned not null auto_increment primary key,customerid int unsigned not null,amount float(6,2),date date not null
);

6.使用SHOW和DESCRIBE来查看数据库

6.1 查看数据库

show databases;

6.2 查看某个数据库表

show tables;

6.2 查看某个数据库表的详细信息(例如customers表)

describe customers;
desc customers;

7.创建索引

CREATE [UNIQUE|FULLTEXT] INDEX index_name ON table_name (index_column_name [(length)] [ASC|DESC], ...) 

二、使用MySQL数据库

1.在数据库中插入数据

INSERT [INTO] table  [(column1, column2, column3, ...)] VALUES (value1, value2, value3, ...);

例如在 customers 表中插入数据:

insert into customers (name, city) values ('lanhaixuan', 'Wuhan');

或者另一种方法:

insert into customers set name = 'wallet', city = 'Wuhan';

再例如在orders表中插入数据:

insert into orders(customerid, amount, date) values(1, 12.00, '2017-11-1');
insert into orders(customerid, amount, date) values(2, 15.00, '2017-11-1');

注意:后面会使用这些数据

2.从数据库中获取数据

 SELECT [options] items [INTO file_details] FROM tables [WHERE conditions][GROUP BY group_type][HAVING where_definition][ORDER BY order_type][LIMIT limit_criteria][PROCEDURE proc_name(arguments)][lock_options];
select name, city from customers;
select * from customers;

' * '代表通配符,获得所有的列

2.1 获取满足条件的数据

select * from customers where city = "Wuhan";
运算符名称例子
=等于customerid=3
>大于amount>60.00
<小于amount<60.00
>=大于或等于amount>=60.00
<=小于或等于amount<=60.00
!=或<>不等于amount!=60.00
IS NOT NULLn/a地址不为空
IS NULLn/a地址不为空
BETWEENn/aamount between 1113 and 1122
INn/acity in ("Wuhan", "Beijing")
NOT INn/acity not in ("Wuhan", "Beijing")
LIKE匹配模式name like ("lan%")
NOT LIKE匹配模式name not like ("walle_")
REGEXP正则表达式name regexp '^lanhaixuan$'

LIKE 使用简单SQL模式匹配, 模式可以由常规文本加上匹配任意数量的字符“%”,和只匹配一个字符的“_”组成。
REGEXP关键字适用于正则表达式匹配。

2.2 从多个表中获取数据

select orders.orderid, orders.amount, orders.date from customers, orders where customers.name = 'lanhaixuan' and customers.customerid = orders.customerid;

该SQL查询使用一个左关联将customers表和orders表关联起来,输出结果为:

orderidamountdate

2.2 分组和合计数据

例如,可以如下计算一个订单总金额的平均值:

select avg(amount) from orders;

输出结果为:

avg(amount)

类似还有 MIN、MAX、SUN等合计函数

要获取customer更详细的信息,可以使用group by子句。例如,按照顾客数分组浏览。

select customerid, avg(amount) from orders group by customerid;

2.3 选择要返回的行

使用LIMIT子句,可以用来返回指定的行。它带有两个参数:起始行号与返回行数

select name from customers limit 1, 2;

2.4 使用子查询

子查询最常见的用法是用一个查询的结果作为另一个查询比较的条件。例如,如果希望找到一个金额最大的订单,可以使用如下所示的查询:

select customerid, amount from orders where amount = (select max(amount) from orders);

返回结果:

customeridamount

3. 更新数据库记录

通常,除了从数据库中获取数据外,我们还希望修改这些数据。可以使用UPDATE语句来完成这个任务
UPDATE语句的常用格式是:

UPDATE [LOW_PRIORITY] [IGNORE] tablename SET column1 = experssion1, column2 = expression2, ... 
[WHERE condition]
[ORDER BY order_criteria]
[LIMIT number]

如果希望修改一行,例如,要更行一个顾客的地址,可以使用以下所示语句:

update customers set address = 'Beijing' where customerid = 2; 

4. 创建后修改表

除了可以更新行,可能还需要改变数据库中表的结构。要实现这个目的,可以使用ALTER TABLE语句。其基本格式为:

ALTER TABLE [IGNORE] tablename alteration [, alteration, ...]

一个常见的情况,特定的列空间没有“足够大”,不能容纳它必须容纳的数据。例如,在 customers 表中,已经允许名称可以达到50个字符。在开始接收一些数据后,我们可能发现一些名称因为太长而被截断了。我们可以通过改变列的数据类型,使其长度为70个字符:

alter table customers modify name char(70) not null;

另外一个经常出现的问题需要新增一列。例如要添加订单表中的税:

alter table orders add tax float(6, 2) after amount;

删除一列也是经常出现的问题。要删除一列,只要加上如下语句即可:

alter table orders drop tax;

4. 删除数据库中的记录

从数据库删除行的操作很简单,可以使用DELETE语句完成,DELETE语句常见格式如下所示:

DELETE [LOW_PRIORITY][QUICK][IGNORE] FROM table 
[WHERE condition]
[ORDER BY order_clos]
[LIMIT number]

如果将上述代码改写为:

delete from table;

所有表中的行都将被删除。比如删除特定的一行:

delete from customers where customerid=1;

LIMIT子句可用于限制实际删除的最大行数

4.1 表的删除

DROP TABLE table;

4.2 数据可删除

DROP DATABASE database;

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

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

相关文章

.NET深入学习笔记(4):深拷贝与浅拷贝(Deep Copy and Shallow Copy)

今天继续利用准备WSE安全开发文章的空闲时间&#xff0c;完善《.NET深入学习笔记》系列&#xff08;基本都是.Net重要的知识点&#xff0c;我都做了详细的总结&#xff0c;是什么、为什么、和怎么实现&#xff09;。想必很多人也接触过这两个概念。做过C的人对深浅拷贝的概念一…

VIM一般模式操作

2019独角兽企业重金招聘Python工程师标准>>> vim介绍 vim和vi几乎是一样的&#xff0c;唯一的区别就是当编辑一个文本时&#xff0c;使用vi不会显示颜色&#xff0c;而使用vim会显示颜色。 vim有三个模式&#xff1a;一般模式&#xff0c;编辑模式&#xff0c;命令模…

stateful set 学习笔记

2019独角兽企业重金招聘Python工程师标准>>> 1、创建pv # cat pv.yaml kind: PersistentVolume apiVersion: v1 metadata:name: task-pv-volumelabels:type: local spec:capacity:storage: 3GiaccessModes:- ReadWriteOncehostPath:path: "/tmp/data" 2、…

自定义控件---重写Listbox实现item图标变换和item点击事件

博客开通有一阵了&#xff0c;就是没有时间写&#xff0c;遗憾啊。&#xff01; 这几天做了个排序的自定义控件&#xff0c;在listbox item里放是button 并支持图标的交替变换 效果如下&#xff1a; 把代码贴上&#xff1a;1using System; 2using System.Collections.…

MySQL初识-架构-安装-初始化-连接-管理工具-数据文件

MySQL架构和结构分析 官方架构图 内部组件结构图 MySQL安装方式 MySQL初始化 MySQL工作模式及常用命令 交互式模式&#xff1a;mysql> 1234567891011121314# 交互式模式下的客户端命令mysql> help # 获取命令帮助 mysql> \? # 同上 mysql> \c # 取消命令执行 mysq…

mdm.Dialogs.promptModal()使用

这是prompt的扩展&#xff0c;提供了更多的功能&#xff0c;比如可以添加其他按钮和图标import mdm.*;mdm.Application.init(this, onInit);function onInit():void {// 启动程序...}quit.addEventListener(MouseEvent.CLICK,quitProgram);function quitProgram(evt:MouseEvent…

Gson的使用,对于不需要html escape的情况的处理

引入&#xff1a; 虽然是小问题&#xff0c;但是我还是需要记录下&#xff0c;我们知道&#xff0c;Google提供了一个Gson框架让我们高效的吧普通对象&#xff08;一般VO为佳&#xff09; 和json字符串之间进行互转。因为转换多数是和浏览器打交道的&#xff0c;所以一般默认的…

SpringBoot安装和创建简单的Web应用

SpringBoot安装 方式一&#xff1a; Eclipese->Help->Eclipse Marketplace ->Finde STS -> Install 注意&#xff1a;安装过程中挺慢&#xff0c;而且可能会报错&#xff0c;报错时需要重复以上步骤&#xff08;重新安装STS后&#xff0c;安装进度接之前的继续进行…

ASP.NET Session 详解

[ASP.NET] Session 详解 开发者在线 Builder.com.cn 更新时间:2008-03-23作者&#xff1a;黑暗凝聚力量&#xff0c;堕落方能自由 来源:CSDN 本文关键词&#xff1a; Web开发 ASP session 详解 本文仅代表作者个人观点&#xff0c;正确与否请读者自行研究&#xff01;阅读本文…

hadoop namenode管理元数据机制

一、简要namenode管理元数据机制&#xff1a; 二、详细namenode管理元数据机制&#xff1a; 三、secondary namenode 合并edits和fsimage&#xff1a; 四、namenode存储元数据细节&#xff1a; 五、checkpoint触发点&#xff1a; 本文转自lzf0530377451CTO博客&#xff0c;原文…

BABOK - 企业分析(Enterprise Analysis)概要

描述 企业分析描述我们如何捕捉、提炼并明晰业务需要&#xff0c;并定义一个可能实现这些业务需要的一个方案范围&#xff0c;它包括问题定义和分析&#xff0c;业务案例开发&#xff0c;可行性研究和方案范围定义 目的 明确业务战略需要和目标&#xff0c;并建议方案范围 任务…

6、EIGRP配置实验之负载均衡

1、实验拓扑 2、负载均衡原理 等价负载均衡&#xff1a;默认情况下EIGRP只支持等价负载均衡&#xff0c;默认支持4条线路的等价负载均衡&#xff0c;可以通过show ip protocols 查看&#xff0c;最大可以支持16条线路的等价负载均衡&#xff0c;可以在EIGRP路由进程下通过maxim…

haproxy+keepalived实现负载均衡及高可用

HAProxy是一个使用C语言编写的自由及开放源代码软件&#xff0c;其提供高性能性、负载均衡&#xff0c;以及基于TCP和HTTP的应用程序代理。相较与 Nginx&#xff0c;HAProxy 更专注与反向代理&#xff0c;因此它可以支持更多的选项&#xff0c;更精细的控制&#xff0c;更多的健…

iOS技术博客:App备案指南

&#x1f4dd; 摘要 本文介绍了移动应用程序&#xff08;App&#xff09;备案的重要性和流程。备案是规范App开发和运营的必要手段&#xff0c;有助于保护用户权益、维护网络安全和社会秩序。为了帮助开发者更好地了解备案流程&#xff0c;本文提供了一份最新、最全、最详的备…

Perl文件读写操作

本文转自 tiger506 51CTO博客&#xff0c;原文链接&#xff1a;http://blog.51cto.com/tiger506/830771&#xff0c;如需转载请自行联系原作者

不用正则表达式,用javascript从零写一个模板引擎(一)

前言 模板引擎的作用就是将模板渲染成html&#xff0c;html render(template,data)&#xff0c;常见的js模板引擎有Pug,Nunjucks,Mustache等。网上一些制作模板引擎的文章大部分是用正则表达式做一些hack工作&#xff0c;看完能收获的东西很少。本文将使用编译原理那套理论来打…

关于批量插入数据之我见(100万级别的数据,mysql)

2019独角兽企业重金招聘Python工程师标准>>> 因前段时间去面试&#xff0c;问到如何高效向数据库插入10万条记录&#xff0c;之前没处理过类似问题&#xff0c;也没看过相关资料&#xff0c;结果没答上来&#xff0c;今天就查了些资料&#xff0c;总结出三种方法&am…

极速理解设计模式系列:6.适配器模式(Adapter Pattern)

四个角色&#xff1a;目标抽象类角色(Target)、目标对象角色(Adapter)、源对象角色(Adaptee)、客户端角色(Client) 目标抽象类角色&#xff08;Target)&#xff1a;定义需要实现的目标接口 目标对象角色&#xff08;Adapter)&#xff1a;调用另外一个源对象&#xff0c;并且转换…

Spark(二): 内存管理

2019独角兽企业重金招聘Python工程师标准>>> Spark 作为一个以擅长内存计算为优势的计算引擎&#xff0c;内存管理方案是其非常重要的模块&#xff1b; Spark的内存可以大体归为两类&#xff1a;execution和storage&#xff0c;前者包括shuffles、joins、sorts和agg…

多播、组播、广播优缺点分析

2019独角兽企业重金招聘Python工程师标准>>> 单播、多播和广播单播”&#xff08;Unicast&#xff09;、“多播”&#xff08;Multicast&#xff09;和“广播”&#xff08;Broadcast&#xff09;这三个术语都是用来描述网络节点之间通讯方式的术语。那么这些术语究…