1.使用cmd登录mysql : mysql -uroot -proot
2.DDL(数据库定义语言):操作对象数据库,表,列,关键字create , drop , alter, (对结构进行操作)
3.DML(数据库定义语言):操作对象是表中的记录进行更新, 关键字insert into, delete from, update set(数据)
4.DQL(数据库查询语言):操作对象是表中记录进行查询,关键字,select from where
5.DDL之database操作:a.创建数据库:create database 数据表名 character set utf8; b.查看所有数据库:show databases; c.查看具体某个database结构:show create database 数据库名; d.使用数据库:use 库名; e.查看正在操作的数据库:select database();
6.DDL之对table进行结构操作:a.创建表:create table 表名( 字段名 类型 [约束] , ...); b.查看所有表:show tables; c.查看表结构:desc tb1; d.修改表名: rename table 表名 to 新表名; e.修改表字符集: alter table 表名 character set utf8; f.查看表字符集:show create table 表名;
7.DDL之对表中的列结构进行操作:a.添加列:alter table 表名 add 字段名 类型 [约束]; b.修改列的类型或者约束: alter table 表名 modify 字段名 新类型 [新约束]; c.修改列名: alter table 表名 change 旧字段名 新字段名 类型 [约束]; e.删除列: alter table 表名 drop 字段名;
8.约束: a.主键约束:primary key auto_increment b.唯一约束:unique c.非空约束:not null
9.mysql字段类型: int , double(m,d) m表示数字长度,d表示几位小数。decimal(m,d) 一般用于金钱的字段 datatime ,timestamp,char(M) 固定字符长度,varchar(M) M表示字符的范围,不固定字符长度
10.DML之插入记录:insert into 表名(字段名1,。。。) values(,,); 插入的值是字符串或者日期需要用''单引号来区分,因为在String sql = "insert into ..."; 区分字符串,所以用单引号
11.DML之插入中文乱码解决问题: 方式一:修改mysql安装目录下的my.ini文件的第57行:default-character-set=utf8; 方式二: 直接输入命令: set names gbk;
12.DML之更新记录操作:update 表名 set 字段名=值 where ...
13.DML之删除记录操作:delete from 表名 where ..; 删除后auto_increment的主键不会重置
14.delete from .. 和truncate table 表名 的区别:
delete:是一行一行的删除,删除后auto_increment的主键不会重置,在事务方面,可以使用rollback回滚,恢复数据
truncate:一下子摧毁整张表,重新建表, 删除后的auto_increment的主键会重置,在事务方面,不能rollback恢复数据
15. DQL语法: select [distinct] *|列名,列名 from 表名 where...
16.使用表别名和列别名来查询: select pname p from table1 t ;
17.去掉重复值: select distinct(price) from tb1;
18.条件查询:<>表示不等于符号。
19.模糊查询:select * from tb1 where name like '%师%'; %表示任意个字符,_表示一个字符。
20.范围查询:uid in (1,3,5); 把这个里面的内容全部查询出来
21.is null 某字段为null
22.排序: order by 列名 desc|asc , 列名2 desc|asc;
23.聚合函数: sum() avg() max() min() count()计数, 注意聚合函数不统计null值,这里需要把null值修改为0再使用聚合函数
24.分组查询:group by 列名 having 条件:select cid ,count(*) from tb1 group by cid having avg(price)>2000;
25.分页查询: select * from tb1 limit 1,2; 第一个参数的从第几条数据开始,可取0值,第二个参数:每页显示多少天数据。 第一个参数= (当前页数-1)*每页显示的条数
26.查询总结:
select from
where
group by
having(分组查询添加条件只能用having)
order by