ToB企服应用市场:ToB评测及商务社交产业平台

标题: 数据库浅谈 [打印本页]

作者: 飞不高    时间: 2024-8-12 02:33
标题: 数据库浅谈
文章目录

  
  

媒介

        随着互联网的遍及,大多数人加入IT行业并开始了其程序员的职业生涯。在这个行业中有相当多的技术/工具/概念等等,本文就此中一个很紧张的点——数据库浅谈一下个人的明白。
一、数据库是什么?

        讲数据库之前我们先要知道存储数据是方式有哪些。不完全统计有三种方式,起首可以用变量存储数据,变量可以很方便用户操纵数据,但其毛病是变量存在内存中属于暂时存储数据,程序实行竣事数据随即消散。然后我们还可以使用文件存储数据,文件可以永久保存数据(排除人为删除和不可抗力导致数据丢失),其毛病也很“致命”——非常不便用户对某个数据进行精致化管理。所以“鱼和熊掌”真的不可兼得吗?答案是否定的,由于“它”来了——数据库,作为一个特殊的存在解决了我们的题目。
        数据库顾名思义是数据的堆栈,具体表述是一个文件管理体系可以有规律的对数据进行存储和方便用户精致化管理。那到底什么是精致化管理,可以概括为“增、删、改、查”。那又要通过什么方式实现精致化管理呢?答案是SQL语句。我们接着往下聊......
二、SQL语句使用

1.概述

        SQL语句是一种管理关系型数据的标准编程语言。大概分为4类:第1类数据定义语句(DDL), 紧张作用是操纵数据库, 数据表, 表字段;第2类数据更新语句(DML), 紧张作用是操纵表数据;第3类数据查询语句(DQL), 紧张作用是操纵表数据;第4类数据定义语言(DCL), 紧张作用是对数据库用户、权限等设置。我们通过编写SQL语句然后对数据库进行增编削查操纵。
 SQL语句到底长什么样呢?可以参考数据查询完备的写法:
  1. select
  2.     p_id,                    # 某id
  3.     sum(pr) tot_pr           # 求和
  4. from
  5.     表名
  6. where
  7.     pr >= 某值               # 组前筛选条件
  8. group by                     # 根据id分组
  9.     c_id
  10. having                       # 组后筛选条件
  11.     tot_pr > 某值
  12. order by                     # 按升序排序
  13.     tot_pr
  14. limit                        # 分页,筛选出指定条数的数据
  15.     n, n;
复制代码
         乍一看是不是很复杂,(小编早先看到也是“手足无措”呢)所以我决定分解来给各位看官阐述。
2.DDL语句使用

        2.1 数据库相关操纵

                2.1.1创建数据库

  1. create databse [if not exists] 数据库名 [charset '码表名'];
复制代码
                2.1.2删除数据库

  1. drop database 数据库名;
复制代码
                2.1.3修改数据库名称

  1. alter database 数据库名 charset '码表名';
复制代码
                2.1.4查询数据库

  1. # 查看所有数据库:
  2. show databases;
  3. # 查看数据库的基本信息:
  4. show create database 数据库名;
  5. # 查看当前正在使用的数据库:
  6. select database();
复制代码
  1. # 切库操作  注意:我们在使用查询或者增加数据时首先要切换到目标库。
  2. use 数据库名;
复制代码
         2.2 数据表相关操纵

                2.2.1创建数据表

  1. create table [if not exists] 数据表名(
  2.         列名 数据类型 [约束],
  3.         列名 数据类型 [约束],
  4.         ...
  5.         列名 数据类型 [约束]
  6. );
复制代码
                2.2.2删除数据表

  1. drop table 数据表名;
复制代码
                2.2.3修改数据表

  1. # 方法1
  2. alter table 旧表名 rename 新表名;
  3. # 方法2
  4. rename table 旧表名 to 新表名;
复制代码
                2.2.4查看数据表

  1. desc 数据表名;
复制代码
        2.3 表字段相关操纵 

                2.3.1 新增表字段

  1. alter table 数据表名 add 新列名 数据类型 [约束];
复制代码
                2.3.2 删除表字段

  1. alter table 数据表名 drop 旧列名;
复制代码
                2.3.3 修改表字段

  1. alter table 数据表名 change 旧列名 新列名 数据类型 [约束名];
  2.        
  3. 注意:change 既可以修改数据类型又可以修改列名和列属性.
复制代码
                2.3.4 查询表字段

  1. desc 数据表名;
复制代码
3.DML语句使用 

        3.1新增表数据

  1. # 增加单条数据
  2. insert into 数据表名 values(值1, 值2...);
  3. 注意:不写列名, 默认是: 全列名.即后面的值要全写且保持和列的个数 顺序一致.
  4. # 增加多条数据
  5. insert into 数据表名 values(null., 值1, 值2...), (null, 值1, 值2...);
复制代码
        3.2删除表数据

  1. delete from 数据表名 where 条件;
复制代码
        3.3修改表数据

  1. update 数据表名 set 列名=列值, 列名=列值... where 条件;
  2. 例如:update student set name='张三', age=18, phone='13122114567' where id = 2;
复制代码
4.DQL语句使用(单表查询)

        4.1简朴查询

  1. # 查询表全部信息
  2. select * from 表名;
  3. # 查询指定列的信息
  4. select 列名1, 列名2, 列名3 from 表名;
  5. 别名查询
  6. select pid as '商品id', pname as '商品名', price as '商品价格' from product as p;
  7. 注意: 只是在显示的时候, 有别名, 表中的字段名, 并没有发生任何的变化.
  8. as 可以省略不写,如下:
  9. select pid '商品id', pname '商品名', price '商品价格' from product p;
复制代码
        4.2条件查询

  1. 场景1 比较运算符, >, <, >=, <=, !=, <>
  2. 例子:获取pid值为1的全部信息
  3. select * from product where pid = 1;
  4. 场景2 模糊查询
  5. 格式: like '内容'     注意:_代表任意的1个字符, %代表任意的多个字符
  6. 例子1:查询所有商品中,商品名以'乐'结尾的商品信息:
  7. select * from product where pname like '%乐';
  8. 例子2:查找以香开头, 一共2个字符的数据.
  9. select * from product where pname like '香_';
  10. 场景3 范围查询
  11. 格式1:in (....);
  12. 例子1:查询所有商品中价格是6 8 20的商品信息.
  13. select * from product where price in (6, 8, 20);
  14. 例子2:查询商品名称是 劲霸 或者 香奈儿的商品信息(可以对于字符型数据使用in)
  15. select * from product where pname in ('劲霸', '香奈儿');
  16.   改写成:select * from product where pname = '劲霸' or pname = '香奈儿';
  17. 格式2:not in (....);
  18. 例子1:查找商品名称不是  劲霸 或者 香奈儿的商品信息
  19. select * from product where pname not in ('劲霸', '香奈儿');
  20.   改写成:select * from product where pname != '劲霸' and pname <> '香奈儿';
  21. 格式3: between ... and ...
  22. 例子1:查询价格在80-200范围内的所有商品.
  23. select * from product where price between 80 and 200;
  24.   改写成:select * from product where price >= 80 and price <= 200;
复制代码
        4.3排序查询

  1. 格式: select * from 数据表名 order by 要排序的列1 [asc | desc], 列2 [asc | desc];
  2.         asc 升序 默认 可省略如下:
  3.                 例子1:select * from pro order by pri;
  4.         desc 降序 不可省略
  5.                 例子2:先按照价格降序排列, 如果价格一致, 则按照 分类id 降序排列.
  6.     select * from pro order by pri desc, cat_id desc;
复制代码
        4.4聚合查询(聚合函数)

  1. # 此处略,后面单独出一期SQL函数使用。
复制代码
        4.5分页查询

  1. 格式:limit 起始索引, 数据条数;
  2. 例子:select * from pro limit 0, 3;
  3.         注意:0可以省略
复制代码
4.6分组查询

  1. 格式:
  2. select 分组字段, 聚合函数 from 数据表名 where 组前筛选 group by 分组的列 having 组后筛选;
  3.         例子:统计各个分类商品的个数, 且只显示个数大于1的信息.
  4. select
  5.     cat_id, count(pid) to_cnt
  6. from
  7.     pro
  8. group by
  9.     cat_id
  10. having
  11.     tot_cnt > 1;      # 组后筛选
复制代码
5.DCL语句使用(后期有机会再分享吧) 

总结

        以上就是今天要分享的内容,本文仅仅简朴先容了数据库概念和SQL语句的使用,只能算数据库技术的冰山一角。要不下次先和各人聊聊多表查询怎样操纵,bye-bye!!!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4