w3school - SQL

SQL 对大小写不敏感


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

DML:select, update, delete, insert into

DDL: create database, alter database, create table, alter table, drop table,  create index, drop index


去重选择:select distinct 列 from 表 


升序或降序关键字放在列名后面:order by 列1 desc, 列2 asc


直接在表中插入一行: insert into 表 values (值1, 值2, ......)

或是指定要插入的列: insert into 表(列1, 列2, ...) values (值1, 值2, ...)


update 表 set 列1=值1, 列2=值2, ... where 列0=值0

其中,值1值2是要修改赋给列1列2的新值,值0是列0中已存在的值


delete删除的最小单位是行,而不是行中的某一列,要删除某行的某一列,可以用update赋予其空值


限制返回的结果数量:selecttop数1列 from 表 ,

在mysql中的语法为:select  列 from 表limit数1


like通配符

 %:一个或多个字符

_:单指一个字符

方括号例如[ABC]:A、B、C中任意自由组合的字符集和


where多个条件筛选用 in :select * from 表 where 列 in (值1, 值2, ...)


不同的数据库对 between 值1 and 值2 的处理方式是有差异的。有的返回结果包括值1值2,有的不包括,还有的只包括值1不包括值2。


select 表1.列a, 表2.列b from 表1 join 表2 on 表1.x=表2.x       等同于      select 表1.列a, 表2.列b from 表1, 表2 where 表1.x=表2.x

(例子:http://www.w3school.com.cn/sql/sql_join.asp)


不同join的差异:

  • JOIN: 如果表中有至少一个匹配,则返回行, 与inner join是一个东西
  • LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行,另,在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN
  • RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行,另,在某些数据库中,RIGHT JOIN 称为RIGHT OUTER JOIN
  • FULL JOIN: 只要其中一个表中存在匹配,就返回行,另,在某些数据库中, FULL JOIN 称为 FULL OUTER JOIN

union的适用条件:

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

UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

select 列a from 表1 union select 列a from 表2

union 会自动去重,要包含重复值,使用 union all。


create index 索1 on 表1( 列1,列2,...)

一般在插入删除更新等操作较少、而查询较多的情况下,可以使用索引

create unique index 唯一性索引,意味着两个列不能拥有相同的索引值


mysql 去除索引:alter table 表1 drop index 索1


仅仅删除表中的数据,同时保留表本身:truncate table 表1


在表1中增加一列(指明新增列的列名和数据类型):alter table 表1 add 列1 类型1

在表1中删除一列(指明删除列的列名即可):alter table 表1 drop column 列1

修改列1的数据类型(指明列1的新数据类型):alter table 表1 alter column 列1 类型2


mysql主键字段自增:

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


 MySQL 中最重要的几个内建日期函数:

函数描述
NOW()返回当前的日期和时间
CURDATE()返回当前的日期
CURTIME()返回当前的时间
DATE()提取日期或日期/时间表达式的日期部分
EXTRACT()返回日期/时间按的单独部分
DATE_ADD()给日期添加指定的时间间隔
DATE_SUB()从日期减去指定的时间间隔
DATEDIFF()返回两个日期之间的天数
DATE_FORMAT()用不同的格式显示日期/时间

为了查询简单且更易维护,尽量请不要在日期中使用时间部分!


NULL值与0是两码事

判断空值不能用=或<>,应该用IS NULL或 IS NOT NULL

当需要把NULL转换为0使用时,mysql使用IFNULL()函数或COALESCE()函数,例如100+IFNULL( 列1 , 0 )


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值