使用数据库
use 库名;
创建表格
/* auto_increment 自增
* not null 非空
* primary key(`属性`) 设置主键*/
create table `tableName`(
`id` int unnsigned auto_increment,
`name` varchar(100) not null,
`thdate` date,
primary key(`id`)
)engine=InnoDB default charset=utf8;
删除表格
DROP TABLE 表名;
增删改查基本语法
insert into 表名(属性1,属性2...属性n) values (值1,值2...值n);
delete from 表名 where 条件;
update 表名 set 属性1=值1,属性2=值2,...属性n=值n where 条件;
select 属性1,属性2,....属性n from 表名 where 条件;
where
and|or 意思是,填and或者填or
示例:select 属性1,属性2,....属性n from 表名 where 条件1 and|or 条件2;
注意:where对于条件是不分大小写的(如sname='abc’和sname='AbC’对于where来说是一样的),如果需要区分大小写用BINARY关键词。
示例:where sname='abc';(不区分大小写)
示例:where BINARY sname='Abc';(区分大小写)
LIKE模糊匹配
%是用于匹配任意字符
%abc:就是匹配以abc结尾的
abc%:就是匹配以abc开头的
%abc%:就是匹配包含abc这个整体的字符串的,记住不是包含abc这三个字母的,是abc这个整体字符串的
示例:select 属性 from 表名 where 属性1 LIKE '%abc';
ORDER BY排序
ASC|DESC表示选ASC或DESC填入
DESC:降序
ASC:升序
示例:select 属性 from 表名 ORDER BY 属性1 ASC|DESC;
GROUP BY分组
可配合
count()。统计数量
sum()。求和
avg()。求平均
等函数使用
示例:select sname,count(age) from 表名
where 条件
GROUP BY sid;
JOIN连接
INNER JOIN:内连接,获取两个表中字段匹配关系的记录
LEFT JOIN:左连接,获取左表所有记录,即使右表没有匹配的记录
RIGHT JOIN:右连接,与左连接相反
起别名:表名B as b,这样其他地方用到表B的时候就不用输入表B的全称了,就输入一个b就可以了
select b.id,b.author,a.count from 表B as b INNER JOIN 表A as a ON b.author=a.author;
以上SQL等价于
select b.id,b.author,a.count from 表B as b,表A as a where b.author=a.author;