最近碰到了一个项目,需要使用上SQL数据库区存取数据,发现只会用一些基本的指令根本无法在项目中自由操作我想要的结果,然后,重新上网整理了一遍数据库的指令集合语法。

1.最基本的增删改查指令

指令

作用

insert

插入数据

delete

删除数据

select

查找数据

update

修改/更新数据

基本上绝大多数的数据库操作都是按照上述的四条指令构成的。

2.Select 查找指令

select指令我个人认为是最重要的,所以先把这个点先解析一下。

操作动作

指令

遍历出来所有值

select *(所有列) from tablename(表名称)

指定遍历某列或多列

select colunm_name(列名) from tablename

通过条件(where)去筛选满足条件的数据

select *(所有列) from tablename where colunm_name = ‘xxxx’(文本)或者select *(所有列) from tablename where colunm_name = xxxx(整数)

多个条件(and 或者 or)去筛选数据

select *(所有列) from tablename where (colunm_name = ‘xxx’ or colunm1_name = ’ xxx’)and colunm_name=‘xxxx’

通过通配符(Like)去适配(%,_,[])

select *(所有列) from tablename where colunm_name=’%xx’

对数据表进行排列order by(升序)或者order by xxx desc(降序)

select * from tablename order by 列名/ order by 列名 desc

获取列中的不同选项

select distinct colunm_name from tablename

规定某列满足多个值(in)

select *(所有列) from tablename where colunm_name in(value1,value2,value3,…)

把一个表中的数据插入另一个表中

select *(所有列) into newtablename from oldtable (where xxx)

同时检索两个表(通常主键primary key和外键)

select *tableonename.xxx(列名),tabletwoname.xxx from tableonename(表名),tabletwoname where tableoneonename.number = tabletwoname.number

上面的表格只是指令的模板,但是很多时候需要通过一些实例才能使一些范例吃透,才能举一反三,所以接下来我通过一些简单的实例去演示上述模板。

首先创建一个表

create table if not exists studenttable( ID integer primary key,Name vchar(20) not null,Class vchar(10) not null,Score int)"
 //primary key 主键
 //autoincrement 自动递增
 //not null 不能为空

1.打印出表中的所有内容

select * from studenttable

学号

姓名

班级

成绩

164001

小明

3班

80

164002

小山

2班

60

164003

小妮

2班

73

164004

小赟

4班

40

2.只把学号和姓名打印出来

select ID,Name from studenttable

学号

姓名

164001

小明

164002

小山

164003

小妮

164004

小赟

3.满足班级是2班的

select * from studenttable where Class = '2班'

学号

姓名

班级

成绩

164002

小山

2班

60

164003

小妮

2班

73

4.满足班级是2班的同时成绩大于60

select * from studenttable where Class = '2班' and Score > 60

学号

姓名

班级

成绩

164003

小妮

2班

73

5.筛选姓名中带‘妮’字的学生

select * from studenttable where Name=’%妮’

学号

姓名

班级

成绩

164003

小妮

2班

73

6.满足班级是3班或者4班的同学

select * from studenttable where Class in('3班','4班')

学号

姓名

班级

成绩

164003

小妮

2班

73

164004

小赟

4班

40

7.通过在一个表中指定学号去检索另外一个表中(重要)
先创建另一个表

create table if not exists awardstable( ID integer,Awards vchar(10) not null)"

学号

奖项

164003

一等奖

164006

二等奖

164008

三等奖

164002

三等奖

select studenttable.Name,awardstable.Awards from studenttable,awardstable where studenttable.ID = awardstable.ID

学号

奖项

小妮

一等奖

小山

三等奖

8、通过班级获取有多少个班级

select distinct Class from studenttable

班级

2班

3班

4班

delete 删除指令

操作动作

指令

删除所有数据

delete from tablename(表名) /delete * from tablename

删除表中某列的等于特定的值

delete from tablename(表名) where colunms_name = ‘xxxx’

接上述的学生表的例子
1.清空学生表(只是清空数据,数据和结构依然存在)

delete from studenttable

2.删除表中2班的同学

delete from studenttable where Class = '2班'

学号

姓名

班级

成绩

164003

小妮

2班

73

164004

小赟

4班

40

未完待续。。。。。。