数据库学习:第一天

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_44951165/article/details/102733220

数据库的基本概念

1.英文:DataBase 简称:DB

2.什么是数据库?
         用于存储和管理数据的仓库

3.数据库的特点:
     1.持久化存储数据。数据库就是一个文件系统
     2.方便存储个管理数据
     3.使用同一的方式操作数据库–SQL

4.常见的数据库软件
     1.Mysql
     2.Oracle

Mysql 数据库软件

     * MySQL服务启动
        1.计算机管理
        2.cmd->services.msc打开服务的窗口

     *MySQL登录
        1.mysql -uroot -proot
           如果为MySQL -uroot -p 则表示输入密码时密码不可见。
        2.MySQL -hip -uroot -p连接目标的密码

     *MySQL退出
        1.exit

SQL

1.什么是SQL?
     structured Query Language:结构化查询语言
     其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为“方言”。

2.SQL通用语法

     1.SQL语句可以单行或多行书写,以分号结尾。
     2.使用空格或缩进来增强语句的可读性
     3.MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
     4.有3种注释
          *单行注释:-- 注释内容 或 # 注释内容
                mysql> SHOW DATABASES; – 查看所有数据库名称
          *多行注释:/ * 注释 * /
                mysql> SHOW DATABASES; / * 查看所有数据库名称 */

3.SQL的分类

          DDL(Data Definition Languages)语句:数据定义语言定义了不同的数据段、数据库、表、列、索引等数据库对象关键字:create、drop、alter

          DML(Data Manipulation Language)语句:数据操纵语句用于添加、删除、更新和查询数据库记录,并检查数据完整性关键字:insert、delete、update和select等

DDL

1.操作数据库:CRUD

     1.C(Create) :创建
          CREAT DATABASE 名字
         create database if not exists 名字
          * 创建数据库,判断是否存在,并指定字符集为utf8
          create database if not exists test character set utf8;

     2.R(Retrieve):查询
          * 查询所有数据库的名称 SHOW DATABASES;
      * 查询数据库默认的字符集 SHOW CREATE DATABASE MYSQ;

     3.U(Update):修改

          * 修改数据库的字符集
                * alter database 数据库名 character set 字符集名;

     4.D(Delete) :删除
          * 删除数据库
                * drop database 数据库名;
                * drop database if exists 数据库名;

     5.使用数据库
          * 查询当前使用的数据库名称
               * select database();
          * 使用数据库
               * use 数据库名称;

2.操作表
     1.C(Create) :创建
          1. 语法:
                create table 表名
                {
                列名1,数据类型1,

                }
          2.数据类型
          age int,score double(5,2), data 类型

     2.R(Retrieve):查询
          * 查询所有表名称
               * show tables;
          * 查询表结构,表头
               * desc 表名;

     3.U(Update):修改
      1.修改表名
        alter table 表名 rename to 表名
      2.修改表的字符集
        alter table 表明 character set utf8
      3.添加一列
        alter table 表名 add 列名 数据类型
      4.修改列名称 类型
        alter table 表名 change 列名 新列名 数据类型
      5.删除列
        alter table 表名 drop 列名

     4.D(Delete) :删除

          * drop table 表名;
          *drop table if exisys 表名;

DML

***1.添加数据***
   
   *  语法
     *  insert into 表名(列名1,列名2,....列名n) values(值1,值2,...值n);
     *  注意
       1. 列名与值一一对应 
       2. 如果表名后,不定义列名,则默认给所有列添加值
           insert into 表名 values(值1,值2,...值n);
       3. 除了数字类型,其他类型需要使用引号(单双均可)引起来
     
***2.删除表中数据***
   
   * 语法
      * delete from 表名 [where 条件]; 
      * 注意
           1.如果不加where条件,则删除所有数据
           2.truncate table 名字   --- 删除表。然后再创建一个一模一样的表,没有数据
           
***3.修改数据***

   * 语法
      * update 表名 set 列名1 = 值1,列名2 = 值2,....[where 条件];
   * 注意
     *  如果不加where条件,则会修改所有记录 

DQL:查询表中记录

  *   -----------***1. 语法***--------------------------------
  *       select
  *           字段列表
  *       from
  *           表名列表
  *       where
  *           条件列表
  *       group by
  *           分组字段
  *       having
  *           分组之后的条件
  *       order by 
  *           排序
  *       limit
  *           分页限定
  * 
  * 
  *  ---------***2. 基础查询***----------------------------------
  * 
  * 
  *    1.多个字段的查询
  *         select 字段名1,字段名2,....from 表名
  *          eg:select name,age from student;
  *         * 注意
  *              如果查询所有字段,则可以用*来代替字段列表
  *    2.去除重复
  *         distinct
  *         eg:select distinct address from student;
  *    3.计算列
  *         一般可以使用四则运算计算列值,只会进行述职型计算
  *        ifnull(表达式1,表达式2);
  *          * 表达式1 哪个字段需要判断为null
  *          * 表达式2为null后的替代值
  *    4.起别名
  *       * as 也可省略
  *       select name,math as 数学 from student;
  * 
  * 
  *  --------- ***3.条件查询***------------------------------
  * 
  *
  *  1.where 子句后跟条件
  *  2.运算符
  *    >  <  <=  >=  =  <>//不等于 
  *      select *from student where age > 20;
  *    between...and
  *      select *from student where age between 20 and 40;
  *    in(集合)
  *      select *from student where age in(20,40);
  *    like(模糊查询)
  *       * _ :表示单个任意字符
  *             select *from student where name like '_华';  --云华,辉华
  *       * % :表示多个任意字符
  *             select *from student where name like '马%';
  *    is null
  *      select *from student where english is null;
  *    and 或 &&
  *      select *from student where age > 20 and age < 40;
  *    or 或 ||
  *      select *from student where age = 20 or age = 40;
  *    not 或 !
  *      select *from student where english is not null;

猜你喜欢

转载自blog.csdn.net/weixin_44951165/article/details/102733220