SQL关键字:
1.between关键字
a)查询出条件列中值在值1与值2之间的所有数据的指定列的值:select 列 from 表名 where 条件列 between 值1 and 值2
;
b)查询除值1,值2以外的值:select 列 from 表名 where 条件列 not between 值1 and 值2 ;
(注:between...and...中的边际值,在不同的数据库环境中有不同的处理。 MySQL在between...and中包含边界值,而NOT语句中不包含。)
2.Alias(别名)
SELECT 表1的别名.列1 AS 列1的别名, 表2的别名.列3 AS 列3的别名 FROM 表1 AS 表1的别名, 表2 AS 表2的别名 ;
3.同时查询多个表
a)SELECT 表1.列1,表2.列1 FROM 表1,表2... ;
b)SELECT * FROM 表1,表2 WHERE 表1.id = 表2.id ;
c)join关键字
1)inner join
格式:SELECT * FROM 表1 [INNER] JOIN 表2 ON 表1.id = 表2.id ;
(如果表中有至少一个匹配,则返回行。)
1.左右表都匹配就返回。
2)left join
格式:SELECT * FROM 左表 LEFT JOIN 右表 ON 左表.id = 右表.id ;
(即使右表中没有匹配,也从左表返回所有的行。)
1.左表所有数据都要返回到结果集中。
2.如果右表无法匹配的左表的数据,右表用NULL进行配对。
3)right join
格式:SELECT * FROM 左表 RIGHT JOIN 右表 ON 左表.id = 右表.id ;
(即使左表中没有匹配,也从右表返回所有的行。)
1.右表所有行的数据都要返回,不管是否匹配。
2.右表中无法再左表匹配的数据,左表用NULL填充。
4)full join
格式:SELECT * FROM 表1 FULL JOIN 表2 ON 表1.id = 表2.id ;
(只要其中一个表中存在匹配,就返回行。)
不过只有5.1以上才能使用这个全联接功能。
4.union关键字:联合,用于合并两个或多个SELECT语句的结果集。
格式:(SELECT 列 FROM 表)
UNION [ALL]
(SELECT 列 FROM 表)
要求:1.两次查询的列数必须一样,类型相似。
2.union会自动去掉重复行,不想去掉就在UNION后面加上ALL。
3.如果句子中没有order by,limit,可以不使用(),order by一定要和limit一起使用,否则无意义。
5.check关键字:设定列的值的范围。
添加的方法:
CREATE TABLE 表名 (字段名 字段类型,...,CHECK (字段名0>=值)) ;
追加的方法:
单列:ALTER TABLE 表名 ADD CHECK(列>=值);
多列:ALTER TABLE 表名 ADD CONSTRAINT 约束名 CHECK(列>=值 AND 列<=值) ;
删除约束的方法:
ALTER TABLE 表名 DROP CHECK 约束名 ;
6.default关键字:设定的默认值。
1.我们MySQL会给这些列自动加一个默认值为NULL的默认值。
2.我们如果追加默认值会覆盖掉前面设定的默认值。
3.如果删除默认值,他是不会自动回到default NULL。而是没有了默认值,没有默认值那么我们插入数据的时候就一
定需要插入这一列的数据,这个数据也可以是NULL。
添加的方法:
CREATE TABLE 表名 (字段名 字段类型 DEFAULT 默认值,字段名 字段类型...)
追加的方法:
ALTER TABLE 表名 ALTER 列名 SET DEFAULT 默认值 ; 删除约束的方法:
ALTER TABLE 表名 ALTER 列名 DROP DEFAULT ;
SQL约束:
1.not null约束:该字段不能接受NULL值,也就是说如果不向此字段加入数据值,就无法插入新的数据。
例:
CREATE TABLE 表名 (字段名 字段类型 NOT NULL) ;
2.unique约束:用来标识这个字段的数据的唯一性。说白了就是防止重复。
例: CREATE TABLE Persons (
id int(10) NOT NULL,
name varchar(50) UNIQUE (id)
);
这里的例子是UNIQUE在建表语句中的使用。
3.追加unique约束:unique约束还能使用ALTER TABLE语句加入表中,一个表中可以有多个UNIQUE指定的列:
单列 ALTER TABLE 表名 ADD UNIQUE(列) ;
多列 ALTER TABLE 表名 ADD CONSTRAINT UNIQUE约束名 UNIQUE(列名...) ;
(向已存在的表中添加唯一约束时,需要注意这一列中是否已经有重复值,如果已经有重复值,将无法添加唯一约束。)
4.删除unique约束:
unique约束:ALTER TABLE 表名 DROP INDEX UNIQUE约束名
(这个如果我们只添加一列UNIQUE约束,这个约束名为那一列的字段名;添加多列的UNIQUE约束时,这个约束名,需要我们来
重命名)
注:如果我们是为多列设定了一个UNIQUE约束,那么需要这多列全部重复,才会生效。
5.primary key主键:用于约束唯一标识数据库表中的每条记录。
要求:
1.主键必须包含唯一的值(不能重复)。
2.主键不能包含NULL值(不能不填(第一次可以不填,会自动补默认值))。
3.每个表只能有一个主键。
主键的创建:
CREATE TABLE Person (
id int NOT NULL,
name VARCHAR(20),
PRIMARY KEY (id)
);
6.追加primary key约束:primary key约束还能使用ALTER TABLE语句加入表中:
ALTER TABLE 表名 ADD PRIMARY KEY(列) ;
删除主键约束:
ALTER TABLE 表名 DROP PRIMARY KEY ;
注:当我们的要指定作为外键的字段中数据不符合外键约束时,外键添加不上。
7.foreign key外键约束:用来指向另一个表中的primary key。
外键用来预防破坏表之间连接的动作。也可以防止非法数据的插入因为外键必须是他指向的那个表的值之一。
例:
CREATE TABLE 表名(字段1 字段类型,字段2 字段类型,
FOREIGN KEY(字段2) REFERENCES 表2(表2的字段));
8.追加foreign约束:foreign约束还能使用ALTER TABLE语句加入表中,一个表中可以有多个foreign指定的列:
ALTER TABLE 表名 ADD FOREIGN KEY(列) REFERENCES 表2(表2的列) ;
删除foreign约束,需要外键约束(constraing)
ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名 ;
VIEW视图:约束用于限制介入表的数据的类型。
1.创建视图:CREATE VIEW 视图名 AS SELECT STATEMENT(查询语句) ;
2.修改视图:CREATE VIEW 视图名 AS SELECT STATEMENT(查询语句) ;
3.删除视图:DROP VIEW 视图名 ;