黑马程序员技术交流社区

标题: 【石家庄校区】总结的一点笔记 [打印本页]

作者: gaohanlong    时间: 2018-1-4 17:24
标题: 【石家庄校区】总结的一点笔记
本帖最后由 小石姐姐 于 2018-1-5 09:08 编辑

###数据库概述
- 数据库:
        - 数据库就是纯属数据的仓库,其本质是一个文件系统,数据按照指定的格式将数据存储起来,用户可以对数据库中的数据进行增删改查
- DBMS:
        - Datcbase Management System,数据库管理系统,操作和连理数据库的大型软件,用于建立,使用和维护数据库,对数据库进行统一管理和控制
- ##常见的数据库
- MySQL:
- Oracle:
- DB2:
- SQlServer:
- SYBase:
- 扩展:目前的数据库分类:
        - 关系型数据量:表示表一表之间的关系
                - MySQL,Oracle都是关系型数据库
        - 非关系型数据库:(NoSQL,Not,Only,SQL)
                - MongoDB
                - 用途:文档信息的存储,日志,记录,播客文章
- ##数据可以和管理系统
        - 表:java类
        - 字段名:类的成员属性
        - 记录:类的对象
- ##对应关系有什么用
        - 有了这种映射关系,以后我们会直接通过特殊的方式将jabaBean的各个属- -对应存入数据库
        - 我们在设计表示,也会参考这种面向对象的方式,设计表的字段(也就是事物的属性)

- Java中的类,和数据表对应关系
        - 表名->java类名
        - 列名->类中的属性
        - 表中每行数据->类的对象


- 查看MySQL运行在系统服务器中
        - Win+R输入services.msc
        - 进入管理系统查看mysqld.exe
        - 服务程序的启动和停止(必须以管理员权限运行cmd)
- MySQL分为俩个部分:
         - 服务端:主要负责数据的存储
                 - mysqld.exe

- MySQL登录和退出
         - 方式1:cmd->d:-> mysql -uroot -p123456
- SQLyog(MySOL)图形
--- ---
- MySQL语句介绍和分类
- 什么事SQL:结构化查询语言(为什么教结构化查询:因为数据表示有结构的,有列有行,对行和列进行查询)
- SQL语言作用:和DBMS用心,操作数据库,表,记录
- 数据表中的数据类型
         - DDL:数据定义语言,用来定义数据库对象(库,表等)
                 - CREATE
                 - ALTER
                 - DROP
         - DML:数据操作语言,对表中的记录进行曾,删,改
                 - INSERT
                 - DELETE
                 - UPDATE
         - DQL:数据查询语言,对表中的记录进行查
                 - SELECT
                 - FROM
                 - WHERE
         - DCL:数据控制语言,创建修改用户,权限
- SQL语法特点
        - SQL语句不区分大小写(默认情况数据也不区分大小写,可以设置)
        - SQL关键字用大写,数据苦命,表名,字段名等小写,便于阅读
        - 一条SQL语句可以单行或多行书写,一条语句的结尾必须用分号;结尾
        - SQL语句可的单子之间通过空格分隔,参数之间使用,逗号分隔
        - 字符串和日期要使用单引号''或双引""号包裹,推荐单引号''
- 常用数据类型
        - INT:整数
        - DOUBLE:浮点数(小数)
        - VARCHAR:存储空间是可变的,可变长度字符
        - CHAR:存储空间是固定的,固定长度字符
        - DATE:日期类型
        - TIME:
        - DATETIME:
        - TIMESTAMP:
- 创建数据库操作
         - 创建数据库格式:
                 - CREATE DATABASE 库名;
         - 删除指定数据库
                 - DROP DATABASE 库名
         - 查看所有数据库
                 - SHOW DATABASES
- 修改表的结构
         - 格式:CREATE TABLE 表名 操作关键字 列名 数据类型 约束;`
         - 操作关键字
                * `ADD`: 增加列.
                        * `ALTER TABLE 表名 ADD 新列名 数据类型 约束;`
                * `MODIFY`: 修改指定列的数据类型和约束(不能修改列名).
                        * `ALTER TABLE 表名 MODIFY 要修改的列名 新数据类型 新约束;`
                * `CHANGE`: 修改指定列的列名+数据类型+约束.
                        * `ALTER TABLE 表名 CHANGE 旧列名 新列名 新数据类型 新约束;`
                * `DROP`: 删除列.
                        * `ALTER TABLE 表名 DROP 列名;`
- 修改表名
                - 格式: `RENAME TABLE 旧表名 TO 新表名;`


- 创建数据表格式
        - CREATA TABLE 表名(列名 数据类型(长度)约束,列名 数据类型(长度)约束)
- 约束
        - 主键约束:PRIMARY KEY, 限制该列的记录值不能为非空`且唯一(不能重复)
        - 自增约束:AUTO_INCRMENT 使该列的值按照数字规律自动增长
- 向数据表中添加数据 insert
        - 格式:insert into 表名(列名1,列名2,列名3) values(值1,值2,值3)
        - 注意:列名,表名问题
        - 对应问题,个数,数据类型
        - 主键自增添加
        - 批量添加


- 插入记录格式2: 不指定主键, 让其自增
        * 当设置了主键自增后, 插入记录时可以不考虑主键字段的值. 即字段名和值都没有主键这一列. 同时可以避免产生主键重复的错误
        * 该方式适用于设置了主键自增(AUTO_INCREMENT)的情况


        - INSERT INTO 表名
        - (非自增列名1, 非自增列名2, ..., 非自增列名n)VALUES(值1, 值2, ..., 值n);


- 插入记录格式3: 不指定列名, 给所有列添加值
        * 不指定列名, 为所有列添加值
        * 该方式适用于为所有列添加值, 可以省去写列名. 但**不能省略主键**
        - INSERT INTO 表名VALUES (值1, 值2,...,值n);
- 批量插入记录:
        - 适用于批量插入记录INSERT INTO 表名(列1, 列2)VALUES(记录1值1, 记录1值2),(记录2值1, 记录2值2);
        - INSERT INTO 表名VALUES(记录1值1, 记录1值2),(记录2值1, 记录2值2);
- 删除指定的记录
         - DELETE FROM 表名 WHERE 条件;


- 条件查询:
        - 即按指定条件查询记录返回符合条件的结果集, 使用`SELECT`和`WHERE`组合
                - SELECT * FROM 表名 WHERE 列名=记录值
                - SELECT * FROM 表名 WHERE 列名 BETWEEN 条件 AND 条件
                - SELECT * FROM 表名 WHERE 列名
        - WHERE:
        * 作用: 条件子句, 过滤符合条件的结果
        
- ###运算符
- 比较运算符
        * `=`: 相等
        * `<>`或`!=`: 不等
        * `>`: 大于
        * `<`: 小于
        * `>=`: 大于等于
        * `<=`: 小于等于
        * `BETWEEN...AND...`: 在一个范围内(包含头和尾), `BETWEEN 0 AND 10;` 0~10
                * 如:
        * `IN ()`: 在列表中, 满足列表中一个即可
                * 如: `IN (1, 3, 5)`
                * `IS NULL`: 是空
- LIKE 通配符`: 模糊查询
         - 通配符种类
                * `%`: 一个百分号可以表示任意个字符. 比如`王%`, `王大锤`, `王五`
                * `_`: 一个下划线可以表示一个字符. 比如`王_`, 只能匹配`王五`
         - 逻辑运算符
                * `AND`: 与. 两边条件同时成立才成立
                * `OR`: 或. 两边条件只要有一个成立就成立
                * `NOT`: 非, 取相反结果
                        * `NOT BETWEEN ... AND ...`: 不在范围内
                        * `NOT IN`: 不在列表中
                        * `NOT LIKE`: 不匹配
                        * `IS NOT NULL`: 非空
         - 日期也是可以比较的






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2