数据库同步工具
sqlserver,Mysql数据同步软件

MySQL语句学习

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

SQL对数据库执行查询

SQL可以从数据库中检索数据

SQL可以在数据库中插入新记录

SQL可以更新数据库中的数据

SQL可以从数据库中删除记录

SQL可以创建一个新数据库

SQL可以在数据库中创建新表

SQL可以在数据库中创建存储过程

SQL可以在数据库中创建视图

SQL可以设置表,存储过程和视图的权限

??

SQL是标准的,但是…

SQL是用于访问和操作数据库系统的ANSI标准计算机语言。 SQL语句用于检索和更新数据库中的数据。 SQL可以与数据库程序一起使用,例如MS Access,DB2,Informix,MS SQL Server,Oracle,Sybase和其他数据库系统。

不幸的是,SQL语言有很多不同的版本,但是为了与ANSI标准兼容,它们必须以类似的方式共同支持某些关键字(例如SELECT,UPDATE,DELETE,INSERT,WHERE等)。

注意:除了SQL标准之外,大多数SQL数据库程序都有其自己的私有扩展!

??

选择*?来自 表名

选择DISTINCT( 字段名称 别名 ?来自 表名

在WHERE子句中可以使用以下运算符:

运算符

说明

=

等于

\ lt; \ gt;

不等于

\ gt;

大于

\ lt;

小于

\ gt; =

大于或等于 >

\ lt; =

小于或等于

之间

在一定范围内

喜欢

模糊对应

SQL使用单引号将文本值括起来(大多数数据库系统也接受双引号)。如果是数字值,请不要使用引号。

SELECT * FROM 学生 在哪里 s_name ? =” 赵雷 “;

AND和OR运算符

AND和OR可以在WHERE子语句中组合两个或多个条件。

如果第一个条件和第二个条件都为true,则AND运算符将显示一条记录。

如果仅第一个条件和第二个条件之一成立,则OR运算符将显示一条记录。

查询姓名为赵雷,性别为男性的学生

SELECT * FROM 学生 ?在哪里 s_name ? =” 赵雷 s_sex ? =” 男性 “;

查询姓名是赵雷还是性别是男性

SELECT * FROM 学生 ?在哪里 s_name ? =” 赵雷 s_sex ? =” 男性 “;

查询姓名为赵雷或性别为男性且生日为 的数据 > 1990-12-21

SELECT * FROM 学生 在哪里( s_name ?=” 赵雷 s_sex =” 男性 “)AND s_birth =” 1990-12-21 “;

ORDER BY语句

ORDER BY语句用于根据指定的列对结果集进行排序。

ORDER BY语句默认情况下按升序对记录进行排序。

如果要按降序对记录进行排序,则可以使用DESC关键字。

??

INSERT INTO语句用于在表中插入新行。

语法

插入到 表名 ? VALUES( 值1 值2 ,….)

我们还可以指定要插入数据的列:

插入到 表名 ? (< 第1列 strong>第2列 ,…)值( 值1 值2 ,….)

将数据插入到表中

插入到 学生 值(( ” 10″ ,” “,” 1990-12-21 “,” 女性 “)

将数据插入指定字段

插入到 学生 s_id s_name ?s_birth ?s_sex )值(” 11 “,” 媛媛暖 “,” 1990-12-21 “,” 女性 “)

Update语句用于修改表中的数据。

语法:

UPDATE表名SET列名=新值WHERE列名=某个值

??

更新表中的合格数据

更新 表名 设置 字段名 =” 旧数据 “在哪里 字段名称 =” 新数据 “;

DELETE语句用于删除表中的行。

语法

从表名WHERE列名=值中删除

??

删除学生表单中名称为Page的信息

删除 表名 ?其中 字段名 =” 条件 “;

删除所有行

您可以删除所有行而不删除表。这意味着表的结构,属性和索引是完整的:

从table_name删除

或:

DELETE * FROM table_name

??

MySQL中的limit语句用于分隔数据,通常放在SQL语句的末尾;

类似于MySQL中的模糊查询,在where子句中使用;需要使用通配符;

通配符

说明

而不是一个或多个字符

_

仅替换一个字符

[charlist]

字符列中的任何单个字符

[^ charlist]或[! charlist]

不在字符列中的任何单个字符

IN运算符允许我们在WHERE子句中指定多个值。

查询所有满足条件1和条件2的数据

选择*来自 表名 ?其中 字段名称 ?在(” 条件1 “,” 条件2 “…….)

BETWEEN运算符用于在两个值之间的数据范围内选择值。

BETWEEN运算符选择给定范围内的值。该值可以是数字,文本或日期。

BETWEEN运算符包括在内:它包含开始和结束值,并且开始值必须小于结束值。

??

从表中找出满足条件1和条件2的数据

SELECT * FROM 表名其中字段名?在” 条件1 “和” 条件2 “;

从表中查找不满足条件1和条件2之间条件的数据

SELECT * FROM 表名其中字段名?不在” 条件1 “和” 条件2 “;

??

  1. 内联接:如果表中至少有一个匹配项,则返回行
  2. 左联接:即使右表中没有匹配项,所有行也会从左表返回
  3. 右联接:即使左表中没有匹配项,所有行也会从右表中返回
  4. 完全联接:只要其中一个表中有匹配项,就返回行

SQL JOIN子句用于根据两个或多个表之间的公共字段合并这些表中的行。

简而言之,它是将主表确定为结果集,然后有选择地将其他表的行”连接”到主表结果集。 ?

最常见的JOIN类型:SQL INNER JOIN(简单JOIN)。 SQL INNER JOIN从多个表返回满足JOIN条件的所有行。

查询表1和表2满足条件的所有数据

选择

*

FROM

表1

INNERJOIN? 表2 ?上? 表1对应字段 ? = 表2对应字段

LEFT JOIN关键字返回左表(表1)中的所有行,即使右表(表2)中没有匹配项也是如此。如果右表中没有匹配项,则结果为NULL。

查询表1中所有符合条件的数据,并且还将找到表1中不符合条件的数据

选择

? **

FROM

表1

左加入? 表2 ?上 ? 表1的字段 ? = 表2的字段

RIGHT JOIN关键字返回右表(table2)中的所有行,即使左表(table1)中没有匹配项也是如此。如果左表中没有匹配项,则结果为NULL。

查询表2中所有符合条件的数据,并且还将找到表2中不符合条件的数据

选择

*

FROM

表1

RIGHT JOIN 表2 ?上? 表1字段 = strong>表2字段

UNION运算符用于合并两个或多个SELECT语句的结果集。

请注意,UNION中的每个SELECT语句必须具有相同的列数。列还必须具有相似的数据类型。同时,每个SELECT语句中列的顺序必须相同。

默认情况下,UNION运算符选择不同的值。如果允许重复的值,请使用UNION ALL。

查询限定表中的所有数据,选择默认的一项进行重复数据删除,不重复数据删除选择UNION ALL

SELECT * from

UNION(全部)

SELECT * from

如果数据库不是太深,则在创建库和表方面存在约束,SQL并非如此大量研究

本文从https://www.cnblogs.com/AK2012/archive/2013/01/04/转移2013-0104.html

什么是索引:索引主要分为聚集索引和非聚集索引,索引的主要目的是提高SQL的性能?服务器系统,加快数据查询速度,减少系统响应时间?

聚簇索引存储记录在物理上是连续存在的,而非聚簇索引在逻辑上是连续的,而物理存储不是连续的。就像该字段一样,聚簇索引是连续的,并且a后必须跟b。非聚集索引不是连续的。就像图书馆作者的书一样,它可能在第一层和第十层。还有一点知识点:聚集索引中只能有一个表,而非聚集索引中可以有多个表。

操作说明

使用聚簇索引?

?使用非聚集索引

?外键列

?应该

?应该

?主键列

?应该

?应该

?列通常被分组和排序(顺序?)

?应该

?应该

?返回一定范围内的数据

?应该

?不应该

?少量不同的值

?应该

?不应该

?大量不同的值

?不应该

?应该

?经常更新的列

不是吗?

?应该

?经常修改索引列

?不应该

?应该

?一个或很少几个不同的值

?不应该

?不应该

1)?定义主键的数据列必须被索引。

2)?使用外键定义数据列必须建立索引。

3)?最好为经常查询的数据列建立索引。

4)?对于需要在指定范围内快速或频繁查询的数据列;

5)? WHERE子句中经常使用的数据列。

6)?关键字排序后经常出现的字段?通过,小组?通过不同的方式建立索引。如果建立了复合索引,则索引中字段的顺序必须与这些关键字后面的字段的顺序相同,否则将不使用索引。

7)?对于查询中很少涉及的那些列,请勿为具有更多重复值的列创建索引。

8)?不要为定义为文本,图像和位的数据类型的列创建索引。

9)?避免为经常访问的列创建索引?

9)?限制表上的索引数。对于具有大量更新操作的表,构建索引的数量通常不应超过3,并且最多不超过5。尽管索引提高了访问速度,但是索引过多会影响数据更新操作。

10)?对于复合索引,请根据该字段在查询条件中出现的频率创建索引。在复合索引中,首先根据第一个字段对记录进行排序。对于第一个字段中具有相同值的记录,系统会在第二个字段中对值进行排序,依此类推。因此,只有复合索引的第一个字段出现在查询条件中,才可以使用该索引,因此,应用频率较高的字段(位于复合索引的前面)将使系统最大程度地使用此索引角色。

创建? [独特] [聚集? |? NONCLUSTERED] INDEXindex_name

可以吗? {table_name? |? view_name}? [是吗? [index_property? [,….n]]

说明:

唯一:创建一个唯一索引。

聚集的:?创建一个聚集索引。

NONCLUSTERED:?创建一个非聚集索引。

Index_property:?索引属性。

? UNIQUE索引可以使用聚簇索引结构或非聚簇索引结构。如果未指定索引结构,则使用SQL?服务器系统默认为非群集索引结构。

丢弃?指数? table_name.index_name [,table_name.index_name]

说明:table_name:?索引所在的表的名称。

index_name?:?要删除的索引的名称。

使用系统存储过程:sp_helpindex?查看指定表的索引信息。

执行代码如下:

执行? sp_helpindex? book1;

视图可以看作是在SQL Server上定义的虚拟表。顾名思义,视图是查看数据的另一个入口点。

常规视图本身并不存储实际数据,而只是由SELECT语句组成的查询所定义的虚拟表。

从数据库系统内部,视图由一个或多个表中的数据组成。从数据库系统的外部,视图就像一个表。可以执行的常规操作可以应用于视图。

例如,查询,插入,修改,删除操作等,但是插入,修改,删除等操作实际上是针对原始数据表的操作。

1.视图隐藏了基础表结构,简化了数据访问操作,并且客户端不再需要了解基础表的结构及其之间的关系。

2.视图提供了用于访问数据的统一界面。 (也就是说,一种安全机制允许用户通过视图访问数据,而无需授予用户直接访问基础表的权限)

3,从而增强了安全性,因此用户只能看到视图中显示的数据。

4.视图也可以嵌套,一个视图可以嵌套在另一视图中。

下表列出了MySQL中最重要的内置日期函数:

函数

说明

NOW()

返回当前日期和时间

CURDATE()

返回当前日期

CURTIME()

返回当前时间

DATE()

提取日期或日期/时间表达式的日期部分

EXTRACT()

返回日期/时间的单独部分

DATE_ADD()

将指定的时间间隔添加到日期

DATE_SUB()

从日期中减去指定的时间间隔

DATEDIFF()

返回两个日期之间的天数

DATE_FORMAT()

以不同格式显示日期/时间

日期格式:YYYY-MM-DD

DATETIME格式:YYYY-MM-DD HH:MM:SS

TIMESTAMP格式:YYYY-MM-DD HH:MM:SS

年格式:YYYY或YY

MySQL中的null值是一个相对通用的值,并且也相对容易出错;

在SQL中判断null的主要方法有两种;

使用null来确定该字段为空;

不为空判断字段不为空

在MySQL中,主要有三种类型:文本,数字和日期/时间/时间)类型。

数据类型

说明

CHAR(大小)

保存固定长度的字符串(可以包含字母,数字和特殊字符)。在括号中指定字符串的长度。最多255个字符。

VARCHAR(大小)

保存可变长度的字符串(可能包含字母,数字和特殊字符)。在括号中指定字符串的最大长度。最多255个字符。注意:如果值的长度大于255,则将其转换为TEXT类型。

TINYTEXT

存储最大长度为255个字符的字符串。

文本

存储最大长度为65,535个字符的字符串。

BLOB

用于BLOB(二进制大对象)。存储多达65,535字节的数据。

MEDIUMTEXT

存储最大长度为16,777,215个字符的字符串。

MEDIUMBLOB

用于BLOB(二进制大对象)。最多存储16,777,215字节数据。

LONGTEXT

存储最大长度为4,294,967,295个字符的字符串。

LONGBLOB

对于BLOB(二进制大对象)。最多存储4,294,967,295字节的数据。

ENUM(x,y,z等)

允许您输入可能值的列表。 ENUM列表中最多可以列出65535个值。如果列表中没有插入值,则插入一个空值。

注意:这些值按照您输入的顺序排序。

您可以使用以下格式输入可能的值:ENUM(” X”,” Y “,” Z”)

SET

与ENUM相似,不同之处在于SET最多只能包含64个列表项,而SET最多可以包含可以存储一种选择。

数据类型

说明

TINYINT(大小)

有符号-128至127,无符号0至255。

SMALLINT(大小)

有符号范围-32768至32767,无符号0至65535,大小默认为6。 strong>

MEDIUMINT(大小)

有符号范围-8388608至8386807,无符号范围为0至16777215。默认大小为9

INT(大小)

有符号范围-2147483648至2147483647,无符号范围为0至4294967295。默认大小为11

BIGINT(大小)

有符号范围是-9223372036854775808到922337203685477575807,无符号范围是0到18446744073709551615。默认值大小为20

FLOAT(尺寸,d) /p>

带有浮点小数点的秋天数字。指定在size参数中显示的最大位数。在d参数中指定小数点右边的最大位数。

DOUBLE(大小,d) /p>

具有浮点小数点的大数字。最大位数显示在size参数中。在d参数中指定小数点右边的最大位数。

DECIMAL(大小,d) /p>

存储为字符串的DOUBLE类型允许使用固定的小数点。指定在size参数中显示的最大位数。在d参数中指定小数点右边的最大位数。

注意:以上尺寸代表它不是存储在数据库中的特定长度,例如int(4)不仅能够存储4个长度数字。

实际上,int(大小)占用多少存储空间并不重要。 Int(3),Int(4)和Int(8)均占据磁盘上4个bty的存储空间。除了向用户显示的方式之外,int(M)和int数据类型相同。

示例:

1,int的值为10(指定为零填充)

int(9)显示结果为000000010int(3)显示结果为010

是显示的长度不同,但占用四个字节的空间

数据类型

说明

DATE()

日期。格式:YYYY-MM-DD

注意:支持的范围是从” 1000-01-01″到” 9999-12″-31″

DATETIME()

*日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS

注意:支持的范围是” 1000-01-01 00:00:00″到” 9999-12-31 23:59:59″

TIMESTAMP()

*时间戳。自Unix纪元(” 1970-01-01 00:00:00″ UTC)起,以秒为单位存储TIMESTAMP值。格式:YYYY-MM-DD HH:MM:SS

注意:支持的范围是” 1970-01-01 00:00:01″ UTC改为” 2038-01-09 03:14:07″ UTC

TIME()

时间。格式:HH:MM:SS

注意:支持的范围是从”-838:59:59″到” 838:59:59″

年()

2或4位数字格式的年份。

注意:4位格式允许的值:1901至2155。允许2位格式值:70到69,表示从1970到2069。

未经允许不得转载:数据库同步软件|Mysql数据同步软件|sqlserver数据库同步工具|异构同步 » MySQL语句学习

分享到:更多 ()

syncnavigator 8.6.2 企业版

联系我们联系我们