数据库基础

1、数据库的基本概念:用来存储或操作数据内容

2、数据库类型:关系型数据库,是目前市场上主流的数据库,主要代表MySQL,Oracle

                      非关系型数据库,新兴数据库,主要代表MongoDB等

3、SQL语言 - 无论什么数据库产品,都使用SQL语言
      DDL - 数据定义语言(数据库+表)
      DCL - 数据控制语言(权限)
      DQL - 数据查询语言
      DML - 数据操作语言

4、注意
     SQL语言并不区分大小写(官方建议大写)
     SQL语言使用字符串时,建议使用单引号'

5、DDL                  主要三个功能  :CREATE|ALTER|DROP
  ① 数据库操作
       创建数据库
          用法 - CREATE DATABASE 数据库名称;
       查看数据库
          用法 - SHOW DATABASES;
       修改数据库
          用法 - ALTER DATABASE 数据库名称 CHARACTER SET utf8(具体操作);
       删除数据库
          用法 - DROP DATABASE 数据库名称;
       使用(切换)数据库
          用法 - USE 数据库名称;
                     数据库一旦被创建,很少修改或删除


  ②数据表操作
     

    数据类型
          数值(Number)数据类型
               INT - 整数
               FLOAT/DOUBLE - 浮点型(小数)
               DECIMAL - 精确值(金额等)
          日期(Date)数据类型
               DATE - 日期(默认格式:yyyy-MM-dd)
               DATETIME - 日期时间(yyyy-MM-dd hh:mm:ss)
               TIMESTAMP - 时间戳(标识:唯一)
          字符串(String)数据类型
               CHAR - 长度固定的字符串
                  定义一个字符串的长度为10,实际存储的内容为"abc",未被字符占用的位置会以空格补位
               VARCHAR - 长度可变的字符串
                  定义一个字符串的长度为10,实际存储的内容为"abcde"
         

         一、创建数据表
               CREATE TABLE (
                    字段名称1  数据类型,
                    字段名称2  数据类型,
                    ...
                   );
          约束
           主键约束 - PRIMARY KEY       作用 - 唯一,不可重复
           主键自增约束 - AUTO_INCREMENT        作为主键的字段,用于自增,之后就可以设置主键的值为null了
               案例:创建用户表(id,name,pwd,age,email)
                    CREATE TABLE   user (
                      id  INT PRIMARY KEY AUTO_INCREMENT, //标识(唯一,不可重复)
                      name  VARCHAR(30),
                      pwd     VARCHAR(30),
                      age   INT,
                      email VARCHAR(30),
                   );
        二、删除数据表
            用法 - DROP TABLE 表名;
        三、查看表结构
            用法 - DESC 表名;

 6、DML(增删改)    
     一、插入(新增)数据
           用法一
               INSERT INTO 表名 VALUES(字段值1,字段值2,...);
     * 注意   当前表具有多少字段,VALUES输入多少字段值,如果哪个字段是主键自增的话,使用NULL补位
           用法二
               INSERT INTO 表名(字段名1,字段名2,...) VALUES(字段值1,字段值2,...)
     * 注意表名后定义多少字段,VALUES后输入多少字段,当前数据表的字段是允许为空的
          练习 - order表
         1. 插入orderid,ordername,price,addr,ordertime
               INSERT INTO order VALUES(NULL,'linghuchong',3.5,'huashan','2015-11-17 15:44:40')
         2. 插入ordername,addr,ordertime字段值
               INSERT INTO order(ordername,addr,ordertime) VALUES('renyingying',10,'heimuya')
     二、 更新(修改)数据
            用法一    UPDATE 表名 SET 字段名=字段值;            注意 - 修改所有数据(指定字段值)
            用法二    UPDATE 表名 SET 字段名=字段值 WHERE 字段名=字段值;
                           SET后面的"字段名=字段值",为设置的值
                           WHERE后面的"字段名=字段值",为查询的值
           用法三     UPDATE 表名 SET 字段名1=字段值1,字段名2=字段值2 WHERE 字段名=字段值;
              练习:修改order表
                   修改addr字段值为"长春"
                        UPDATE order SET addr='长春';
                   修改id为2记录的price修改为100
                        UPDATE order SET price=100 WHERE orderid=2;
      三、 删除数据
              用法一 - DELETE FROM 表名;                   注意 - 删除指定表中所有数据
              用法二 - DELETE FROM 表名 WHERE 字段名=字段值;
                  实际的开发中基本不使用DELETE语句,以防我们的用户反悔
           删除类型
              物理删除 - 执行DELETE语句
              逻辑删除
                  简单来说,对于用户来讲是删除的,对于实际来讲并没有删除
                  为指定表,增加一个字段(state|status),表示当前这条记录是什么状态
                                  值为1的话,表示这条记录是正常的
                                  值为0的话,表示这条记录是删除的


  7、 DQL(查)
      基本查询 - 新老版本查询所需时间一样
             用法一 - SELECT * FROM 表名;
             用法二 - SELECT 字段名1,字段名2,... FROM 表名;
      条件基本查询
             用法 - SELECT * FROM 表名 WHERE 字段名=字段值;
      复杂条件查询
         AND                     - 表示多个条件同时满足
        OR                        - 表示其中一个条件满足
         IN(SET)               - 表示一个字段包含多个值,SET - 多个值,之间使用","
         =                          - 表示字段值为指定值
         BETWEEN AND    - 等于 >= AND <=
         IS NULL               - 匹配NULL值

         !=或<>               -匹配不等的值
      排序查询 - ORDER BY 字段名
          ASC - 正序排序,默认值,如果想要正序排列可以不用写
          DESC - 倒序排序

         用法 -  SELECT * FROM 表名 WHERE 条件 ORDER BY 字段名;
     
      练习 - myorder
       1. 查询addr为"光明顶"的所有记录
          SELECT * FROM myorder WHERE addr='光明顶';
       2. 查询id为1或ordername为"renyingying"的所有记录
          SELECT * FROM myorder WHERE id=1 OR ordername='renyingying';
       3. 查询id为1,2,3的所有记录
          SELECT * FROM myorder WHERE id in(1,2,3);
   
  8、数据库操作原则 - 只增不删
        数据库表示的空
         ''           - 空字符串   用IS NULL查找时不匹配
         NULL   - 值不存在   用IS NULL查找时不匹配

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值