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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 1015747546 初级黑马   /  2018-5-9 15:32  /  633 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 小石姐姐 于 2018-5-11 09:40 编辑

【石家庄校区】课程总结

BS
【 disabled 】-----不可选中和点开;Carousel----图片轮播-----JS插件
预定义样式
**【默认样式】---Default【首选项】-----Primary【成功】-----Success【一般信息】-----info【警告】-------Warning【危险】-----Danger【链接】------Link**
            **#数据库========**
概述:数据库就是一个文件系统  通过标准的SQL语句获取数据;                        #MYSQL概述----是关系型数据库管理系统;
关系型数据库 保存的就是 实体之间的关系;
关系型数据库:ER模型:E:Entity    R:Relational;
常见的关系型数据库


MySQL;

Oracle

SQLServer;

DB2;

SyBase;

#安装了MySQL的电脑被称为是MySQL数据库服务器;
在数据库服务器内部  通过数据库存储数据  通常情况下一个应用创建一个数据库;
修改数据库
语法: alter database 数据库名称 character  set 字符集  collate  校对规则;
删除数据库
语法: drop
创建表
  • 语法:create table 表名称【字段名称 字段类型(长度)约束 , 字段名称 字段类型(长度) 约束....】;
  • 字段类型
  • 一个实体对应一个表,一个实体属性对应表的一个字段。

    • MySQL中的类型:                        ------------JAVA中的类型;        

  • tinyint / smallint / bigint;-----byte/short/int/long
  • float ------ float
  • double ------- double
  • bit ------------ boolean   
  • char / String ---- char / varchar
  • date/time/datetime/timertamp --------Data;

    • char 和 varchar的区别:

  • char代表是固定长度的字符或者字符串---定义类型char(8)向这个字段存入字符串hello , 那么数据库使用三个空格将其补全;
  • 定义类型 varchar(8) , 向这个字段存入字符串hello存入到数据库的就是hello ;
  • date/time/datetime/timestamp == Data**File ----- Blob / TEXT**

查看表
show tables;desc user --- 查看表结构;
约束
**
  • 作用: 保证数据的完整性;
  • 单表约束分类:
  • 主键约束 : primary key 主键约束默认就是唯一 非空的
  • 唯一约束 : unique
  • 非空约束  : not null
  • **

tab页 就是 标签页】
索引框--轮播图---模态框---标签页
SQL是结构化查询语言:
是一种特殊目的的编程语言 是一种数据库查询和程序设计语言   用于存取数据 以及 查询   更新 和 管理 关系数据库;  SQL--同时也是数据库 脚本文件的 扩展名;
#SQL的分类:
**                                         创建数据库  删除数据库   DDL -- 数据定义语言---- create   drop        alter                                                授权DCL----数据控制语言----grant   if                                        插入                        更新                        删除DML----数据操纵语言----insert    update   delete                                                查询DQL----数据查询语言----select**
操作数据库
  • 创建数据库 --- 语法--  create database 数据库名称 [character set 字符集 collate 字符集校对规则]
  • 查看数据库 --- 语法-- show databases (查看数据库服务器中所有的数据库) ---- 查看某个数据库的定义信息: show create database 数据库名称;
  • 修改数据库 ---alter database 数据库名称 character set 字符集 collate 校对规则;
  • 删除数据库 ---语法-- drop database 数据库名称;
  • 其他数据库操作 ---切换数据库----use 数据库名称;---查看当前正在使用的数据库---select database();

SQL存储方式:
一个项目创建一个数据库在数据库中  一个应用一个数据库  在数据库中用表存储数据   一个实体一个表;    在一个表中  有多条记录  创建一个实体实例对象 会创建一个新记录;
表的创建“
【表的创建 和 修改】----修改表结构
** 添加列 ; ---  alter table 表名 add 列名 类型(长度) 约束;**修改列类型 长度 和 约束 :---- alter table 表名 modify 列名 类型(长度)约束;
  • 删除列 :---- alter table 表名 drop 列名;
  • 修改列名称:--- alter table 表名 change 旧列名 新列名 类型(长度) 约束;
  • 修改表名:------alter table 表名 to 新表明;
  • 修改表的字符集:----  alter table 表名 character set 字符集 ;

对表的记录进行操作:
  • 添加表的记录语法 : 1  插入某些列---- insert into 表名 (列名1 , 列名2....) value       (值1 ,值2....) 2 --- 向表中插入所有列 :insert into 表名 value (值1值2...); 顺序要一致;

插入中文记录的解决办法:
   将MYSql数据库服务器中的客户端部分的字符集进行修改为 gbk ;        [client ]port = 3306;                [Mysql]default - character - set =gbk;        
修改表记录
语法:update 表名 set 列名=值,列名=值 【where 条件】;【字符串类型和日期类型 添加单引号】
删除表记录
语法 : delete from 表名 【where 条件】;默认删除表中所有记录----需要有条件 ---- delete from 表名 --属于DML ---逐条删除;
truncate table user ----- 删除表中所有记录 --- 属于 DDL---不可恢复;--直接删除表  然后创建新表;查询表记录 重要】:  select 查询对象 * 列名 from 表 where 条件 ;
**基本查询----- select * from 表名 ....
条件查询select * from 表名 where 条件;排序查询select * from 表名  order by asc/desc  [升序 / 降序] ;分组统计查询**
group by --  去重---distinct常用的表修改----【添加列 / 添加字段】---【修改列】【swiper---滑动触摸插件网站】【自动增长 --- auto_increment】
【对原有程序进行添加 延伸   不能对原有代码 进行修改】
查看表记录 -----  select * form user;恢复被 delete from user 删除的记录----rollback按条件删除  修改条件查询
使用 where  字句;
模糊查询
like  在like字句中  可以使用 _或%--- _代表一个字符 % 可以代表任意个字符 ;  范围查询 --- in ;[ and  or  not ]---并列
排序查询-- --  默认升序     desc --- 降序;
**  order by 字段名称 asc / desc ;**
【分组统计查询】聚合函数查询---------selecet **
sun();---求和--------null 加任何值  都为  null; ifnull(有null的元素)--将null变为0;**count ---统计个数**----做分页用max ()min ()avg ()---平均值
分组查询:
group by 字段名称;from orderitem group by带有聚和函数的条件过滤 --- having ;
总结  S(select)...F(from)...W(where)...G(grouop by)...H(having)...O(order by);多表约束
作用 ;用来保证数据的完整性的。
  • 单表约束 ---- 主键约束  /  唯一约束  /   非空约束
  • 多表约束 ----- 外键约束 : 用来保证数据完整性(多表之间);
    【创建两个表 进行外键演示】
  • 在表上添加外键 -- alter table 表名 add foreign key (dno) references  dept(did);
  • 设置外键为非空 -- alter table employee modify dno int not null;

表与表的关系“
  • 一对多的关系 ---  一对多  -- 一个部门下有多个员工 一个员工只属于一个部门
  • 多对多的关系 --- 一个学生可以选择多门课程 一门课程可以被多个学生选择
  • 一对一的关系 --- 一个公司有一个注册地址 一个注册地址只能对一个公司

一对多的关系介绍:
**  建表原则: 在多的一方创建外键 指向一的一方的主键;**
多对多的建表原则:
需要创建中间表 中间表中至少两个字段 分别作为外键指向多对方的主键;
多表查询分类---1. 链接查询 ---- - cross join
交叉链接 : 查询到的是两个表的笛卡尔积; 语法:  select * from  表1   cross join 表二 ;select * from 表一 , 表二;
2. **内连接 ---  inner join
  显示内连接: 在SQL中显示的调用inner join 关键字;**   语法: select * from 表1 inner join 表2 on 关联条件;        隐式内连接: 在SQL中没有调用 inner join 关键字;        语法: selec  t * from 表1,表2 where 关联条件;
3. 外链接 --- outer join (outer 可以省略)
左外链接:--- 语法: select * from 表1 left outer join 表2 关联条件;右外链接: ---- 语法: select * from 表1 right outer join 表2 on 关联条件;
  • 子查询一个查询语句条件需要依赖另一个查询语句的结果;-

一对一的关系建表原则:
建表原则: 1 唯一外键对应 : 假设是一对多  在多地一方创建外键指向一的一方的主键  将外键设置为 unique          2  主键对应  将连个表的主键建立对应关系即可;
将一个表外键指向另一个表的主键 ----
** alter table employee   add foreign key (dno) references dep (did);**
在实际开发中   ---- 删除部门前  先将其下属员工进行手动删除 清除干净后   再 将部门进行删除;数据库的设计  永远在开发前;多表访问 ------------重点
建表前  先分析 表之间的联系和类型    依据分析建表;
多对多 需要建一个中间表  来完成联系 --- 外键指向  目标主键
==================================================
多表查询======================================
  • 交叉查询 --- cor  jion  --不使用

  • 内连接 ---- inner key ---

内连接  表达的是 两个表的交集的部分   根据关联条件 去两个表中匹配  有对应关系的 记录  有则返回   没有则不返回;语法: select * from 表1 inner join 表2 on 关联条件;---不常用
  ** select * from 表一 , 表二 where 关联条件   **
  • 外链接 ---- outer join

左连接 ---- left
left outer jion ----- 以左边表格为基准进行查询 匹配到 则返回 匹配不到则返回 null
右连接 ----- right
right outer jion --- 以 右边表格为基准; 匹配到 则返回 匹配不到则返回 null
内外连接的区别:子查询
**1. 带 in 的子查询: ---- 常用select * from     where cid IN(select cno from sudent where birthday > '1991-01-01');
  • 带exists的  -------常用select * from 表名  where exists (select cno from student where birthday > '1991-01-01');**
  • 带any的

  • 带all的

查询
=============================
事务
  • 概述:逻辑上的一组操作  组成操作的各个单元逻辑 全部成功或全部失败;
  • 开启事务: --- start transaction;
  • 提交事务: ----commit
  • 回滚事务 :---- rollback;
  • start transaction;

事务的特性: ----- ACID特性【】【】
原子性 ---- 事务不可分割一致性 ---- 执行前后 数据完整保持一致隔离性 ----- 事务的执行 不能受到其他干扰 --- 讲的是并发持久性 ------ 事务结束  数据持久化到数据库;
安全性问题:脏读 ---- 数据未提交  交易已完成不可重复读 ---- 读取到了其他事务的 update 虚读   ------  读取到了
隔离级别
设置隔离级别 ------  set session transaction isolation level  隔离语句;查看隔离级别 ---- select @@x_isolation;read uncommittedread committedrepeatable readser
重置MySQL密码:
停止MySQL服务 --- 在cmd下启动MySql服务【mysql --skip-grant-tables 】 ---- 重开cmd的命令行 (不需要密码 )[mysql -u root   -p]---  修改root密码【use mysql; -- update user set password = password('123') where user = 'root';】---- 结束进程 ----  重启服务;
数据库的备份和还原
  • 打开cmd的命令行窗口 --- mysqldump -u root -p web_test1 >C:/web_test1.sql

数据库的还原
1.** 第一种还原方式: 1 -- 在数据库服务器内部创建数据库【create database web_test1;】----2 在命令行窗口【mysql -u root -p web_test1 < C:/web_test1.sql   】**2.第二种还原方式 : 1 -- 在数据库服务器内部创建数据库 【create database web_test1;】 ---- 2 切换到该数据库使用 source命令还原  【 use web_test1;  source C:/web_test1.sql 】
可视化数据库的操作在运行窗口进行 服务器的关闭/重启;
net stop ---关闭net start---开启
SQL语句
**DDL -- create  drop alter... --定义语言DCL -- grant   if...  控制语言DML -- insert   update   delete...  操纵语言DQL -- select ..... 查询语言**
  • 数据库常见数据库:  MySQL   Oracle   SQLServer  DB2  SyBase

语法:
  • 查看数据库 --- show databases;                                                                     查看数据库定义信息 : show create database 数据库名;
  • 修改数据库 --- alter database 数据库名称  character set 字符集 collate 校对规则 ;
  • 删除数据库 --- drop database 数据库名称;
  • 切换数据库 --- use 数据库名称
  • 查看当前正在使用数据库 ----  select database();

  • 数据库表

File  ----  BLOB / TEXT约束:作用 - 保证数据的完整性
  • 主键约束 --- primary key ---主键约束默认就是 唯一 非空
  • 唯一约束 --- unique
  • 非空约束 ---- not null
  • 创建表 -- create table 表名称(字段名 字段类型(长度) 约束.....)
  • 查看表 -- show tables;   查看表结构 --- desc 表名;
  • 删除表 --- drop table 表名;

修改表 {
**1.** 添加列: alter teble 表名 add 列名  类型(长度)约束;
  • 修改列类型 长度和约束: alter table 表名 modify 列名 类型(长度)约束;
  • }【
  • 删除列 : alter table 表名 drop 列名;
  • 修改列名称 : alter table 表名 change 旧列名 新列名 类型(长度)约束
  • 修改表名 : rename table 表名 to 新的表名;
  • 修改表的字符集 :  alter table 表名 character set 字符集;   】

benutils
重点
  • 表记录
  • 添加表记录 【
  • 向表中插入某些列 : insert into 表名 (列名1,列名2...)values(值1,值2...);
  • 向表中插入所有列 : insert into 表名  values(值1,值2...);  】 *注意: 值类型 要和 数据库中表列类型一致  顺序要一致 最大长度要符合设置值  值类型是字符串 或 日期类型  使用 单引号引起来;**                                       添加中文记录 -- 将MySQL数据库服务器中的客户端部分的字符集 改为gbk; 然后重启 MySQL的服务器 ;  services.msc
  • 修改表的记录 : update 表名 set 列名= 值 , 列名 = 值 【where 条件】;注意事项 同上;
  • 删除表的记录: delete 表名 【where 条件】;注意: 删除表的记录 指得是删除表中的一行记录;   删除如果没有条件 默认是删除表中的所有记录;

【两种做法: 1. delete from user ; 删除所有 属于DML语句 依次删除 可以作用在DML语句上的  2. truncate table user;  删除所有记录 属于DDL 将表删除 然后创建一个结构一样的表 事物不能控制DDL的 ;】
查看表的记录(重点重点重点)(distinct)--- 去除重复的值;
  • 基本查询 --- select * |列名  from 表名 【条件】(select * from 表名)
  • 条件查询 --- where > < <= >= <> =   ; like -- 模糊查询[_或%] in--范围查询, 条件关联 -- and or not ;
  • 排序查询----  order by 字段名称   asc / desc -- 倒序 ;
  • 分组查询 ----   group  by  字段名称  
  • 聚合函数 ---- sum()   count()   min()  max()   avg();

where  的子句后面不能 跟着聚合函数    如果现在使用带有聚合函数的条件过滤 (分组条件过滤)  需要使用一个关键字 having;总结  ;
S(select)...F(from)...W(where)...G(group by)...H(having)...O(order by);


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马