zoukankan      html  css  js  c++  java
  • sql操作数据库(1)-->DDL、DML、DQL

    SQL 操作数据库

    概念:结构化查询语言 Structured Quary Language

    作用:

     1.是一种数据库的查询的标准,对所有的数据库都支持

     2.不同的数据库SQL语句可能有点不同 (方言),mysql oracle DB2

    sql语句分类

     1.DDL:操作数据库、表  数据定义语言 Data Definition Language

     2.DML:增删改表中的记录 数据操作语言 Data Manipulation Language

     3.DQL: 查询表中的记录 数据查询语言 Data Query language

     4.DCL:管理用户与授权  数据控制语言 Data Control language

    DDL 语言

    1.操作数据库 CRUD操作

     1.创建数据库 方式有很多种: C ---create

    • create database 数据库名;

    • create database if not exists 数据库名;// 创建的时候先判断数据库是否存在

    • create database 数据库名 character set 编码字符集;// 创建数据库的指定编码字符集

    -- 分号 一般是sql语句的结束标志
    create DATABASE java31;
    -- 创建数据库的第二种方式 create database if not exists 数据库名;
    create database if not EXISTS apartment;
    -- 创建数据库的第三种方式  create database 数据库名 character set 编码字符集;
    create database school character set utf8;
    -- 三者组合到一起表达
    create database if not EXISTS college character set utf8;
    

     2. 查询 r --->retrieve

    • 查询当前数据库服务器的所有的数据库
      show databases;

    • 查询某个数据库的编码字符集:查询某个创建的数据库的编码字符集
      show create database 数据库名称;

     3.修改 u-->update

    • 修改数据库的编码字符集
      alter database 数据库名称 character set 编码字符集;
    -- alter  database 数据库名称 character set 编码字符集;
    alter database college character set gbk;
    

     4. 删除 d -->delete drop

    • 删除数据库
      drop database 数据库名称;

    • 判断数据库是否存在,如果存在删除掉
      drop database if exists 数据库名称;

    --  drop database if exists 数据库名称;
    drop database if EXISTS school;
    
    1. 操作表

     1. 创建表 C --> create

    • 语法:

      create table 表名(

      ​ 列名1 数据类型,

      ​ 列名2 数据类型,

      ​ 。。。。。。。

      );

    • 数据类型

      • 整数类型 tinyint(微整形) 8位 smallint(小整形)16位 mediumint(中整形)24位 int(integer) 整形32位

      • 小数类型 double 8个字节 float 4个字节

      • 日期类型 date (年月日) time (时分秒) datetime (年月日时分秒) timestamp 时间戳 年月日时分秒

        时间戳,如果该字段为时间戳类型,没有赋值或者该字段值为null,则默认使用系统当前的时间自动赋值。一般情况一张表中只能有一个字段使用时间戳数据类型。

      - 字符串类型   char(固定长度的字符串)     varchar(可变长度的字符串)  使用几个字符就占几个
    
      - 二进制类型    tinyblob(允许0~255个字节)   big large  blob(允许0~65535个字节)  longblob(非常大)
    
      - 文本类型      tinytext (允许长度为0~255个字节)  text(允许0~65535个字节) longtext(非常大)
    

     2. 查看表 查询 retrieve

    • show tables 查看当前使用的数据库下面的所有的表

    • desc 表名; 描述该表的结构

    • 查看创建的表 show create table 表名;---->查看该表创建使用到的sql语句

    • 快速创建一个表结构相同的表 create table 新表名 like 旧表名;

     3. 修改 update

    • 修改表名 alter
      alter table 旧表名 rename to 新表名;

    • 修改表的字符集
      alter table 表名 character set 编码字符集;

    • 添加一列字段 add
      alter table 表名 add 列名 数据类型;

    • 删除一列 drop
      alter table 表名 drop 列名;

    • 修改列名 数据类型

      • change alter table 表名 change 旧列名 新列名 新数据类型;
      • modify alter table 表名 modify 列名 新数据类型;

     4. 删除 delete

    • 删除表 drop table 表名;

    • 删除判断表是否存在 drop table if exists 表名;

    大多数情况下我们是直接借助于图形化管理工具 Navicat直接操作。

    DML 增删改数据库中的表的数据

    1. 添加数据:

      • 语法:

        • ​ insert into 表名(列名1,列名2,......列名n) values(值1,值2,......值n);

        • ​ 注意事项:

          • 列名和后面值的类型要保持一致。

          • 如果表名后面没有指定列名,默认为给该表中的所有的列添加对应的值。注意依然是有顺序的。

            insert into 表名 values(值1,值2,......值n);

          • 除了数字类型外(int,double),其他类型一律要使用引号(单引号和双引号都可以)引起来。

    2. 删除数据:

      • 语法: delete

        delete from 表名 [where 条件];

      • 注意事项:

        • 如果后面不跟条件 ,则删除整张表的数据

        • 删除表的所有的记录 delete from student / truncate table 表名;(底层是先把表删除掉,然后再创建一张一模一样的表)

        • 如果条件中的字段值有重复的,凡是符合条件的都删除。

    3. 修改数据:update

      • 语法:

        update 表名 set 列名1 = 替换值1, 列名2 =替换值2,.....列名n = 替换值n [where 条件];

      • 注意:

        • 如果不带条件,则会修改表中的所有记录

    DQL 查询表中的记录 select .... from .....

    • 语法

      ​ select 需要查询的信息(列名1,列名2,.......列名n) / * from 表名 [where 条件];

      ​ 完善下:

      ​ select
      ​ 字段列表

      ​ from
      表名列表

      ​ where
      条件列表

      ​ group by
      分组字段

         having 
            分组之后的条件
      

      ​ limit
      分页限定

    • 去重查询 distinct

      • 使用关键字 distinct 去掉重复的记录

      • 语法格式: select distinct 字段名 from 表名;

        例如:

        -- 查询本班同学都来自于哪些地方法?
        select distinct address from student;
        
    • 查询的结果值可以参与数学运算

    • ifnull表达式 ifnull(表达式1,表达式2)

      ​ 表达式1: 代表那个字段需要判断是否为null

      ​ 表达式2:如果该字段值为null 后面的进行替换

    • 起别名操作

      ​ 语法 as 也可以省略不写
      ​ 表名 as 新的名字

      ​ 查询出来的字段信息 as 新名字

      ​ 当你查询同一张表,并且进行多次查询的时候可以使用起别名来实现

      • 对指定列进行别名操作: select 列名1 as 新名字,列名2 as 新名字,..... from 表名;

      • 对表和列同时进行别名操作: select 列名1 as 新名字,列名2 as 新名字,..... from 表名 as 新表名;

        如:对学生表进行操作:查询学生表的姓名和年龄;

        select 
            s.age as 年龄,
            s.name as 姓名
        from 
             student as s;     
        -- as关键字可以省略不写。     
        

      ​ 注意:

      ​ 起别名 只是在sql语句中方便查询使用的,并不会对数据原来的文件起到任何影响

  • 相关阅读:
    AssetBundleNote
    UNet笔记
    HololensAR开发设置
    Hololens真机使用Unity开发流程
    数据结构笔记
    解决粘包问题
    使用C#中的Socket进行通讯
    解决Sql注入,防止恶意数据
    110. 平衡二叉树
    104.二叉树的最大深度
  • 原文地址:https://www.cnblogs.com/luayan/p/14232732.html
Copyright © 2011-2022 走看看