INSERT INTO t_student(id,name,age,score) VALUES(1,'李四',18,60.0); 多行 insert into t_student(id,name,age,score) VALUES (1,'张三',18,60.0), (2,'李四',19,61.0), (3,'王五',20,62.0);
操作过程
4.2 更新数据(update)
格式
1
update 表名 set 字段1 = 字段1的值, 字段2 = 字段2的值, … ;
示例(设置多个字段,用逗号连接)
1
update t_student set name='张三',age=20;
操作过程
4.3 删除表格(delete)
格式
1
delete from 表名 ;
示例(删除表格记录,不是表格本身)
1
delete from t_student;
操作过程
4.4 查询语句(select)
格式
1 2
select 字段1, 字段2, … from 表名 ; select * from 表名; // 查询所有的字段
示例
1 2
select name,age from t_student; select * from t_student;
操作过程
4.5 条件语句(where)
如果只想更新或者删除某些固定的记录,那就必须在DML语句后加上一些条件
条件语句的常见格式
1 2 3 4 5 6 7
where 字段 = 某个值 ; // 不能用两个 = where 字段 is 某个值 ; // is 相当于 = where 字段 != 某个值 ; where 字段 is not 某个值 ; // is not 相当于 != where 字段 > 某个值 ; where 字段1 = 某个值 and 字段2 > 某个值 ; // and相当于C语言中的 && where 字段1 = 某个值 or 字段2 = 某个值 ; // or 相当于C语言中的
示例
1 2 3 4 5 6 7 8
将t_student表中年龄大于10 并且 姓名不等于jack的记录,年龄都改为 5 update t_student set age = 5 where age > 10 and name != ‘jack’ ;
删除t_student表中年龄小于等于10 或者 年龄大于30的记录 delete from t_student where age <= 10 or age > 30 ;
update t_student set score = age where name = ‘jack’ ; 将t_student表中名字等于jack的记录,score字段的值 都改为 age字段的值
操作过程
4.6 起别名
格式
格式(字段和表都可以起别名)
1 2 3
select 字段1 别名 , 字段2 别名 , … from 表名 别名 ; select 字段1 别名, 字段2 as 别名, … from 表名 as 别名 ; select 别名.字段1, 别名.字段2, … from 表名 别名 ;
示例
1 2 3 4 5
select name myname, age myage from t_student ; 给name起个叫做myname的别名,给age起个叫做myage的别名
select s.name, s.age from t_student s ; 给t_student表起个别名叫做s,利用s来引用表中的字段
操作过程
4.7 计算记录数量(count)
格式
1 2
select count (字段) from 表名 ; select count ( * ) from 表名 ;
示例
1 2
select count (age) from t_student ; select count ( * ) from t_student where score >= 60;
操作过程
4.8 排序(order by)
格式
1 2 3 4 5 6 7 8 9 10 11
查询出来的结果可以用order by进行排序 select * from t_student order by 字段 ; select * from t_student order by age ;
默认是按照升序排序(由小到大),也可以变为降序(由大到小) select * from t_student order by age desc ; //降序 select * from t_student order by age asc ; // 升序(默认)
也可以用多个字段进行排序 select * from t_student order by age asc, height desc ; 先按照年龄排序(升序),年龄相等就按照身高排序(降序)
示例
1
select * from t_student order by score desc,age asc;
操作过程
4.9 分页查询(limit)
使用limit可以精确地控制查询结果的数量,比如每次只查询10条数据
格式
1
select * from 表名 limit 数值1, 数值2 ;
示例(跳过最前面4条语句,然后取8条记录)
1
select * from t_student limit 4, 8 ;
limit后面只有一个数值
1 2 3
select * from t_student limit 7 ; 相当于select * from t_student limit 0, 7 ; 表示取最前面的7条记录
4.10 字段属性约束(not null、unique、default)
约束说明
建表时可以给特定的字段设置一些约束条件,常见的约束有
1 2 3
not null :规定字段的值不能为null unique :规定字段的值必须唯一 default :指定字段的默认值
示例(name字段不能为null,并且唯一,age字段不能为null,并且默认为18)
1
create table if not exists t_student(id integer,name text not null unique,age integer not null default 18,score real);
操作过程
4.11 主键约束(primary key)
什么是主键
主键(Primary Key,简称PK)用来唯一地标识某一条记录
例如t_student可以增加一个id字段作为主键,相当于人的身份证
主键可以是一个字段或多个字段
主键的设计原则
主键应当是对用户没有意义的
永远也不要更新主键
主键不应包含动态变化的数据
主键应当由计算机自动生成
示例
在创表的时候用primary key声明一个主键
1
create table if not exists t_student (id integer primary key autoincrement, name text, age integer,score real) ;