基本指令整合:
删除数据库
drop table department
修改表中已有记录
update company set salary=3000 where age-25;
update company set salary =3000;
ALter
修改字符段
可以修改表名
增加字符段
alter table company rename to old_company ;
alter table old_cumpany add column sex char(1);
分组查询
group by
select name ,sum(salary) from company group by name;
索引
会加快查询速度
会降低读写速度
适用于数据库表格
不适合很多null表格
分布2
create index salary_index on company(salary);
select * from company indexed by salary_index where salary>5000;
删除表中数据库
delete
delete from company where id=10;
约束
not null:不为空
primary key :唯一约束
default:默认约束
unique:确保某列值是不同
check:确保值符合一定的条件
salary real default 50000.00,
age int not null unique,
salary real check (salary>0) ,
8' 视图
可以包括一个表中所有行或者任意行内容
可以包括一个或者多个表内容
取决于查询结果
用户或者用户查找结构数据方式更直观
限制数据库访问,用户只能有限的数据,而不是完整的表
汇总各种表中的数据,用于生成报告
create view company_view as select id,name,age from company;
select from conpany_view
自动递增
autoincrement
id int priamry key not null,
id integer primary key autoincrement
insert into company (id,name................)
values ('paul'.................................)
join子句
通过共同值来结合2个或者多个表的记录方法
交叉连接cross join
select name emp_id ,ddept from company cross join department
简单,无遗漏
缺点是数据库太大,一定要慎用
内连接 inner join
slect emp_id,name,dept from company inner join department on company inner join department on company.id=department.emp_id;
outer jion外连接
sqlite3:right full left
select emp_id ,name,dept from company left outer join department on company_id=department.emp_id;
unoins 子句
用于合并两个或者多个select语句结果
每个select语句的列数必须相同
相同数目的列数表达式
相同数据类型 相同的顺序
select emp_id,name ,dept from company inner join department on company.id=department.emp_d
unoin company.id=department.emp_id
union
select emp_id,name,dept from company left outer join department
on company.id=department.emp_id;