SQL插入数据
查询表中所有数据:
select * from 表名;
查询指定的列:
select 列名1,列名2 from 表名;
例:select name,age from students
插入操作:
insert into 表名(列名1,列名2,.....)values (列值1,列值2,.....);
例:insert into students (id,name,age,email,score) values (2,'lisi',18,'zs@aliyun.com',null);
插入多条数据:
insert into students (id,name,age,email,score) values (2,'zhao',18,'zs@aliyun.com',null),(3,'qian',20,'zs@aliyun',null);
更新数据:
update 表名 set 列名1=列值1,列名2=列值2,.......where 列名=值;
例:update students set score=60;(把所有的学生成绩改为60分)
把姓名为zs的学生分数该为60:
update students set score=60 where name='zs';
把姓名为lisi的年龄修改为20和分数修改为70:
update students set age=20,score=70 where name='lisi';
把wangwu的年龄在原来的基础上加一岁:
update student set age=age+1 where name='wangwu';
修改数据库密码:
mysqladmin -u root -p password 123456
删除操作:如果不加过滤条件就是删除所有数据
delete from 表名 where 列名=列值;
例:delete from students where name='amliu';
删除所有数据:
truncate table 表名;
delete与truncate的区别:
delete可以删除指定数据也能删除所有数据而truncate只能删除所有数据
delete删除表中数据,表结构还在删除后数据还可以找回
truncate删除是把表直接删除然后创建一个新表,删除的数据不能找回,执行速度比delete快
条件查询:
between...and(值在什么范围内) in(set); is null;(为空) is not null;(不为空) and;(与) or;(或) not;(非)
查询性别为男并且年龄为20的学生记录:
select * from students where sex='男' and age=20;
查询学号为1001或者名字为zs的学生记录:
select * from students where id=1001 or name='zs';
查询学号为1001,1002,1003的记录:
select * from students where id in (1001,1002,1003);
模糊查询:
根据指定关键字查询数据,使用like关键字后跟通配符
_(表示任意一个字母) %(表示任意0~n个字母)
查询姓名由五个字母构成,并且第五个字母为‘s’的学生记录:
select * from students where name like '____s';
查询姓名以‘m’开头的学生记录:
select * from students where name like 'm%';
使用正则表达式来进行查询:
关键字:regexp
基本语法:字段名 regexp '匹配方式'
查名字里面包含z或者s或者l的记录:
select * from students where name regexp '[zsl]';
查询姓名中字段以L开头以i结尾,并且中间两个字符的同学来自哪里:
select address from students where name regexp '^L..i$';
去除重复记录:
查询所有学生name信息,去除重复信息:
select distinct name from students;
把查询字段的结果进行运算,必须都要是数值型:
select *,字段1+字段2 from 表名;(查出所有内容,有添加一个新的列)
例:select *,age+score from students;
ifnull:把null转化为数值0
select *,age+ifnull(score,0) from score;
或者可以将新生成的一列起个新的名字:
select *,age+ifnull(z_id,0) as total from xuesheng;(其中可以把as省略掉)
排序(默认asc):
关键字:order by
asc(升序) desc(降序)
select * from xuesheng order by age desc,id desc;
将birthday字段的位置改到sex字段面前:
alter table teacher modify birthday datatime after name;
注意:调换的字段要标注上类型,被调换的可不用标注类型
修改存储引擎
将teacher表的存储引擎更改为MyISAM类型:
alter table teacher engint=MyISAM;
聚合函数:
count():(统计指定不为null的记录行数)
max():(计算指定列的最大值)
min():(计算指定列的最小值)
sum():(计算指定列的数值和)
avg():(计算指定列的平均值)