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 通配符,字段包含,含糊查询

%和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 表名称(列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,....)

实例

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" 列必须只包含大于 0 的整数。

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

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

  1. php umount强制,linux中mount/umount命令的基本用法及开机自动挂载方法

    本文介绍了linux中mount/umount命令的基本用法及开机自动挂载,具体方法如下: mount命令格式如下: 格式:mount [-参数] [设备名称] [挂载点] 其中常用的参数有: -a ...

  2. linux mount 指定用户名,linux中mount/umount命令的基本用法及开机自动挂载方法

    本文介绍了linux中mount/umount命令的基本用法及开机自动挂载,具体方法如下: mount命令格式如下: 格式:mount [-参数] [设备名称] [挂载点] 其中常用的参数有: -a ...

  3. linux脚本添加source,shell中的source命令的巧妙用法

    首先,通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录.例如,当我们修改了/etc/profile文件,并想让它立刻生效,而不用重新登录,就可以使用source命令,如sourc ...

  4. linux 中的MYSQL命令汇总

    linux下mysql命令(2010-04-14 18:09:36)转载标签:杂谈  一.总结一下: 1.linux下启动mysql的命令:    mysqladmin start /ect/init ...

  5. ubantu中的mysql命令

    查看mysql的安装目录:which mysql 进入mysql的运行状态:mysql -uroot -p 56..a_ 转载于:https://www.cnblogs.com/Oldz/p/8257 ...

  6. MySQL命令之show用法详解

    文章目录 参考示例 (一)查看表字段详情 (二)显示某个表的创建语句 (三)显示所有数据库的名称 (四)查看已选数据库中的所有表 (五)查看某个数据库的创建语句 (六)查看数据库系统的进程 (七)查看 ...

  7. 超简单在宝塔面板中使用Mysql命令快速导入大容量数据库

    在宝塔面板中,文件栏目中打开 /www/backup/database 文件夹,把我们的数据库上传到此文件夹中.(一般导入的数据库都会上传到这个文件夹,方便以后管理) 点击旁边的终端,打开宝塔终端界面 ...

  8. linux usermod用法,Linux中的usermod命令的详细解释

    在Linux系统中,usermod命令的主要功能是修改用户账户,下面由学习啦小编为大家整理了linux下的usermod命令的详细解释,希望对大家有帮助! Linux中的usermod命令的详细解释 ...

  9. python pymysql实例_python笔记-mysql命令使用示例(使用pymysql执行)

    一.mysql命令使用 学习完mysql现在来进行一些测试 1.1.进入mysql 终端输入一下命令,进入数据库 mysql -uusername -p 1.2 进入数据库 在mysql终端输入如下命 ...

最新文章

  1. SVN可以拉项目但是提交时提示没有权限
  2. hive的数据定义之创建数据库和表
  3. 优云,新一代运维PaaS平台
  4. 解决javah生成c头文件时找不到android类库的问题
  5. linux 非交互ssh sshpass简介
  6. nginx实现负载均衡
  7. JZOJ 3.10 1540——岛屿
  8. 1.1 欢迎-深度学习第一课《神经网络与深度学习》-Stanford吴恩达教授
  9. python3之日期和时间(转载)
  10. 算法设计与分析(第四周)贪心算法、背包问题
  11. vue+webpack 安装常见插件
  12. 一步步实现SDDC-Edge负载均衡
  13. 人工智能—产生式系统(专家系统)
  14. doc 问卷调查模板表_问卷调查表.doc
  15. 实现折叠工具栏CollapsingToolbarLayout(折叠工具栏布局)
  16. ionic ionc-item去掉下划线
  17. 20172301 2017-2018-2 《程序设计与数据结构》第七周学习总结
  18. Android camera HAL框架
  19. SAP MM ME21N 创建PO时报错 - Net price in CNY becomes too large –
  20. 通过多视图信息瓶颈学习鲁棒表征

热门文章

  1. [Windows驱动]INF文件
  2. matlab传递函数转能控或能观标准型,《现代控制理论》实验指导书讲解.doc
  3. 用python基础知识绘制任意格数的棋盘进行五子棋游戏
  4. 从 Web2 社交面临的挑战看 Web3 为何能够取而代之
  5. Hyper-v带宽限制以及验证工具
  6. 英语语法总结_01 五种基本句型
  7. 知数堂mysql实战优化,成为专业MySQL DBA
  8. Python 使用Tkinter制作签名(附完整代码)
  9. 发邮件对方服务器未响应重新投递,邮件无法收到
  10. SIP协议-05 SDP协议