SQL语句入门级(MySQL测试)

来源:互联网 发布:mac 画流程图的软件 编辑:程序博客网 时间:2024/05/22 06:36

1.对表的操作

1、查看表

show tables; # 查看数据库全部表select * from 表名; # 查看一张表所有内容

2、创建表

create table course(cno int unsigned,name varchar(30));//course是表名,cno,name是字段名,int unsigned是数据类型create table customer(cno int auto_increment primary key,name varchar(30),password varchar(50));   //primary key表示是主键,auto_increment表示自动增长,比如ID,每增加一个就自增,则每个ID都不一样了。//注意:1、对于自增列,必须是索引(含主键)2、对于自增可以设置步长和起始值//DEFAULT可以用来添加默认值,比如是理科班,就可以性别默认值设定为男

主键可以创建表时添加也可以后面更改。主键只是约束的一种:

约束(Constraint):对输入的数据进行合法性校验,保证数据的完整性
约束分为五类:
1.非空约束(NOT NULL)
2.唯一约束(UNIQUE)
3.主键约束(PRIMARY KEY):非空并且唯一
4.外键约束(FOREIGN KEY):一个字段的取值受限于另一个表的某个字段
5.检查约束(CHECK):取值范围限定

//创建表时设置create table student (sno int auto_increment primary key,a int not NULL,b int unique,age check(age>10 and age<100));

3、删除表

drop table 表名

4、清空表内容

delete from 表名truncate table 表名

5、修改表

添加列: alter table 表名 add 列名 类型
删除列: alter table 表名 drop column 列名
修改列:
alter table 表名 modify column 列名 类型; – 类型
alter table 表名 change 原列名 新列名 类型; – 列名,类型

alter table student add column birth varchar(30);alter table t_book modify name varchar(22);alter table student change column name2 name varchar(30);

修改列名:

修改列名MySQL: alter table bbb change nnnnn hh int;修改列名SQLServer:exec sp_rename't_student.name','nn','column';修改列名Oracle:lter table bbb rename column nnnnn to hh int;

添加主键:
alter table 表名 add primary key(列名);
删除主键:
alter table 表名 drop primary key;
alter table 表名 modify 列名 int, drop primary key;
添加外键: alter table 从表 add constraint 外键名称(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);
删除外键: alter table 表名 drop foreign key 外键名称
修改默认值:ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
删除默认值:ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;

2.对内容的操作

1、增

insert into 表 (列名,列名…) values (值,值,…)
insert into 表 (列名,列名…) values (值,值,…),(值,值,值…)
insert into 表 (列名,列名…) select (列名,列名…) from 表
例:

insert into tab1(name,email) values('happyteemo','happyteemo.com')

2、删

delete from 表 # 删除表里全部数据

delete fromwhere id=1 and name='happyteemo' //删除ID =1 和name='happyteemo' 那一行数据

3、改

updateset name = 'happyteemo' where id>1

4、查

查询是数据库最复杂也是最有用的一个部分,这里只是做入门级介绍。

////////查行////////select * from student;select * from student where name = 'zhang%'select * from student where name like 'zhang%';//模糊查询 %为通配符表示0个或多个字符,_表示1个任意字//////分组查询:使用group by子句实现/////////select avg(sight) from student;//求平均值select sex,avg(sight) 平均视力 from student group by sex;//看男女的视力select sex,avg(sight) 平均视力 from student group by sex having sex = '0';//只看男生视力,having子句只能和group by一起使用//////条件查询///////select * from student where sight is in(4.3,4.5);//视力在4.3-4.5之间的select * from student where left(phone,3)='186';//电话前三位是186的select * from student where left(phone,3) in('131','185');//结合应用///////distinct(去除重复列) 和 limit(解决TOP N的问题) 关键字//////select distinct sex from student;//只看性别select * from student order by birth desc;//列出所有按生日排序select * from student order by birth desc limit 3;//列出前三////////查找重复项:////////select * from peoplewhere peopleId in (select   peopleId from   people group by   peopleId having count(peopleId) > 1)//////多表查询,笛卡尔集//////select *from course,sc;select *from course,sc where sno =200101 and name='c' and course.cno=sc.cno;select USERS.OID as u_oid,ORGAN.OID as o_oid  from USERS,ORGAN where USERS.US_JGDM=ORGAN.OG_CODE//联合查询最好重命名。/////嵌套查询,子查询/////////将查询结果集作为一个临时表或一个集合或者一个单值来看待。select * from student where sno not in (select distinct sno from sc);
原创粉丝点击