W3Cshool中的mysql命令说明及用法。转载自W3school

Mysql

 

PS:如果想从两种类似的表中查询出来将结果合并为一列数据时不能使用Join,而是用Union 

例如:(select videoUrl as fileUrl,videoName as fileName, fileId as fileId from 

znkt_file_bind_video where fileId=?) UNION (select imageUrl as fileUrl,

imageName as imageName,fileId as fileId from znkt_file_bind_image WHERE fileId=?)

Tips:truncate table table_name 快速的清空一张表,比逐条删除要快很多。不会引起mysql 死锁;

1.SQL SELECT DISTINCT 语句

KeyWords 去重,

2.SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC

KeyWords 排序,二次排序,多条件排序

3.SELECT TOP 50 PERCENT * FROM Persons

KeyWords 批量,百分比,前百分之

4.SELECT * FROM Persons WHERE City LIKE '%lon%'

KeyWords 通配符,字段包含,含糊查询

扫描二维码关注公众号,回复: 1129060 查看本文章

%java *的作用类似,比如%lon 意思是lon左侧什么都可以但右侧不允许有。

SQL 通配符

在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。

SQL 通配符必须与 LIKE 运算符一起使用。

在 SQL 中,可使用以下通配符:

通配符

描述

%

替代一个或多个字符

_

仅替代一个字符

[charlist]

字符列中的任何单一字符

[^charlist]

或者

[!charlist]

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

现在,我们希望从上面的 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons

WHERE City LIKE '[ALN]%'

如果不希望包含则为'[!ALN]%'

SQL IN 语法

KeyWords 多条件

现在,我们希望从上表中选取姓氏为 Adams 和 Carter 的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons

WHERE LastName IN ('Adams','Carter')

6.BETWEEN 操作符

KeyWords ...之间,大于..且小于

操作符 BETWEEN .如需以字母顺序显示介于 "Adams"(包括)和 "Carter"(不包括)之间的人,请使用下面的 SQL

SELECT * FROM PersonsWHERE LastNameBETWEEN 'Adams' AND 'Carter'

BETWEEN ..AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。

 

重要事项:不同的数据库对 BETWEEN...AND 操作符的处理方式是有差异的。某些数据库会列出介于 "Adams" 和 "Carter" 之间的人,但不包括 "Adams" 和 "Carter" ;某些数据库会列出介于 "Adams" 和 "Carter" 之间并包括 "Adams" 和 "Carter" 的人;而另一些数据库会列出介于 "Adams" 和 "Carter" 之间的人,包括 "Adams" ,但不包括 "Carter" 

如需使用上面的例子显示范围之外的人,请使用 NOT 操作符:

SELECT * FROM PersonsWHERE LastNameNOT BETWEEN 'Adams' AND 'Carter'

 

7.SQL Alias(别名)

KeyWords 别名 实例 简写 方便

SQL Alias

表的 SQL Alias 语法

SELECT column_name(s)FROM table_nameAS alias_name

列的 SQL Alias 语法

SELECT column_name AS alias_nameFROM table_name

Alias 实例: 使用表名称别名

假设我们有两个表分别是:"Persons" 和 "Product_Orders"。我们分别为它们指定别名 "p" 和 "po"

现在,我们希望列出 "John Adams" 的所有定单。

我们可以使用下面的 SELECT 语句:

SELECT po.OrderID, p.LastName, p.FirstNameFROM Persons AS p, Product_Orders AS poWHERE p.LastName='Adams' AND p.FirstName='John'

不使用别名的 SELECT 语句:

SELECT Product_Orders.OrderID, Persons.LastName, Persons.FirstNameFROM Persons, Product_OrdersWHERE Persons.LastName='Adams' AND Persons.FirstName='John'

 

8.SQL JOIN

KeyWords 表表连接,左连接,右连接,(与ON同时使用)

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM PersonsINNER JOIN OrdersON Persons.Id_P = Orders.Id_PORDER BY Persons.LastName

 

不同的 SQL JOIN

除了我们在上面的例子中使用的 INNER JOIN(内连接),我们还可以使用其他几种连接。

下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。

<!--[if !supportLists]-->· <!--[endif]-->JOIN: 如果表中有至少一个匹配,则返回行

<!--[if !supportLists]-->· <!--[endif]-->LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行

<!--[if !supportLists]-->· <!--[endif]-->RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行

<!--[if !supportLists]-->· <!--[endif]-->FULL JOIN: 只要其中一个表中存在匹配,就返回行

9.SQL UNION 操作符

KeyWords 合并

SELECT column_name(s) FROM table_name1UNIONSELECT column_name(s) FROM table_name2

<!--[if !supportLists]-->10.<!--[endif]-->SQL SELECT INTO 语句可用于创建表的备份复件。

KeyWords 备份

可以把所有的列插入新表:

SELECT *INTO new_table_name [IN externaldatabase] FROM old_tablename

或者只把希望的列插入新表:

SELECT column_name(s)INTO new_table_name [IN externaldatabase] FROM old_tablename

11.SQL CREATE DATABASE 语句

KeyWords 创建数据库

12.SQL CREATE TABLE 语句

KeyWords 创建表

SQL CREATE TABLE 语法

CREATE TABLE 表名称(列名称数据类型,列名称数据类型,列名称数据类型,....)

实例

CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255),FirstName varchar(255),Address varchar(255),City varchar(255),

UNIQUE (Id_P))

SQL 约束

约束用于限制加入表的数据的类型。

可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。

我们将主要探讨以下几种约束:

<!--[if !supportLists]-->· <!--[endif]-->NOT NULL

<!--[if !supportLists]-->· <!--[endif]-->UNIQUE

<!--[if !supportLists]-->· <!--[endif]-->PRIMARY KEY

<!--[if !supportLists]-->· <!--[endif]-->FOREIGN KEY

<!--[if !supportLists]-->· <!--[endif]-->CHECK

<!--[if !supportLists]-->· <!--[endif]-->DEFAULT

 

下面的 SQL 在 "Persons" 表创建时在 "Id_P" 列创建 UNIQUE 约束:

MySQL:

CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),UNIQUE (Id_P))

SQL Server / Oracle / MS Access:

CREATE TABLE Persons(Id_P int NOT NULL UNIQUE,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255))

如果需要命名 UNIQUE 约束,以及为多个列定义 UNIQUE 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName))

SQL UNIQUE Constraint on ALTER TABLE

当表已被创建时,如需在 "Id_P" 列创建 UNIQUE 约束,请使用下列 SQL

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE PersonsADD UNIQUE (Id_P)

如需命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE PersonsADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)

撤销 UNIQUE 约束

如需撤销 UNIQUE 约束,请使用下面的 SQL

MySQL:

ALTER TABLE PersonsDROP INDEX uc_PersonID

SQL Server / Oracle / MS Access:

ALTER TABLE PersonsDROP CONSTRAINT uc_PersonID

 

SQL PRIMARY KEY 约束 主键

PRIMARY KEY 约束唯一标识数据库表中的每条记录。

主键必须包含唯一的值。

主键列不能包含 NULL 值。

每个表都应该有一个主键,并且每个表只能有一个主键。

SQL PRIMARY KEY Constraint on CREATE TABLE

下面的 SQL 在 "Persons" 表创建时在 "Id_P" 列创建 PRIMARY KEY 约束:

MySQL:

CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),PRIMARY KEY (Id_P))

SQL Server / Oracle / MS Access:

CREATE TABLE Persons(Id_P int NOT NULL PRIMARY KEY,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255))

如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName))

SQL PRIMARY KEY Constraint on ALTER TABLE

如果在表已存在的情况下为 "Id_P" 列创建 PRIMARY KEY 约束,请使用下面的 SQL

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE PersonsADD PRIMARY KEY (Id_P)

如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE PersonsADD CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)

注释:如果您使用 ALTER TABLE 语句添加主键,必须把主键列声明为不包含 NULL 值(在表首次创建时)。

撤销 PRIMARY KEY 约束

如需撤销 PRIMARY KEY 约束,请使用下面的 SQL

MySQL:

ALTER TABLE PersonsDROP PRIMARY KEY

SQL Server / Oracle / MS Access:

ALTER TABLE PersonsDROP CONSTRAINT pk_PersonID

 

SQL CHECK 约束

CHECK 约束用于限制列中的值的范围。

如果对单个列定义 CHECK 约束,那么该列只允许特定的值。

如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。

SQL CHECK Constraint on CREATE TABLE

下面的 SQL 在 "Persons" 表创建时为 "Id_P" 列创建 CHECK 约束。CHECK 约束规定 "Id_P" 列必须只包含大于 的整数。

My SQL:

CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),CHECK (Id_P>0))

SQL Server / Oracle / MS Access:

CREATE TABLE Persons(Id_P int NOT NULL CHECK (Id_P>0),LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255))

如果需要命名 CHECK 约束,以及为多个列定义 CHECK 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes'))

SQL CHECK Constraint on ALTER TABLE

如果在表已存在的情况下为 "Id_P" 列创建 CHECK 约束,请使用下面的 SQL

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE PersonsADD CHECK (Id_P>0)

如果需要命名 CHECK 约束,以及为多个列定义 CHECK 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE PersonsADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')

撤销 CHECK 约束

如需撤销 CHECK 约束,请使用下面的 SQL

SQL Server / Oracle / MS Access:

ALTER TABLE PersonsDROP CONSTRAINT chk_Person

MySQL:

ALTER TABLE PersonsDROP CHECK chk_Person

 

 

SQL DEFAULT 约束

DEFAULT 约束用于向列中插入默认值。

如果没有规定其他的值,那么会将默认值添加到所有的新记录。

SQL DEFAULT Constraint on CREATE TABLE

下面的 SQL 在 "Persons" 表创建时为 "City" 列创建 DEFAULT 约束:

My SQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255) DEFAULT 'Sandnes')

通过使用类似 GETDATE() 这样的函数,DEFAULT 约束也可以用于插入系统值:

CREATE TABLE Orders(Id_O int NOT NULL,OrderNo int NOT NULL,Id_P int,OrderDate date DEFAULT GETDATE())

SQL DEFAULT Constraint on ALTER TABLE

如果在表已存在的情况下为 "City" 列创建 DEFAULT 约束,请使用下面的 SQL

MySQL:

ALTER TABLE PersonsALTER City SET DEFAULT 'SANDNES'

SQL Server / Oracle / MS Access:

ALTER TABLE PersonsALTER COLUMN City SET DEFAULT 'SANDNES'

撤销 DEFAULT 约束

如需撤销 DEFAULT 约束,请使用下面的 SQL

MySQL:

ALTER TABLE PersonsALTER City DROP DEFAULT

SQL Server / Oracle / MS Access:

ALTER TABLE PersonsALTER COLUMN City DROP DEFAULT

 

猜你喜欢

转载自dreammoon.iteye.com/blog/2210715