第一章 MySQL常用命令:
1.显示数据库:show databases;
2.使用数据库:use arsenal_db;
3.创建/删除数据库和数据表:create database arsenal_db;
Drop database arsenal_db;
Create table mytable{id int not null,name varchar(30) not null default "Player"};
not null表示不能为空;
default表示默认值;
4.显示数据库的表:show tables;
5.创建表:create table my_tab( id int, name varchar(30));
6.显示表结构:desc my_tab;
7.删除表:drop table my_tab;
8.插入表数据:insert into my_tab (id,name) values (1,'Ozil');任何文本型的都要加单引号或者双引号,比如char,varchar,date等
9.查看表记录:select * from players;
第二章SELECT命令
1.条件查找:select * from players where id=1;*表示返回所有的列;
2.综合查询:select * from players where id=1 and name='Ozil';
and:并且
or:或者
like:符合某种条件,多和通配符一起用。通配符有:
- %:任意数量未知字符: select * from players where name like '%iabi';
- _:一个未知字符: select * from players where name like '_iabi';
- between...and:等价于<= >=: select * from players where name like '%iabi';
- in:在...范围内: select * from players where name like '%iabi';
- not in:不在...范围内
- not:不满组某种条件,单独使用not必须跟在where之后: select * from players where name not like '%iabi';
3.比较运算符:=,<>不等于,<=,>=;
4.必须使用is null 选择值为null的数据;
5.使用\进行转义,例如\‘表示’;
第三章 DELETE 和 UPDATE
1.删除语句:delete from players where ...;delete不能删除某一列,只能逐行全部删除;建议使用delete的时候先使用select检查情况;
2.更新语句:update players set name = ‘Walcot’, id = 5 where...
3.以现有列的内容填充新列:update players set newcolumn=right(oldcolumn,2);
第四章 规范化设计表结构
1.让表结构具有原子性(信息具体,不需要再进行查找,分隔)
2.每张表都有主键,唯一表示一行的键值,主键必须是not null,可以设置为 int not null auto_increasement
3.使用:show create table players;返回创建表的SQL语句。
4.创建表的最后一句加上设置主键的语句:primary key (id)
Create table test(id int not null,name varchar(30),primary key(id));
5.更改表结构:
添加:alter table players add column sex int not null, add primary key (id);
第五章 ALTER
1.添加列:alter table players add column sex int not null [first,last,fifth插入位置], add column ...;插入位置不写默认为最前位置
2.修改表名:alter table oldtable rename to newtable;
3.结构修改列(名称和类型):alter table players change column old new int not null auto-increment, add primart key(new);修改多列用逗号隔开。
4.修改列类型:alter table players modify column col varchar(20);
5.删除列:alter table players drop column old;
6.常用字符串函数,适合char和varchar:
right:从列的右侧开始取n个字符。例如select right(name,1) from players;
left:从列的右侧开始取n个字符。
substring_index(name,',',1):寻找name列中第一个逗号前面的内容
substring,upper,lower,reverse,ltrim,rtrim等
第六章 SELECT进阶
1.case语句:会对全部的行进行修改,因此case一定要情况完全写完整,慎重使用。
update players set name =
case
when column1 = value1 then newvalue1
when column2 = value2 then newvalue2
else defaultvalue
end
2.单列排序:select name from players order by name;
3.多列排序:select id, name from players order by id,name;
4.反序:select name from player order by name desc;
5.数值函数:
sum:取总和;select sum(id) from players where id > 1;
avg:取平均;
max:取大值;
min:取小值;
count:计数;count(name)计算name列的行数;
关键字:
distinct:去掉重复的值; select distinct name from player order by name;
group by:按照其进行分组,相同内容作为一组,一般与sum、avg、max、min和count等联合使用;select * from players group by name;
limit:指定显示的条数, select id from players order by id desc limit 2;显示两条