mysql 语句块语法_MySQL ------ MySQL常用语句的语法 (三十四)

MySQL常用的语句语法

注意:1、 | 符号用来指出几个选中中的一个,因此NULL | NOT NULL 表示给出null 或 not null

2、包含在方括号中的关键字或子句是可选的(如 [like this])3、既没有列出所有的MySQL语句,也没有列出每一条子句和选项

4、大写的表示 MySQL语法关键字

一、命令行指令:

1、启动MySQL

net start mysql

2、连接与断开服务器

mysql -h 地址 -P 端口 -u 用户名 -p 密码

二、数据库操作

1、查看当前数据库

select database();

2、显示当前时间、用户名,数据库版本

select now(),user(),version();

3、创建库

create database [if not exists] 数据库名 数据库选项

其中数据库选项有

--选择字符集

CHARACTER SETcharset_name--校对规则

COLLATE collation_name

4、查看已有库

show databases[like 'pattern']

5、查看当前库信息

show create database 数据库名

6、修改库的选项信息

alter database 数据库名选项信息

7、删除库

drop database[if exists] 数据库名

三、表操作

1、CREATE TABLE

create table 用于创建新数据库表,更新已存在的表结构使用 alter table ,constraints 表示约束

CREATE TABLEtable_name

(column datatype [NULL | NOT NULL] [CONSTRAINTS],column datatype [NULL | NOT NULL] [CONSTRAINTS],

···

);

相对复杂的

create [temporary] table [if not exists] [库名.] 表名 (表的结构定义)[表选项]

其中 temporary 表示临时表,会话结束时表自动消失

注意:

a、每个字段必须要有数据类型,最后一个字段后不能有逗号

b、对于字段的定义:

字段名 数据类型 [NOT NULL|NULL] [DEFAULT default_value][AUTO_INCREMENT] [UNIQUE [KEY]|[PRIMARY] KEY] [COMMENT 'string']

c、表选项:

字符集

CHARSET = charset_name

如果表没设定,使用数据库字符集

存储引擎

ENGINE = engine_name

表在管理数据时,往往采用不同的数据结构,结构不同会导致处理方式、提供特性操作等也不同

常见的存储引擎:InnDB、MyISAM、Memory/Heap、BDB、Merge、Example、CSV、MaxDB、Archive

不同的存储引擎在保存表的结构和数据时常采用不同的方式

MyISAM 表文件含义: .frm 表定义, .MYD  表数据, .MYI 表索引

InnoDB 表文件含义: .frm 表定义、表空间数据和日志文件

--显示存储引擎的状态信息

SHOW ENGINES--显示存储引擎的日志或状态信息

SHOW ENGINES 引擎名 {LOGS| STATUS}

2、查看所有表

SHOW TABLES[LIKE 'pattern']SHOW TABLESFROM 表名

3、查看表结构

SHOW CREATE TABLE表名DESC 表名 / DESCRIBE 表名 / EXPLAIN 表名 /

SHOW COLUMNS FROM 表名 [LIKE 'pattern']SHOWTABLE STATUS [FROM db_name] [LIKE 'pattern']

4、ALTER TABLE

alter table 用来更新已存在表的模式,为了创建新表,应该使用create table,constrains 表示约束

ALTER TABLEtablename

(ADD column datatype [NULL | NOT NULL] [CONSTRAINTS],CHANGE column columns datatype [NULL| NOT NULL] [CONSTRAINTS],DROP column,

······

);

a、修改表本身选项

ALTER TABLE 表名 表名的选项

b、对表进行重命名

RENAME TABLE 原表名 TO 新表名

c、修改表的字段结构

ALTER TABLE 表名 操作名

有如下操作名

--增加字段

ADD [COLUMN]字段名--创建主键

ADD PRIMARY KEY(字段名)--创建唯一索引

ADD UNIQUE [索引名](字段名)--创建普通索引

ADD INDEX [索引名](字段名)--删除字段

DROP [COLUMN]字段名--支持对字段属性进行修改

MODIFY [COLUMN]字段名 字段属性--支持对字段名进行修改

CHANGE [COLUMN]原字段名 新字段名 字段属性--删除主键

DROP PRIMARY KEY

--删除索引

DROP INDEX索引名--删除外键

DROP FOREING KEY 外键

5、删除表

DROP TABLE [if exists] 表名 ...

6、清空表数据

TRUNCATE [TABLE] 表名

7、复制表结构

CREATE TABLE 表名 LIKE 要复制的表名

8、复制表结构和数据

CREATE TABLE 表名 [AS] SELECT * FROM 要复制的表名

四、数据操作

1、INSERT

insert 给表增加一行,或多行

INSERT INTO table_name [(column,···)]

VALUES(values,···);--INSERT INTOtable_name[(column,···)]

VALUES(values,···),

(values,···),

···

(values,···);

insert select 插入select 的结果到一个表

INSERT INTO table_name [(columns,···)]

SELECT columns,··· FROMtable_name,···[WHERE ···];

注意:

如果要插入的值列表包含所有字段并且顺序一致,则可以省略字段列表,

可以同时插入多条记录

字段列表可以用 “*”代替表示所有字段

2、DELETE

delete 从表中删除一行或多行

DELETE FROM table_name [WHERE ···] ;

没有条件子句,会删除所有数据

3、UPDATE

update 更新表中一行或多行

UPDATE table_name SET column_name =value,···[WHERE ···];

五、字符集编码

MySQL,数据库,表,字段均可设置编码

--数据编码与客户端编码不需一致--查看所有字符集编码项

SHOW VARIABLES LIKE 'character_set_%'

--客户端向服务器发送数据时使用的编码

character_set_client--服务器端将结果返回给客户端时使用的编码

character_set_results--连接层编码

character_set_connection

注意:

--设置编码

SETNAMES GBK;--相当于完成以下三个设置

SET 变量名 =变量值

setcharacter_set_client=gbk;

setcharacter_set_results=gbk;

setcharacter_set_connection= gbk;

六、查询语句

1、SELECT

select用于从一个或多个表(视图)中 检索数据

SELECT columns_name, ··· FROMtable_name, ···[WHERE ···],[UNION ···],[GROUP BY ···],[HAVING ···],[ORDER BY ···];

详解:

select [all | distinct] select_expr from ->where->group by[合计函数] ->having->order by ->limit

其中

1.1、select_expr

a、计算公式、函数调用、字段也是表达式

如:select 12+11,now(),name from tb_obge;

b、使用as 关键字为每个列设定别名,适用于简化列标识,避免多个列标识符重复。

如:select sheng_shi_xian as address from tb;

1.2、 from 子句

用于标识查询来源

a、使用 as 关键字为表起别名

--列如

select * from tb_obge1 as t1,tb_obge2 as t2;

b、from 子句后可以同时出现多个表。多个表会横向叠加到一起,而数据会形成一个笛卡尔积

就是下面的意思

7283eac720c13fa98af9e255087ff3fd.png

--如:

select * from tb_R,tb_S;

c、where 子句

用于从from 中获得的数据源中进行筛选。1为真,0为假,表达式由运算符和运算数组成

d、group by子句

group by 字段/ 别名 [排序方式]

分组后会进行排序,升序:ASC,降序 DESC

与group by子句常配合使用的聚合函数有--返回不同的非 NULL值数目,如count(*),count(字段)。

count

--求和

sum

--求最小值

mim--求最大值

max

--求平均值

avg

--返回带有来自一组的连接的非NULL 值的字符串结果,为组内字符串连接

group_concat

e、having 子句(条件子句)

与where 功能、用法相同、只是执行时机不同。where在开始时执行数据检测,对原数据进行过滤。having 对筛选出的结果进行再次过滤,where 不可以使用聚合函数。一般需要用到聚合函数才会用having。SQL 标准要求having子句必须引用group by 子句中的列或用于聚合函数中的列。

f、order by 子句(排序子句)

--支持对多个字段排序,升序ASC ,降序 DESC

order by 排序字段/别名排序方式[,排序字段/别名排序方式]...

g、limit 子句(限制结果集 子句)

仅对处理好的结果进行数量限制。将处理好的结果看作是一个集合,按照记录的现后顺序,索引从 0 开始

--limit 获取条数 其中,省略第一个参数,表示索引从 0 开始。

limit 起始位置,获取条数

h、distinct 选项

用于去除重复记录

2、多表联结查询

2.1、UNION

建议对每个select查询加上小括号。需要各select 查询的字段数量一样,即每个select 查询的字段列表(数量、类型)应一致,因为结果中的字段名以第一条select 语句为准。

--将多个select 查询的结果组合成一个结果集合

select ...union [ALL | DISTINCT] selelct ...

默认为distinct 方式,即所有返回的行都是唯一的。

2.2、子查询(需要用括号括起来)

a、from

from 后要求是一个表,必须给子查询结果取个别名,以简化每个查询内的条件。

--如:

select * from (select * from tb where id>0) as subfrom where id>1;

b、where

子查询返回一个值,不需要给子查询取别名

--如:

select * from tb where age =(select max(age) from tb)

c、列子查询

使用in 或 not in 子查询,查询结果返回单列

使用exists 和 not exists条件,返回1或0 ,常用于判断

--如:

select column1 from tb1 where exists (select * from tb2);

2.3、join 连接查询

将多个表的字段进行连接,可以指定连接条件。

a、内连接(inner join)

默认就是内连接,可省略inner。

只有数据存在时才能发送连接请求,即连接结果不能出现空行。

ON 表示连接条件,其条件表达式与 where 类似。

b、交叉连接(cross join)

没有条件的内连接。

--如:

select * from tb1 cross join tb2;

c、外连接(outer join)

如果数据不存在,也会出现在连接的结果中。

主要分为:左外连接和右外连接

左外连接(left outer join): 如果数据不存在,左表记录会出现,而右表以null 填充

右外连接(right outer join):如果数据不存在,右表记录会出现,而左表以null 填充

七、其他常用语句

1、CREATE INDEX

create index 用于在一个或多个列上创建索引

CREATE INDEX indexname ON tablename(column [ASC | DESC],·······)

2、CREATE PROCEDURE

create procedure 用于创建存储过程,常和delimiter一块用,parameters 表示参数列表

CREATE PROCEDURE procedure_name([parameters])BEGIN······END;

3、CREATE USER

create user 用于向系统中添加新的用户账号

CREATE USER user_name [@hostname] [IDENTIFIED BY [PASSWORD] 'password'];

4、CREATE VIEW

create view 用来创建一个或多个表上的新视图

CREATE [OR REPLACE] VIEWview_nameAS

select ··· ;

5、DROP

drop 永久地删除数据库对象(表、视图、索引、存储过程,触发器,用户等)

DROP DATABASE [TABLE | VIEW | INDEX | PROCEDURE | TRIGGER | USER] item_name;

6、事务

6.1、COMMIT

commit 用来将事务处理写到数据库

COMMIT ;

6.2、ROLLBACK

rollback 用于撤销一个事务处理块

ROLLBACK [TO savepoint_name];

6.3、SAVEPOINT

savepoint 为使用rollback 语句设立保留点

SAVEPOINT sql;

6.4、START TRANSACTION

start transaction 表示一个新的事务处理开始

START TRANSACTION;

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

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

相关文章

图的广度优先算法+遍历

图解 代码实现 package com.atguigu.graph;import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList;/*** 创建人 wdl* 创建时间 2021/4/2* 描述*/ public class Graph {private ArrayList<String> vertexList;//存储顶点集合private int[][…

.Net异步编程知多少

1. 引言 最近在学习Abp框架&#xff0c;发现Abp框架的很多Api都提供了同步异步两种写法。异步编程说起来&#xff0c;大家可能都会说异步编程性能好。但好在哪里&#xff0c;引入了什么问题&#xff0c;以及如何使用&#xff0c;想必也未必能答的上来。 自己对异步编程也不是很…

指纹识别开发1.0

在不久之前&#xff0c;用java和C#分别开发了个人脸识别&#xff0c;感觉挺不错的&#xff0c;于是脑袋一发热&#xff0c;想了想能不能搞个指纹识别&#xff0c;答案当然是能&#xff0c;那么问题来了&#xff0c;在人脸识别的时候可以借助自带摄像头提取你的face&#xff0c;…

DFS VS BFS

实际案例 代码实现 package com.atguigu.graph;import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList;/*** 创建人 wdl* 创建时间 2021/4/2* 描述*/ public class Graph {private ArrayList<String> vertexList;//存储顶点集合private in…

CLR运行时细节 - Method Descriptor

方法描述符:MethodDesc 运行时用来描述类型的托管方法,它保存在方法描述桶(MethodDescChunk)内;方法描述符保存了方法在运行时的一些重要信息:是否JIT编译;是否有方法表槽(决定了方法入口是跟在方法描述符(MethodDesc)后还是在方法表(MethodTable)后面);距离MethodDescChunk的索…

2015蓝桥杯省赛---java---B---3(三羊献瑞)

题目 三羊献瑞 思路分析 由于是填空题&#xff0c;没有时间和内存的要求&#xff0c;所以看到这个题&#xff0c;第一想法就是暴力破解&#xff0c;当然了&#xff0c;怎么快就怎么做。 由于 "三"是数字的首位&#xff0c;低位的数字进位后必然为1&#xff0c;所…

mysql common是什么_MySQL common_schema简介

common_schema为MySQL提供了查询脚本&#xff0c;分析并且信息化的视图和一个函数库&#xff0c;以便更容易的管理和诊断。它引入的一些基于SQL的工具简common_schema的简介&#xff1a;Shlomi Noach 的common_schema项目()是一套针对服务器脚本化和管理的强大的代码和视图。co…

数据库权限分配探讨

上周&#xff0c; 有位朋友给我提出了这样的需求&#xff1a;区分用户访问数据库的权限。顺便总结了下有如下要求&#xff1a; 某个用户查询所有数据库的权限 某个用户只有备份数据库的权限 给一个用户只能查看指定数据库的权限 给一个用户只有某个表的权限 要进行以上任务&…

2015蓝桥杯省赛---java---B---6(加法变乘法)

题目 加法变乘法 思路分析 两个算式进行相减操作 代码实现 package com.atguigu.lanqiao;public class Main { // 简单枚举public static void main(String[] args) {for (int i 1; i < 46; i) {for (int j i 2; j < 48; j) {if (i * (i 1) - (i i 1) j * (…

DI 之Spring更多DI的知识

转载自 【第三章】 DI 之 3.3 更多DI的知识 ——跟我学spring3 3.3.1 延迟初始化Bean 延迟初始化也叫做惰性初始化&#xff0c;指不提前初始化Bean&#xff0c;而是只有在真正使用时才创建及初始化Bean。 配置方式很简单只需在<bean>标签上指定 “lazy-init” 属性值…

Microsoft发布新工具,简化JavaScript Web应用的创建

Microsoft发布了一系列工具用于快速生成基于JavaScript的Web应用&#xff0c;这些工具包含了dotnet new和对Node.js的巧妙运用。 dotnet new命令是.NET Core工具的一部分&#xff0c;它用简单的命令行语法创建&#xff08;spin up&#xff09;新项目。现在新工具已成为ASP.NET …

2015蓝桥杯省赛---java---B---7(牌型种数)

题目 牌型种数 思路分析 递归进行实现&#xff0c;弄好终止条件&#xff0c;牌的数目等于13 代码实现 package com.atguigu.lanqiao;public class Main { // 简单枚举private static int ans;public static void main(String[] args) {f(0, 0);System.out.println(ans);}…

CLR运行时细节 - 继承多态的实现

关于多态不多解释了,在运行时决定和调用具体的实现,是面向对象的基础 设计模式的基础.准备把继承多态和接口多态分开,因为从CLR实现的角度继承多态相比于接口多态要简单得多,也更容易理解,本篇只讨论继承多态, .NET Framework 2.0 和 4.0 这两个版本在实现上稍微有点区别(这里先…

2015蓝桥杯省赛---java---B---8(饮料换购)

题目 饮料换购 饮料换购乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊C型饮料&#xff0c;凭3个瓶盖可以再换一瓶C型饮料&#xff0c;并且可以一直循环下去&#xff0c;但不允许赊账。请你计算一下&#xff0c;如果小明不浪费瓶盖&#xff0c;尽量地参加活动&#xff0c;那么…

python123测验9程序题_python程序设计实验二

Python程序设计实验安徽工程大学班级&#xff1a;物流191 姓名&#xff1a;许岚岚 学号&#xff1a;3190505110日期&#xff1a;2020年3月21日指导教师&#xff1a;修 宇实验二 顺序结构程序设计(验证性实验)(二学时)【实验目的】(1)掌握数据的输入输出的方法&#…

Rider IDE恢复了对.NET Core调试的支持

近期发布的JetBrain的Rider IDE&#xff08;EAP17&#xff09;移除了对.NET Core调试支持。该功能与NuGet的一个软件包在许可上存在冲突&#xff0c;而EAP17使用NuGet提供的.NET Core项目调试功能&#xff0c;所以必须要移除该功能。为此&#xff0c;JetBrains迅速推出了Rider …

2016蓝桥杯省赛---java---B---1(煤球数目)

题目 煤球数目 思路分析 代码实现 package com.atguigu.lanqiao;import java.util.Scanner;public class Main { // 简单枚举public static void main(String[] args) { // 171700int pre 1;int plus 2;long sum 1;for (int k 2; k < 100; k) {sum (pre plus); //…

vue 多页面多模块分模块打包 分插件安装_Vue渲染方式

Vue中的渲染方式总结可分四种:原有模板语法&#xff0c;挂载渲染使用render属性&#xff0c;createElement函数直接渲染使用render属性&#xff0c;配合组件的template属性&#xff0c;createElement函数渲染使用render属性&#xff0c;配合单文件组件&#xff0c;createElemen…

零配置 之 Spring注解实现Bean定义

转载自 零配置 之 12.3 注解实现Bean定义 ——跟我学spring3 12.3 注解实现Bean定义 12.3.1 概述 前边介绍的Bean定义全是基于XML方式定义配置元数据&#xff0c;且在【12.2注解实现Bean依赖注入】一节中介绍了通过注解来减少配置数量&#xff0c;但并没有完全消除在XML…

开源库 Natasha2016 ,让IL编程跑起来

背景&#xff1a; IL编程在普通的程序员的代码里几乎不会出现&#xff0c;但从Json.net、Dapper、Asp.net等等开源项目都体现出了IL编程的重要性。 在IL编程的时候&#xff0c;上百行甚至上千行的IL代码实在让人头大&#xff0c;调试不方便不说&#xff0c;IL编程的逻辑也是不同…