• DataBase(28)


    1、数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。

    2、SQL通用语法:   四大天王(int、double、varchar、date)

    l、  SQL语句可以单行或多行书写,以分号结尾
    
    2、  可使用空格和缩进来增强语句的可读性
    
    3、  MySQL数据库的SQL语句不区分大小写,建议使用大写,例如:SELECT * FROM user。
    
    4、  同样可以使用/**/的方式完成注释

     注:varchar是可变字符类型。

    3、主键:用于标识当前记录的字段。它的特点是非空,唯一。在开发中一般情况下主键是不具备任何含义,只是用于标识当前记录。

    4、开启服务方式  dos窗口敲命令:services.msc  或者   net start mysql     停止操作:  net stop mysql

    sql语句:

    1、创建一个表:

    CREATE TABLE zhangwu (
      id INT PRIMARY KEY AUTO_INCREMENT, -- 账务ID
      name VARCHAR(200), -- 账务名称
      money DOUBLE, -- 金额
    );

    2、插入表记录:

    INSERT  INTO zhangwu(id,name,money) VALUES (1,'吃饭支出',247);
    INSERT  INTO zhangwu(id,name,money) VALUES (2,'工资收入',12345);

    3、查询指定字段信息:

    select id,name from zhangwu;

    4、查询表中所有字段:

    select * from zhangwu;

    5、distinct用于去除重复记录:

    select distinct money from zhangwu;

    6、别名查询,使用的as关键字,as可以省略:

    表别名格式: 
    select * from 表名 as 别名;
    或
    select * from 表名 别名;
    列别名格式:
    select 字段名 as 别名 from 表名;
    或
    select 字段名 别名 from 表名;
    
    
    表别名:
        select * from zhangwu as zw;
    列别名:
        select money as m from zhangwu;
        或
        select money m from zhangwu;

    注:别名可以给表中的字段设置别名。 当查询语句复杂时,使用别名可以极大的简便操作。

    条件查询:

    格式 :select 字段  from 表名  where 条件

    举个栗子:查询所有吃饭支出记录

    SELECT * FROM zhangwu WHERE name = '吃饭支出';

     7、创建数据表和字段的技巧,假如表名叫users,那么创建字段(用户编号,用户姓名,用户地址)就用表名的首字母+字段的英文来创建,即:uid、uname、uaddress。

    8、将编号列设置为主键约束,来保证列的数据唯一性,非空性。数据库有一个人性化设计,让主键列数据实现自动增长。

    9、alter  table biao1 +  add  是追加新字段  ,modify 是修改某字段的数据类型,而change是修改某字段的名字 和数据类型。

    10、修改表结构:

    CREATE TABLE biao1(
        bid INT PRIMARY KEY AUTO_INCREMENT,
        bname VARCHAR(20),
        baddress VARCHAR(200)
        
    );/*创建数据表*/
    ALTER TABLE biao1 ADD bhobby VARCHAR(200);/*表追加字段*/
    ALTER TABLE biao1 MODIFY bhobby INT; /*改字段数据类型*/
    ALTER TABLE biao1 CHANGE bhobby btel INT;/*改字段名字和数据类型*/
    ALTER TABLE biao1 DROP btel;/*表删除某字段*/
    RENAME TABLE biao1 TO newbiao1;/*修改表名*/
    DESC newbiao1;/*查看表结构*/
    SHOW TABLES;  /*查看所有表*/
    DROP TABLE users;/*删除数据表*/

    11、添加数据:注意问题(主键,字符串类型用单引号)

    CREATE TABLE product(
        -- 主键列,自动增长
        pid INT PRIMARY KEY AUTO_INCREMENT,
        -- 商品名字,可变长度,非空
        pname VARCHAR(100) NOT NULL,
        -- 商品价格,double类型
        price DOUBLE
    )

    12、插入商品数据的几种方式:

    INSERT INTO product (pname,price) VALUES ('笔记本',4399.08);
    INSERT INTO product (pname,price) VALUES 
    ('日内瓦',299.08),
    ('苍老师',99.08);

    13、更新数据:修改条件的几种方式:

    UPDATE product SET price = 100,pname='黑白电视'  WHERE pid=6;
    UPDATE product SET price = 2000 WHERE pid=2 OR pid=7;
    UPDATE product SET price = 1431.00 WHERE pid IN(1,3,4);
    UPDATE product SET price = 998.00 WHERE pid NOT IN (1);

    14、命令行(GBK)乱码现象,select后汉字会乱码显示,而mysql安装的字符编码是utf-8 ,解决方法: dos输入 :set names 'gbk';

    15、数据查询:

    CREATE TABLE zhangwu (
      id INT PRIMARY KEY AUTO_INCREMENT, -- 账务ID
      zname VARCHAR(200), -- 账务名称
      zmoney DOUBLE -- 金额
    );
    INSERT  INTO zhangwu(id,zname,zmoney) VALUES (1,'吃饭支出',247);
    INSERT  INTO zhangwu(id,zname,zmoney) VALUES (2,'工资收入',12345);
    INSERT  INTO zhangwu(id,zname,zmoney) VALUES (3,'服装支出',1000);
    INSERT  INTO zhangwu(id,zname,zmoney) VALUES (4,'吃饭支出',325);
    INSERT  INTO zhangwu(id,zname,zmoney) VALUES (5,'股票收入',8000);
    INSERT  INTO zhangwu(id,zname,zmoney) VALUES (6,'打麻将支出',8000);
    INSERT  INTO zhangwu(id,zname,zmoney) VALUES (7,NULL,5000);
    
    /*
        查询指定列数据
    */
    
    SELECT zname,zmoney FROM zhangwu;
    SELECT * FROM zhangwu;
    SELECT zname FROM zhangwu;
    
    /*
        查询数据去重
    */
    SELECT DISTINCT zname FROM zhangwu;
    
    /*
        查询重新命名列
    */
    SELECT zname AS 'name' FROM zhangwu;
    
    /*
        查询数据中,直接进行数学运算
        列对数字进行计算
    */
    SELECT(1+1);
    SELECT zname,zmoney+1000 AS 'zmoneySum' FROM zhangwu;
    SELECT zmoney FROM zhangwu WHERE zmoney>1000;
    
    SELECT zmoney FROM zhangwu WHERE zmoney>=2000 AND zmoney<=5000;
    SELECT zmoney FROM zhangwu WHERE zmoney BETWEEN 2000 AND 5000;
    
    SELECT zmoney FROM zhangwu WHERE zmoney=1000 OR zmoney=3500 OR zmoney=5000;
    SELECT zmoney FROM zhangwu WHERE zmoney IN (1000,3500,5000);
    
    /*
        like模糊查询
        查询字段名字,五个字符,不为空,为空
    */
    SELECT * FROM zhangwu WHERE zname LIKE '%支出%';
    SELECT * FROM zhangwu WHERE zname LIKE '_____';
    SELECT * FROM zhangwu WHERE zname IS NOT NULL;
    SELECT * FROM zhangwu WHERE NOT (zname IS NULL);
    SELECT * FROM zhangwu WHERE zname IS NULL;
    
    /*
        查询账务表,价格进行升序[asc]默认 /降序[desc]
    */
    SELECT * FROM zhangwu ORDER BY zmoney;
    SELECT * FROM zhangwu ORDER BY zmoney DESC;
    SELECT * FROM zhangwu WHERE zname LIKE '%支出%' ORDER BY zmoney DESC;
    
    /*
        使用聚合函数查询计算。总记录数
    */
    SELECT COUNT(*) AS 'count' FROM zhangwu;
    
    /*
        使用聚合函数统计所有支出的总金额
    */
    SELECT SUM(zmoney) FROM zhangwu WHERE zname LIKE '%支出%';
    /*
        使用聚合函数获取最大值/最小值
    */
    SELECT MAX(zmoney) FROM zhangwu;
    /*
        使用聚合函数获取平均值
    */
    SELECT AVG(zmoney) FROM zhangwu;
    /*
        分组查询
        having和where的区别在于having是分组后对数据进行过滤,而where是分组前过滤
    */
    SELECT zname,SUM(zmoney) AS 'getsum' FROM zhangwu WHERE zname LIKE '%支出%' 
    GROUP BY zname
    ORDER BY getsum DESC;
    
    SELECT SUM(zmoney) AS 'getsum',zname FROM zhangwu WHERE zname LIKE '%支出%'
    GROUP BY zname HAVING getsum>5000;
    ;

     

  • 相关阅读:
    Ratchet(WebSockets for PHP)的官方TUTORIALS 的实践
    TCP_Wrappers访问控制
    PAM认证机制
    AIDE入侵检测系统
    使用gpg来加密数据
    openssl数据加密
    搭建私有CA
    进程概念
    进程管理命令
    Linux的信号管理
  • 原文地址:https://www.cnblogs.com/ivan5277/p/10059874.html
Copyright © 2020-2023  润新知