Java-bug点滴记录(五)

1.修改表:

1.修改表名:
rename table 原表名 to 新表名
2.增加一列:
alter table 表名 add 列名 类型

2.查询数据库:(聚合函数)

count()计数
sum()求和
max()最大值
min()最小值
avg()求平均值
(1)group by 分组的字段 having 聚合函数
select sex,avg(height) as ah 分组字段和聚合函数 from stu group by sex having ah > 70

3.分段查询

mysql有:
limit 进行分段查询
SELECT * FROM stu WHERE sanme LIKE '_i%' LIMIT 2;(数字表示查询几个)
SELECT * FROM stu WHERE sanme LIKE '_i%' LIMIT 1,2;(第一个数字表示偏移量,第二个表示查询数量)
总结出一个分页公式!
             当前页数! currentpage  从1开始
             每页的数量! pagesize
             limit (currentpage-1)*pagesize,pagesize;

4.修饰符 约束

primmary key : 不能重复且不能为null
auto_increment:自动增长。
unique not null :不可重复且不能为空。
外部增加修饰符:alter table 表名 add primary key(列名)

constraint 外键约束的名称 数据库不可重复 foreign key(外键) references 参照表(主键)
外部增加:
alter table 表名 add constraint 外键约束的名称 数据库不可重复 foreign key(外键) references 参照表(主键)

5.子查询

一个查询语句中嵌套了另一个查询!

            select * from student where sex = "nan" and height > (select height from student where name = 'wangjiao')

			单行单列   =
            单行多列   in
            多行单列   where 
            多行多列   from
三大查询区别:
            99查询大法 内链接只是语法不同!但是查询结果相同!
               他们完全遵守主外键相同!

               没有王老五!

               但是开发中,肯定会指定逻辑主表!(这个表没有外键,但是也要被显示出来!)

               外连接:也是连接查询!可以通过左还是右指定一个逻辑主表!
               就算逻辑主表没有外键数据 也会显示!


               有王老五!

               小建议:建议把逻辑主表放在最左面!后面一致左外连接即可!


               注意:只要有了外连接 后面的连接必须全部是外连接!
第一个:在子查询中,where后面的条件语句不可使用分号结束,会出现语法错误;
错误代码:再次使用了分号,检查了大概40分钟,一小时。
SELECT sname FROM student WHERE sid IN (SELECT student_id FROM score WHERE course_id = (SELECT cid FROM course WHERE cname = '物理';) AND num = 100)
正确代码:
SELECT sname FROM student WHERE sid IN (SELECT student_id FROM score WHERE course_id = (SELECT cid FROM course WHERE cname = '物理') AND num = 100)
第二个:在子查询中,where后面的条件语句不可使用小括号将条件的一部分内容括起来,否则会出现错误:
错误代码:
SELECT sname FROM student WHERE sid IN (SELECT student_id FROM score WHERE (course_id = (SELECT cid FROM course WHERE cname = '物理')) AND num = 100)
正确代码:
SELECT sname FROM student WHERE sid IN (SELECT student_id FROM score WHERE course_id = (SELECT cid FROM course WHERE cname = '物理') AND num = 100)


4.DQL(单表查询)        

          1.基本查询

               select * from  表名

               select 列名,列名 from  表名
          2.基本条件查询

               where 

                  and  or 

          3.模糊查询

                  like 

                  _ 任意一个字符
                  % 任意字符

                  where 列名 like '__z%'
          4.字段控制

               去重

                    distinct

                    select distinct sal from emp;


                为null判断

                    sql  1000+null = null;

                    ifnull(comm,0)

                起别名

                    列名 as 别名 , 列名 别名


          5.排序

                不用where 

                order by一定在where后面!

                order by 列名 asc/desc ,列名 asc/desc
          6.聚合函数

                count() 计数   null不计数
                sum()
                max
                min
                avg



          7.分组

                group by 分组的字段 having 聚合函数!

                select sex ,avg(height) as ah 分组字段和聚合函数 from stu group by sex 
                        having ah>170

6.数据库备份语句

备份:

​     mysqldump -u账号 -p密码 数据库名>d:\xxx.sql

恢复:

​     mysql -u账号 -p密码  数据库名<d:\xxx.sql

设置编码格式:

​        [mysql]
​        no-beep

​        default-character-set=utf8


​          

​        [mysqld]

​        default-storage-engine=INNODB
​        character-set-server=utf8 
​        collation-server=utf8_general_ci

​      重启服务!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值