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 NULL n/a 地址不为空
IS NULL n/a 地址不为空
BETWEEN n/a amount between 1113 and 1122
IN n/a city in ("Wuhan", "Beijing")
NOT IN n/a city 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表关联起来,输出结果为:

orderid amount date

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);

返回结果:

customerid amount

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;

MySQL数据库学习笔记相关推荐

  1. linux数据库创建score表,MySQL数据库学习笔记

    MySQL数据库学习笔记phpma (实验环境:Redhat9.0,MySQL3.23.54) 纲要: 一,连接MySQL phpma 二,MySQL管理与授权 三,数据库简单操作 四, 数据库备份 ...

  2. MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  3. MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)...

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  4. 研一寒假MySQL数据库学习笔记(三)

    研一寒假MySQL数据库学习笔记(三) 本节记录数据库高级查询部分的内容,整理于此便于之后回顾. 1. 上一节补充内容 1.1 案例练习 现在有一个员工表.部门表,两张表之间是一个部门多个员工,一个员 ...

  5. 最新、最全、最详细的 MySQL 数据库学习笔记总结(2021最新版)

    数据库是什么 数据库管理系统,简称为DBMS(Database Management System),是用来存储数据的管理系统. DBMS 的重要性 无法多人共享数据 无法提供操作大量数据所需的格式 ...

  6. MySQL数据库学习笔记,知识点和案例整理,期末三天复习完【简单且详细】

    MySQL数据库近三万字学习笔记,超级详细! 文章目录 前言 一.day1 二.day2 三.day3 前言 MySQL数据库知识点和案例总结,非常详细,将近三万字!分成了三天去消化吸收! 一.day ...

  7. Mysql数据库学习笔记[完结]

    一.数据库 1.概述 数据库(database ,简称db)就是用来存储数据和管理数据的仓库 分类: 关系型数据库:指存放的数据之间是有紧密关系的 常见的有:Oracle.MySQL.SQLServe ...

  8. MySQL数据库 学习笔记 零基础入门 面试 整理

    一.MySQL基础篇 1. 数据库技术的基本概念和方法 1.1 数据库基本概念 1] 数据 数据(Data)指对客观事物进行描述并可以鉴别的符号,这些符号是可识别的.抽象的,不仅仅指狭义上的数字,而是 ...

  9. MySQL数据库-学习笔记

    一.MySQL课程内容 1.1 数据库介绍 数据库概念 术语介绍 1.2 MySQL数据库 下载.安装.配置.卸载 MySQL客户端工具的安装及使用 1.3 SQL 结构化查询语言 什么是SQL SQ ...

最新文章

  1. UE5使用MetaHuman构建超现实的角色
  2. Mac zsh not found jupyter notebook
  3. android无法实例化服务,Android:无法实例化类:没有空的构造函数
  4. 2019~2020年终总结
  5. java nodelist 快速排序,【Leetcode】Sort List in java,你绝对想不到我是怎么做的^^我写完过了我自己都觉得好jian~...
  6. 转---SQL与EXCEL交互(导出/导入)
  7. 计算机控制技术汤楠课后答案,西安电子科大版汤楠计算机控制技术6章
  8. 静态html js文件上传,js实现动态添加上传文件页面
  9. HTTP/2 in GO(二)
  10. Mybatis-plus的两种分页插件的配置方式
  11. 项目期复习:JS操作符,弹窗与调试,凝视,数据类型转换
  12. js高级程序设计note
  13. k60的FTM模块:配置电机、编码器、舵机
  14. 解决Github下载速度慢的问题
  15. ubuntu mysql密码忘记了怎么办,ubuntu怎么查看mysql密码
  16. django学习007-MVT的T(模板)的使用
  17. android简易计算,android实现简易计算器
  18. 让软件项目重回主旋律——“Jolt大奖精选丛书”有奖征文
  19. 利用audio PreviewWidget在Scope中来播放音乐
  20. Nessus快速上手-扫描任务

热门文章

  1. html5 判断分享,好程序员HTML5大前端分享之函数篇
  2. 天津科技大学计算机网络,计算机网络PPT(天津科技大学讲稿-张强)第一章英文对照...
  3. java为什么不推荐使用stack_栈和队列的面试题Java实现,Stack类继承于Vector这两个类都不推荐使用...
  4. java 随机 数字 字母组合_java生成随机数字和字母组合
  5. 5s的app显示无法连接服务器,苹果iphone5s手机无法连接App Store问题解决方法汇总...
  6. linux sybase 自动备份,Linux平台下Sybase数据库备份方法分析.doc
  7. 华为畅享10s值得买吗_华为畅享10 Plus值不值得买?首批购买用户评价出炉
  8. android 界面长按,Android 主界面长按创建快捷方式
  9. php四种标量,php的标量数据类型和复合数据类型,php四种标量
  10. 如何正确下载、安装Codeblocks?