基础
sql三种注释:
#注释
SELECT *
FROM mytable; --注释
/*
注释.....
*/
数据库创建和使用:
create database test;
use test;
创建表
create table mytable(
id int not null auto_increment,
col1 int not null default 1,
co12 varchar(45) null,
col3 date null,
primary key ('id')
);
修改表
添加列
alter table mytable
add col char(20);
删除列
alter table mytbale
drop clumn col;
删除表
drop tablemytable;
插入
普通插入
insert into mytable(col1,col2) values(val1,val2);
插入检索出来的数据
insert into mytable(col1,col2)
select col1,col2
from mytable2;
将一个表的内容插入到一个新表
create table newtable as select * from mytbale;
更新
update mytable set col=val where id=1;
删除
delete from mytable where id=1;
truncate table mytable;
可以清空表,也就是删除所有行。
使用更新和删除操作时一定要使用where字句,不然会把整张表的数据都破坏。可以先用select语句进行测试,防止错误删除。
查询
DISTINCT
相同值只会出现一次。他作用于所有列,也就是所有列的值都相同才算相同。(过滤掉多余的重复记录只保留一条)
select distinct col1,col2 from mytable;
LIMIT
限制返回的行数,可以有两个参数,第一个参数为起始行,从0开始;第二个参数为返回的总行数。
返回前5行:
select * from mytable limit 0,5;
返回第3~5行:
select * from mytable limit 2,3;
排序
ASC:升序(默认)
DESC:降序
可以按多个列进行排序,并且为每个列指定不同的排序方式:
select * from mytable order by col1 desc,col2 asc;
过滤
不就行过滤的数据非常大,导致通过网络传输了多余的数据,从而浪费了网络带宽。因此尽量使用sql语句来过滤不必要的数据,而不是传输所有的数据到客户端然后由客户端进行过滤。
select * from mytbale where col IS NULL;
下表显示了where子句可用的操作符
操作符 | 说明 |
---|---|
= | 等于 |
< | 小于 |
> | 大于 |
<>!= | 不等于 |
<=! > | 小于等于 |
>=!< | 大于等于 |
BETWEEN | 两个值之间 |
IS NULL | 为NULL值 |
注意:NULL与0、空字符串都不同。
ADN和OR用于连接多个过滤条件。优先处理AND,当一个过滤表达式涉及到多个ADN和OR时,可以使用()来决定优先级,使得优先级关系更清晰。
IN操作符用于匹配一组值,其后也可以接一个SELECT子句,从而匹配子查询得到的一组值。
NOT操作符用于否定一个条件。