CREATE TABLE IF NOT EXISTS `book`( `id` INT UNSIGNED AUTO_INCREMENT, `title` VARCHAR(100) NULL, `author` VARCHAR(40) NOT NULL, `date` DATE, INDEX title_index(title(100)), PRIMARY KEY ( `id` ))ENGINE=InnoDB;复制代码
AUTO_INCREMENT定义列为自增的属性,默认自增1,一般用作主键
NOT NULL指定该字段不能为空, 在操作数据库时如果输入该字段的数据为NULL ,就会报错
PRIMARY KEY关键字用于定义列为主键
ENGINE 设置存储引擎
CHARSET 设置编码
INDEX设置列为普通索引、也可以使用UNIQUE指定唯一索引、 FULLTEXT指定全文索引
添加表字段
1复制代码
alter table book add press varchar;复制代码
删除表字段
1复制代码
alter table book drop press;复制代码
修改表字段
1复制代码
alter table book modify press char;复制代码
查看表结构
1复制代码
show columns from book;复制代码
修改表名
1复制代码
alter table book RENAME TO book1;复制代码
删除表
1复制代码
drop table book;复制代码
创建索引
123复制代码
create index title_index ON book(title(100)); alter table book ADD INDEX title_index(title);复制代码
删除索引
1复制代码
drop index title_index ON book;复制代码
插入数据
1234567复制代码
insert into book values(值1,值2,....);#值的顺序与字段在表中的顺序一致insert into book(title,author) values('Java学习路线','Java学习录');#为指定字段赋值 insert into book(title,author) select title,author from test;#copy另一张表的数据复制代码
修改表数据
1复制代码
update table set title='学习笔记',date='2019-05-21'复制代码
删除表数据
123复制代码
truncate table book;#删除表中所有数据delete from book where xx=yy;#根据条件删除表中数据复制代码
CASE expression WHEN condition1 THEN result1 WHEN condition2 THEN result2 .. WHEN conditionN THEN resultN ELSE resultEND#CASE 表示函数开始#END 表示函数结束#如果 condition1 成立#则返回 result1#如果 condition2 成立#则返回 result2#当全部不成立则返回 result#而当有一个成立之后,后面的就不执行了复制代码
select * from book where title="Java%";#查询以Java开头的数据,只有这样使用索引以下两种不使用索引select * from book where title="%Java";#查询以Java结尾的数据select * from book where title="%Java%";#查询包含Java的数据复制代码
合并结果集
1复制代码
select title from book1 union select title from book2复制代码
连接(left jion/right jion/jion/逗号)
1234复制代码
select * from book1 left jion book2 where xx=yy #获取左表所有记录,即使右表没有对应匹配的记录select * from book1 right jion book2 where xx=yy #获取右表所有记录,即使左表没有对应匹配的记录select * from book1 jion book2 where xx=yy #获取两个表中字段匹配关系的记录select * from book1 , book2 where xx=yy#同jion复制代码
分组
1复制代码
select count(*) from book group by author ='Java学习录'#查询公众号Java学习录一共写了多少篇文章复制代码
排序
12复制代码
select * from book order by date ASC#默认就是ASC 可省略,按date升序排列select * from book order by date DESC#按date降序排列复制代码
分页
123复制代码
select * from table limit 5; #返回前5行select * from table limit 0,5; #同上,返回前5行select * from table limit 5,10; #返回6-15行复制代码