Sql基本语句(1)

数据库的操作:

Create database 数据库名;


显示所有数据库:

show databases;


使用数据库:

use 数据库名;


创建一个表:

create table 表名(

          rNo char(10) primary key,     //创建一个属性并设置为主键

          rName char(6) not null,        //创建一个非空属性集

          rAge char(10));          


设置一个主键:

rnoCHAR(5) PRIMARYKEY    

设置多个主键:

CREATETABLE borrow(

  rno CHAR(5), 

  bisbn CHAR(11), 

  startdate DATE,  

  enddate DATE, 

  fine NUMERIC(7,2) ,

  PRIMARYKEY(rno,bisbn,startdate)

);  


实现完整性约束:

 CONSTRAINT bookkey PRIMARY KEY(bisbn)

设置NOT NULL 与 DEFAULT


设置该属性不为空

bauthorCHAR(40) NOTNULL    


属性默认为0

Fine Numeric(7, 12) Default 0;  


Check检查约束:

也称为检查约束,它对属性列取值进行约束

rgenderCHAR(2) CHECK(rgenderIN('','')),     //会对属性的取值进行限制

rage INT CHECK(rage BETWEEN 0 AND 100),  

bcategoryCHAR(2) CHECK(bcategoryIN('','',''))


UNIQUE约束

根据 UNIQUE 约束,表中的任何两行都不能有相同的列值。另外,主键也强制实施唯一性,但主键不允许 NULL 作为一个唯一值。


删除一个表:

DROP TABLE 表名


查看数据表结构:

DESC 表名


在表中插入一行数据:

insert into 表名 values(属性1, 属性2, ....), (属性1, 属性2, ....)


对一个表进行更改:

alter table 表名 add gender char(1);      //增加一列属性

alter table 表名 drop column gender;     //删除一个属性

alter table 表名 add gender char(1) default 'M';  //该属性全部默认为M

删除完整性约束:

ALTER TABLE borrow DROP CONSTRAINT borrowreader    //删除一个属性

修改属性列的取值:



Select操作

select * from 表名

select * from 表名 where gender = 'm'   //依据条件筛选

select * from 表名 where gender = 'm'  order by age   //根据年龄进行排序

双条件查询:


求最大值和平均值:

select avg(rage) as avgAge from reader;    //求年龄的平均值

select max(rage) as avgAge from reader;    //求年龄的最大值

寻找所有并集

select distinct(属性名) from reader   //寻找一个属性名中所有不同的字段

表达式型查询:

select rname, 2014-rage from reader;    //得到一个表达式型的查询结果

不出现重复值的查询:

select distinct rno from reader;      //此时出现的distinct不会重复

用逻辑表达式对结果进行查询:

SELECTrno,rname

  FROM reader

  WHERE rspecialty='CP' OR rspecialty='IF' ANDrgender='';  


查询不属于两个属性间的内容

select * from reader where rage not between 16 and 20;

查询两个日期间的内容:

SELECTrno ,bisbn

  FROM borrow

  WHERE startdate  BETWEEN '2013/5/1'  AND  '2013/10/31';  


IN查询:

SELECTrname,rage

  FROM reader

  WHERE rspecialtyIN('CP', 'IF', 'MA');




设置一个外键:

FOREIGN KEY(rno) REFERENCES reader(rno)   //设置两个表中的外键约束

删除一个外码

ALTERTABLE borrow DROP CONSTRAINT borrowReader;

修改一列的属性:

alter table borrow alter column XXX 属性;


聚集函数:

查询一共有多少人,并把该属性列描述为people

SELECTCOUNT(DISTINCT rno) people

  FROM borrow;

查询大于16岁的一共有多少人

select count(*) amount from reader where rage > 16;


查询平均年龄:

select AVG(rage) aveAge from reader;


根据年龄降序排列:

select * from reader order by rage;


分组查询:

select count(salary), degreed_need from job group by degreed_need;

//查询每个分组的元素数量


HAVING语句的使用: 用于将聚集函数整合进WHERE

SELECTrno, SUM(fine) fee

  FROM borrow

             GROUP BY rno HAVING SUM(fine)>3;     

//一个会员可能会有多次转账记录 分组后将每个转账记录分组后筛选


涉及空值的查询:

 select * from reader where rphone is NULL;











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值