MySQL数据库charlist,MySQL学习笔记

SQL 是一种标准 - 但是...

不幸地是,存在着很多不同版本的 SQL 语言,但是为了与 ANSI 标准相兼容,它们必须以相似的方式共同地来支持一些主要的关键词(比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。

注释:除了 SQL 标准之外,大部分 SQL 数据库程序都拥有它们自己的私有扩展!

RDBMS 指的是关系型数据库管理系统。

RDBMS 是 SQL 的基础,同样也是所有现代数据库系统的基础,比如 MS SQL Server, IBM DB2, Oracle, MySQL 以及 Microsoft Access。

注意:SQL 对大小写不敏感!

SQL DML 和 DDL

可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。

SQL 的 DML 部分:

SELECT - 从数据库表中获取数据

UPDATE - 更新数据库表中的数据

DELETE - 从数据库表中删除数据

INSERT INTO - 向数据库表中插入数据

SQL 中最重要的 DDL 语句:

CREATE DATABASE - 创建新数据库

ALTER DATABASE - 修改数据库

CREATE TABLE - 创建新表

ALTER TABLE - 变更(改变)数据库表

DROP TABLE - 删除表

CREATE INDEX - 创建索引(搜索键)

DROP INDEX - 删除索引

DISTINCT 关键词 DISTINCT 用于返回唯一不同的值

SELECTDISTINCTCompanyFROMOrders

引号的使用

请注意,我们在例子中的条件值周围使用的是单引号。

SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。

结合 AND 和 OR 运算符

我们也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式):

SELECT*FROMPersonsWHERE(FirstName='Thomas'ORFirstName='William')ANDLastName='Carter';

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

SQL 通配符

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

%     替代一个或多个字符

_     仅替代一个字符

[charlist]     字符列中的任何单一字符

[^charlist] 或者 [!charlist]    不在字符列中的任何单一字符

从上面的 "Persons" 表中选取名字的第一个字符之后是 "eorge" 的人:

SELECT*FROMPersonsWHEREFirstNameLIKE'_eorge';

从上面的 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人:

SELECT*FROMPersonsWHERECityLIKE'[ALN]%';

从上面的 "Persons" 表中选取居住的城市不以 "A" 或 "L" 或 "N" 开头的人:

SELECT*FROMPersonsWHERECityLIKE'[!ALN]%';

BETWEEN ... AND 和 NOT BETWEEN ... AND

SELECT*FROMaaWHEREpidBETWEEN2AND6;(mysql中包含2和6)

SELECT*FROMaaWHEREpidnotBETWEEN2AND6;

SQL Alias(别名)

表的 SQL Alias 语法:

SELECTa.pidFROMbookASaWHEREa.pid=6;

列的 SQL Alias 语法:

SELECTpidASa,titleASbFROMbook;

SQL join (连接)用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

INNER JOIN(内连接):

SELECT*FROMbookINNERJOINUSERONbook.id=user.bookid;

注释:INNER JOIN 与 JOIN 是相同的。

LEFT JOIN(左连接):

LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。

SELECT*FROMbookLEFTJOINUSERONbook.id=user.bookid;

RIGHT JOIN(右连接):

RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。

SELECT*FROMbookRIGHTJOINUSERONbook.id=user.bookid;

FULL JOIN (全连接):

只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。

注意:mysql不支持full join。

UNION (联合)

UNION 操作符用于合并两个或多个 SELECT 语句的结果集(两表要联合查询的字段名必须相同,或者*)。

SELECTNAMEFROMbookUNIONSELECTNAMEFROMuser;

注释:默认地,UNION 操作符选取不重复的值。如果允许重复的值,请使用 UNION ALL。

SELECTNAMEFROMbookUNIONALLSELECTNAMEFROMuser;

SELECT INTO 语句

SELECT INTO 语句从一个表中选取数据,然后把数据【插入】另一个表中。

SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。

注意:mysql不支持此操作。可用下语句替换:

CREATETABLEbook2 (SELECT*FROMbook);//没有book2表情况下

INSERTINTObook2 (SELECT*FROMbook);//已经有book2表情况下

mysql表类型:MySQL 数据表七种类型 ,分别是:BDB、HEAP、ISAM、MERGE、MYISAM、InnoBDB、MERGE。

NULL 值是遗漏的未知数据。默认地,表的列可以存放 NULL 值。

NULL 用作未知的或不适用的值的占位符。注释:无法比较 NULL 和 0;它们是不等价的。

无法使用比较运算符来测试 NULL 值,比如 =, 。我们必须使用 IS NULL 和 IS NOT NULL 操作符。

1、等价于没有任何值、是未知数。

2、NULL与0、空字符串、空格都不同,NULL没有分配存储空间。

3、对空值做加、减、乘、除等运算操作,结果仍为空。

4、NULL的处理使用NVL函数。

5、比较时使用关键字用“is null”和“is not null”。

6、空值不能被索引,所以查询时有些符合条件的数据可能查不出来,count(*)中,用nvl(列名,0)处理后再查。

7、排序时比其他数据都大(索引默认是降序排列,小→大),所以NULL值总是排在最后。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值