A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 后街姚姑娘 初级黑马   /  2018-5-9 16:39  /  870 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


MySQL:
MySQL是一个关系型数据库,保存的是实体之间的关系,通常一个项目应用创建一个数据库;
数据库中一般存入的是表单数据;
数据库的基础语句操作:
DDL: 数据定义语言
DCL:数据控制语言
DML:数据操纵语言
DQL:数据查询语言
数据库每执行一句sql语言需要加分号;
Show databases;//查询所有的数据库;
Show creat database 数据库名称; //查询数据库格式定义
alter database 数据库名称 character set 字符集(utf-8)collate 校对规则;
删除数据库
Drop database 数据库名称//删除数据库;
use 数据库名称//切换数据库;
创建表单:
Use 数据库名称;
Create table 表名(字段名 类型(长度)  约束,字段名称, 类型(长度),约束.....);//多列表创建,一列之间用空格隔开,多列之间用逗号,最后一个不写逗号;
单表约束分类:
主键约束: peimary key 默认就是唯一非空
唯一约束: unique
非空约束: not null
Char 和varchar的区别:char固定长度 varchar是可变的;
表单里插入时间也要用字符串方式写入
Datetime 和Timestamp的区别
Datetime 就是既有日期又有时间的日期类型,如果没有像字段中存值,数据库使用null存入到数据库中;
Timestamp 也是既有日期也有时间的日期类型,如果没有像字段中存值,数据库用当前的系统时间存入数据库中;
Auton_increment自动增长;
Show tables;//查询此数据库中所有的表数据;
Drop table 表名;//删除表
表修改:
Alter table 表名 add 列名 类型(长度)约束;//添加列
Alter table 表名 modify 列名 类型(长度)约束;//修改列的类型和约束;
Alter table 表名 drop 列名;//删除列
Alter table 表名 change 旧列名 新列名 类型(长度) 约束;//修改列名,中间用空格隔开;
Rename table 表名 to 新表名;//修改表名
Rename table 表名 character set 字符集;//修改表的字符集
表记录:
Insert into 表名(列名...)values (....);//插入几个列就添加几个值;
Insert into 表名 values (.....);//插入所有列;
值得类型与数据库中列表的类型一致
值的顺序与数据库中表列的顺序一致
不能超过最大长度
值的类型是字符串或者是日期类型,使用单引号引起来;
修改表记录:
Update 表名 set 列名=值 where 条件;
值的类型与列的类型一致
值的最大长度不能超过列设置的最大长度
字符串类型和日期类型添加单引号;
删除表记录:
Delete from 表名 where 条件;//一条一条记录的删除;   
Truncate table 表名;//删除表,然后创建一个结构一样的表,不可恢复;
删除表的记录是删除一行记录,如果不写条件判断那么就是删除表中所有记录;
常看表记录:
基本查询:select *列名 from (条件)
查询其中两项或多项: select 列名,列名 from 表名;
查询不重复的值 select distinct 列名 from 表名;
查询 select 列名,列名相加(int 类型) from 表名;
Select 列名,列名相加 as 别名 from 表名;
条件查询:
select *from 表名 where name=' ';
select *from 表名 where name=' 'and 列名= ' ';
like可以进行模糊查询,在like子句中可以使用_或者%作为占位符._只能代表一个字符
%号可以代表任意个字符
like和=不能同时用;
like 'A_' :必须是两个字,而且A开头
like 'A%' :开头是A的,后面任意字符
like '%A' :以A结尾的;
like '%A%' 包含A的就可以;
并列( and 与 )(or 或 );
select *form 表名 where in范围;
<>不等的意思相当于!=;
排序查询:
select *from 表名 order by 列名 desc; 降序 从大到小
select *from 表名 order by 列名 asc ; 升序 从小到大
select *from 表名 where 列名 like '%A' order by 列名 asc; 模糊排序查询
聚合函数使用:
where 后面不能跟聚合函数. 需要使用一个关键字 having
sum(): 索取总值
select sum(int类型列) from 表名; 多个用 , 号隔开 sum(),sum();条件查询后面直接加条件操作;
总值相加 sum(A+B+C ),如果里面有null则会没有null后面的值,
sum(A)+sum(B)+sum(C)不会这样;
count() 获得总记录:
select count(*)from 表名;
max()
select max(A)from 表名;获取A里面的最大值
min()
select min(A)from 表名;获取 A里面的最小值
avg()
select avg(A) from 表名;获取A里面值的平均值;
SFGH;
表关系:
表关系:
一对多
建表:
多的一方创建外键连接一的一方主键;
多对多
建表
需要借助第三张表
第三张表至少两个字段作为外键指向双方主键
一对一
唯一外键对应的方式 unique(设置唯一)
多表查询分类
链接查询
select *from 表01 cross join 表02
内连接
显示内连接:
select* form 表01 inner join 02 on 关联条件
隐式内连接:
select* form 表01,表02 where 关联条件
外连接
左外连接
select *form 表01 left outer join 表02 on 关联条件;
以左边表开始查询
右外连接
select *from 表01 right outer join 表02 关联条件
以右边表开始查询;
JDBC
添加:
insert into 表名 values();
删除
delete from 表名 where 判断条件;
修改
update 表名 set  修改的东西 where 判断条件
查询
select *from 表名;
导包为java.sql下的包,导包错误的话一些地方类型会显示不一致,让你强转,这时候就可以看导报是否错误了;
@Test可以用于测试而不用写main方法;
需要导包:import org.junit.Test;
加载驱动----------获得连接路径---------创建执行SQL语句对象-----------执行SQL语句----------释放资源
Connection conn = null;//设置为空;
PreparedStatement ps = null;//设置为空;
Class.forName(“com.mysql.jdbc.Driver”);//加载驱动,使用mySQL数据库固定写法;
Connection conn(变量名自定义)=DriverManager.getConnection(“jdbc:mysql:///数据库名”,”root(权限)”,”密码”);//加载本地数据库写法,密码是自己的密码;
String sql(变量名自定义)=”  SQL语句 ”;//写入SQL语法操作;
Ps=conn.prepareStatement(sql);//执行sql语句;
释放资源规范写法:       
if (rs != null) {
                                try {
                                        rs.close();
                                } catch (SQLException s) {
                                        s.printStackTrace();
                                }
                        }
                        if (conn != null) {
                                try {
                                        conn.close();
                                } catch (SQLException s) {
                                        s.printStackTrace();
                                }
                        }
                        if (ps != null) {
                                try {
                                        ps.close();
                                } catch (SQLException s) {
                                        s.printStackTrace();
                                }
                        }

1 个回复

倒序浏览
在WPS里字体设置的颜色,这里面不显示,所以都是黑色字体.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马