数据库表操作
1)创建表
create table 表名(列名 类型,列名 类型...);
2)查看表中所有数据
show tables;
3)查看表的结构
desc 表名;
4)删除表
drop table 表名;
新增 :insert into 表名 values (值,值...);
指定列插入 :insert into 表名(列名,列名...) values (值,值...);
一次插入多行记录: insert into 表名 values (值,值..),(值,值...)...;
查询
1.全列查询
select * from 表名;
2.指定列查询
select 列名,列名 from 表名;
3.表达式查询
select 表达式 from 表名;
4.带别名的查询
select 表达式 as 别名 from 表名;
as别名,可以是针对表达式,列,表名
as可以省略(通常不建议省略)
5.去重
distinct 修饰某个列/多个列
值相同的行只保留一个
6.查询的时候排序
把行排列
select 列名 from 表名 order by 列名 asc/desc;
asc:升序 desc:降序 ,如果省略默认升序
指定某个列进行排序
排序是针对临时数据来展开的,此处的排序,不影响原有数据在mysql服务器上存储的顺序。
order by还可以针对表达式排序
指定多个列来排序,order by后面可以写多个列,使用,来分割
先按照数学成绩排序,如果数学成绩相同,再按语文成绩。
7.查询条件:where
select 列名 from 表名 where 条件;
1)< , >
使用别名:
select条件查询执行顺序:
1.遍历表中每个记录。
2.把当前记录的值,带入条件,根据条件进行筛选。
3.如果这个纪录条件成立,就要保留,进行列上的表达式的计算。
第三步进行别名的定义,第二步执行where。执行where的时候,total还处于未定义状态。
sql中and优先级更高
2) between ...and .../>=,<=
3) in
使用“in”表示离散的集合
4) like 模糊匹配
通配符,特殊字符,表示特定含义:
%:任意个任意字符
_:一个任意字符
sun%:以sun开头
%sun:以sun结尾
%sun&:包含sun
5)<=>
insert into exam values(10,'sunxingzhe',null,null,49);
8. 分页查询:LIMIT
select 列名 from 表名 limit N offset M;
limit可以限制这次查询最多能查出来多少个结果。
offset:偏移量 从0开始