与上一篇的《SQL简单使用-基础篇》相连续的篇章,《SQL简单使用-基础篇》以下简称《基础篇》。在《基础篇》中,主要简单的带大家了解一下SQL命令中最主要的增删改查命令的使用,增INSERT INTO、删DETELE/DROP/TRUNCATE、改UPDATE、查SELECTE。因为增删改查是SQL命令的核心也是最基础的部分,所以本篇张还是围绕增删改查的使用进行进阶性的介绍与使用。
先从《基础篇》中提到的where子句里面的通配符讲起。
1.like 用于在where子句中搜索列中的指定模式
示例:
select * from websites where name like '%oo%';
注:(%分号表示任意数据,_表示任意一个数据,动手练两边就能熟悉)
'G%' 搜索以G开头的数据
'%G' 搜索以G结尾的数据
'%g%' 搜索包含g的数据
'G' 搜索以G开头的两位数据
'G' 搜索以G结尾的两位数据
'G' 搜索包含G的三位数据
1.1 通配符还有一种(%、_和[charlist])
示例:[charlist]使用
select * from websites where name REGEXP '^[A-H]';
2.between 用于选取介于两个值之间的数据范围内的值
示例:
select * from websites where alexa between 1 and 20;
示例:添加not使用
select * from websites where alexa not between 1 and 20;
示例:结合IN使用
select * from websites where ( alexa BETWEEN 1 and 20) and country in ('USA','CN');
示例:文本
select * from websites where name between 'A' and 'H'; 不包含H
3.top 用于规定返回记录的数据,实用
示例:SQL server (SELECT TOP number|percent column_name(s) FROM table_name;)
select top 50 percent * from websites;
示例:Oracle(SELECT column_name(s) FROM table_name WHERE ROWNUM 0)
);
alter table 使用check约束
alter table websites add check (id>0);
撤销check约束(参照unique约束中的alter table)
alter table websites drop check constraint_name;
10.6 DEFAULT 约束
1.用于向列中插入默认值
2.如果没有规定其它值,那么将默认值添加到所有的记录
示例:MYSQL
create table student_information ( student_id INT (10) NOT NULL,
student_name CHAR (4),
student_class CHAR (10) DEFAULT '' comment '班级',
student_tele INT (11),
student_add VARCHAR (255)
); comment 是为 字段或列的属性添加注释用的
alter table 使用 default
示例:MYSQL
alter table websites
alter country set default 'CN';
示例:SQL server
alter table websites add constraint ad_c default 'CN' for country;
示例:oracle
alter table websites modify country default 'CN';
撤销default约束
示例:MYSQL
alter table websites
alter country drop default;
示例:SQL server/oracle
alter tables websites
alter column country drop default;
create index 用于在表中创建索引 在表中创建索引可以更高效的查询数据,用户无法查看到索引,他们只能被用来加速搜索/查询。
注:更新一个包含索引的表所耗费的时间比没有索引表的时间更长,这是由于索引本身也需要更新。因此,理想的做法是仅仅在尝尝被所有的列(及表)上面创建索引。
语法:创建一个简单的索引,允许使用重复的值
create index index_name ON table_name (column_name);
语法:在表中创建唯一的索引,不允许使用重复的值(create unique table):唯一的索引意味着两个行不能拥有相同的索引值。
create UNIQUE index index_name ON table_name (column_name);
示例:将websites表中name列中创建名为web_index的索引。
create index web_index ON websites (name);
12.drop 可以删除表,索引和数据库
DROP INDEX 语句用于删除表中的索引。
用于 SQL Server 的 DROP INDEX 语法:
DROP INDEX table_name.index_name
用于 DB2/Oracle 的 DROP INDEX 语法:
DROP INDEX index_name
用于 MySQL 的 DROP INDEX 语法:
ALTER TABLE table_name DROP INDEX index_name
DROP TABLE 语句用于删除表。
DROP DATABASE 语句用于删除数据库。
仅仅需要删除表内的数据,但并不删除表本身
TRUNCATE TABLE table_name
13.ALTER TABLE 用于在已有的表中添加、删除或修改列。
添加列的语法:
ALTER TABLE table_name ADD column_name datatype;
删除表中的列语法:
ALTER TABLE table_name DROP COLUMN column_name datatype;
改变表中数据类型语法:
ALTER TABLE table_name MODIFY COLUMN column_name datatype;
示例: 在website表中添加名为column_date的列,然后修改列的数据类型,删除添加的列
alter table websites add column_date date; 添加
alter table websites modify column column_date year;修改