SQLite语句

数据库: 数据的集散地,有效的存储和管理数据

关系型数据库:1. 用二维表组织数据; 2. 结构化查询语言(SQL - Structured Query Language)

行:一条记录

列:一个字段

主键:能够唯一标识一条记录的字段

外键:其他表的主键(外来的主键)

Oracle

DB2

SQLServer

MySQL

学生表

学号 姓名 性别 出生日期 家庭住址

1001 骆昊 男 1980-11-28 四川成都

1002 王大锤 女 1990-1-1 四川自贡

SQL

DDL - 数据定义语言 create / drop / alter

DML - 数据操作语言 insert / delete / update

DQL - 数据查询语言 select

DCL - 数据控制语言 grant / revoke

集合论

关系代数

数据库设计 - ER图(实体关系图)

一对一 ---> 人和身份证

一对多 --->  部门和员工、用户和订单

多对多 ---> 订单和商品、读者和图书

--删除表

drop table TbStudent;

--创建表

create table TbStudent

(

stuid integer primary key, --学号

stuname varchar(20) not null, -- 姓名

stusex char(1) default '男', --性别

stuaddr varchar(50) --家庭住址

);

--修改表

alter table TbStudent add stubirth date;

--插入记录

insert into TbStudent values (1001, '骆昊', '男', '四川成都', '1980-11-28');

insert into TbStudent (stuid, stuname) values (1002, '王大锤');

insert into TbStudent (stuid, stuname) values (1003, '王大锤');

insert into TbStudent (stuid, stuname, stusex, stubirth) values (1004, '李莫愁', '女', '1986-12-3');

insert into TbStudent values (1005, '张三丰', '男', '四川成都', '1975-5-5');

insert into TbStudent values (1006, '李二王', '女', '四川绵阳', '1988-6-6');

insert into TbStudent values (1007, '王丽', '女', '四川成都', '1992-2-2');

--删除数据

delete from TbStudent where stuid=1003;

delete from TbStudent where stuname='王大锤';

--更新数据

update TbStudent set stuaddr='四川绵阳', stubirth='1990-4-5' where stuid=1002;

update TbStudent set stuaddr='湖南长沙' where stuid=1004;

--查询所有行所有列

select * from TbStudent;

--投影操作

select stuname, stusex from TbStudent;

--在投影时别名

select stuname as 姓名, stusex as 性别 from TbStudent;

--数据筛选

select * from TbStudent where stusex='男';

select * from TbStudent where stusex='男' and stuaddr='四川成都';

select * from TbStudent where stusex='男' or stuaddr='四川成都';

select * from TbStudent where stubirth between '1985-1-1' and '1989-12-31';

select * from TbStudent where stubirth<'1980-1-1';

select * from TbStudent where stuname like '王%';

select * from TbStudent where stuname like '王_';

select * from TbStudent where stuname like '王__';

select * from TbStudent where stuname like '%王%';

--排序

select * from TbStudent order by stubirth asc;

select * from TbStudent order by stubirth desc;

select * from TbStudent order by stusex, stuid desc;

--分组

select stusex, count(stusex) from TbStudent group by stusex;

select stuaddr, count(stuaddr) from TbStudent group by stuaddr;

select stuaddr 家庭住址, count(stuaddr) as 总人数 from TbStudent group by stuaddr order by 总人数;

select count(stuid) from TbStudent;

--聚合函数/分组函数

count

max

min

avg

sum

select min(stubirth) from TbStudent;

--子查询(把一个查询的结果作为另一个查询的一部分来使用)

select stuname, stubirth from TbStudent where stubirth=(select min(stubirth) from TbStudent);

select stuname, stubirth from TbStudent where stubirth=(select max(stubirth) from TbStudent);

--连接查询

---> 内连接

---> 外连接  ---> 左外连接

---> 右外连接

---> 全外连接

pragma foreign_key=on;

-- 一对一外键关联

create table TbPerson

(

pid integer primary key,

pname varchar(20) not null,

ptel char(11) not null,

paddr varchar(50)

);

create table TbIdCard

(

cid char(18) primary key,

corg varchar(50) not null,

cvaldate date not null,

pid integer unique references TbPerson(pid)

);

--一对多外键关联

create table TbDept

(

deptno tinyint primary key,

dname varchar(10) not null,

dloc varchar(20) not null

);

insert into TbDept values (10, '会计部', '北京');

insert into TbDept values (20, '研发部', '成都');

insert into TbDept values (30, '销售部', '重庆');

insert into TbDept values (40, '运维部', '深圳');

create table TbEmp

(

empno int primary key,

ename varchar(20) not null,

job varchar(10) not null,

mgr int,

sal int not null,

dno tinyint,

foreign key (dno) references TbDept(deptno)

);

insert into TbEmp values (7800, '张三丰', '总裁', null, 9000, 20);

insert into TbEmp values (2056, '乔峰', '分析师', 7800, 5000, 20);

insert into TbEmp values (3088, '李莫愁', '设计师', 2056, 3500, 20);

insert into TbEmp values (3211, '张无忌', '程序员', 2056, 3200, 20);

insert into TbEmp values (3233, '丘处机', '程序员', 2056, 3400, 20);

insert into TbEmp values (3251, '张翠山', '程序员', 2056, 4000, 20);

insert into TbEmp values (5566, '宋远桥', '会计师', 7800, 4000, 10);

insert into TbEmp values (5234, '郭靖', '出纳', 5566, 2000, 10);

insert into TbEmp values (3344, '黄蓉', '销售主管', 7800, 3000, 30);

insert into TbEmp values (1359, '胡一刀', '销售员', 3344, 1800, 30);

insert into TbEmp values (4466, '苗人凤', '销售员', 3344, 2500, 30);

insert into TbEmp values (3244, '欧阳锋', '程序员', 3088, 3200, 20);

insert into TbEmp values (3577, '杨过', '会计', 5566, 2200, 10);

insert into TbEmp values (3588, '朱九真', '会计', 5566, 2500, 10);

你可能感兴趣的:(SQLite语句)