MYSQL单表查询的总结

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

猜你喜欢

转载自blog.csdn.net/qq_33243148/article/details/87305949