本篇主要介绍一下关于删除操作和like有关的练习。
create table test1( id int primary key, name varchar(20), sex varchar(20) ); insert into test1 values(1,'刘啦啦','女'); insert into test1 values(2,'亨利','男'); insert into test1 values(3,'小红','女'); insert into test1 values(4,'刘哲','男'); create table test2( city varchar(20) primary key, province varchar(20), country varchar(20) ); insert into test2 values('青岛','山东','中国'); insert into test2 values('武汉','湖北','中国'); insert into test2 values('洛杉矶','加利福尼亚','美国'); insert into test2 values('纽约市','纽约','美国'); insert into test2 values('东京','东京都','日本'); create table test3( id int, city varchar(20) primary key, pro varchar(20), foreign key(id) references test1(id), foreign key(city) references test2(city) ); insert into test3 values(1,'青岛','数据分析师'); insert into test3 values(2,'纽约市','CEO'); insert into test3 values(3,'武汉','程序员'); insert into test3 values(4,'洛杉矶','投行'); create table test4 ( id int, name varchar(20) ); insert into test4 values(1,'洛杉矶'); insert into test4 values(2,'武汉');关于删除操作:
与删除有关的命令主要有drop、delete和truncate。
删除数据表:drop table tablename;
删除表内数据:delete from tablename where condition;
清除表内数据,保存表结构:truncate table tablename;
drop和truncate都会释放磁盘,带条件的delete不会释放磁盘空间,但是delete操作以后,使用optimize table tablename会立刻释放磁盘空间。truncate table 不能用于参与了索引视图的表,对于外键约束引用的表,不能使用truncate table,而应该使用不带where子句的delete语句。
---删除操作 delete from test2 where city='东京'; select* from test2; truncate table test4; select *from test4; drop table test4; select *from test4; truncate table test1;关于通配符:
在sql中,like一般和通配符搭配使用,常用的通配符主要有:
%:任意多个字符,包含0个字符
_:任意单个字符
[charlist]:字符列中任何单一字符
[^charlist] [!charlist]:不在字符列中的任何单一字符
like 'Mc%':以Mc为开头的所有字符串,如McBadden
like '%inger':以inger结尾的所有字符串,如Ringer、stringer
like '%en%':任何位置包含en的所有字符串
like '_heryl':以heryl结尾的六个字母名称,如Cheryl、sheryl
like '[CK]ars[eo]n':搜索Carsen、Karsen、Carson、Karson
like '[M-Z]inger':第一个字母为M-Z中的任意字母,后面是inger的字符串
like 'M[^C]%':以M开头,第二个字母不是C的字符串
---------通配符练习 insert into test1 values(5,'trfgt','男'); insert into test1 values(6,'trcgt','男'); insert into test1 values(7,'llsgt','男'); insert into test1 values(8,'trccde','男'); insert into test1 values(9,'trfcc','男'); select name from test1 where name like '