• MySQL总结


    1.数据库定义:
         数据的概念:数据是描述事物的符号,这些符号可以是数字,文字,图片,声音,图像等,数据可以是多种形式,都可以经过数字化存入计算机.
         计算机里描述一个事物,包含了多种数据类型的信息,抽取事物的典型特征,组成一条记录,
    以特定的数据格式定义,
         name,age,sex,home_add,school 就组成了基本的数据记录,
     
         数据库(database)DB:
         建立在计算机存储设备上的数据仓库,并且是按照一定的格式,
         特点:
              可以长期存放,可以共享,
              较小的冗余度,较高的数据独立性,以扩展性,
         数据库管理系统(database management system)DBMS:
              有了数据 和库 的概念,如何存储,获取,维护,优化数据就是关键,就要用到数据库管理系统,
              流行的数据库有,mysql ,oracle ,sq lite ,access, ms sql server 
              
     
    mysql主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品。
    oracle主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高。也是甲骨文公司的产品。
    sql server是微软公司的产品,主要应用于大中型企业,如联想、方正等。
     
     
     
    mysql就是一个socekt服务端
    客户端软件
      mysql自带
      python模块
    2.数据库的分类:
         
         以上都是一个软件,都有两个主要功能:
         a.将数据保存到文件或者内存,
         b.接受 命令,对文件进行操作,
         注意:都不需要自己创建文件和文件夹,都是通过命令来进行文件操作,统称为数据桔管理系统(DBMS)
     
     
    3.认识sql语言:
         sql (structured query language) 结构化查询语言
        sql 主要用于存取数据,查询数据,更新数据和管理关系数据库系统,
         sql 分为3类:
              DDL 语句 数据库定义语言: 命令有,create,drop,alter
              DML 语句 数据库的操作语言: 插入数据instert ,删除数据 delect, 更新数据update ,查询数据select
              DCL 语句 数据库控制语言: 控制用户访问的权限 grant,,revoke
     
    5.数据库名字的命名规则:
              区分大小写,
              可以有字母,数字,下划线 ,@, #, $ 组成
              名字须唯一
              不能使用关键字 ,如create,select
              不能单独使用数字
              最长128位字符
     
    数据库 database
              文件夹 tables;
              文件     table;
     
    6.数据库的操作
    `          1.查看数据库 
               show databases; 查看该库的所有数据库
     
                   mysql  存放用户权限相关的数据
                   use mysql 进入mysql数据库>select user from user;查看登录到mysqlde的用户,
                        创建用户:
                             create user 'alex'@'*'(ip) identified by '123'
                                               '用户名' ip地址  密码
                        授权:
                             grant all privileges on db1.t1 to 'alex'@'%';
                                  all privileges 表示所有权限,包含select(查询),insert(插入),update(更新),
                                  on db1t.t1 表示对文件夹下的t1文件有权限
     
                   test 用于测试数据
                   information_schema - mysql 本身架构相关数据
     
               show create database db1 #查看数据库创建的方式
     
               2.进入数据库
               use 数据库名  --进入后无法退回,通过use进行切换
              show tables 显示当前库中所有的表
              select database();查看当前数据库
     
              3.删除数据库
              drop database 数据库名字;
     
              4.修改数据库
     
              alter database db1 charset utf8;
     
              2.创建数据库
            
              create database 数据库名 default charset utf8  
     
    7.用户管理
              创建用户    create user '用户名'@'ip地址' identified by '密码';
     
              删除用户     drop user '用户名'@'IP这地址';
              
              修改用户     rename user '用户名'@'IP地址'; to '新用户'@' ip'地址;
              
              修改密码     set password for '用户名'@'ip地址' = password('新密码')
         注意:
              用户权限相关数据保存在MySQL数据库的user表中,所以也可以直接对其操作(不建议)
     
     
    8.表的操作
              1.创建表 create table 表名(
                                  字段 类型[约束条件],
                                  字段 类型)[character set xxx];
              例子:
              create table t1(id int ,name char(10)) default charset=utf8;
    约束条件:
         primary key (非空且唯一);
          一个表中只有一个主键,
         约束(不能重复不能为空);加速查找
     
         unique  唯一约束
         not null     非空约束
         engine=innodb  #防止双方数据出现错误,可以实现数据回滚,   支持事务,原子性操作
         
         myisam 不支持数据回滚
             
    列子:
         create table t3(id int auto_increment,name char(10)) engine=innodb default charset=utf8;
     
         auto_increment 自增
         注意:
         auto_increment 和primary key一起用,否则报错
         一张表中,只能有一个auto_increment和primary key
     
         创建表的标准格式:
         create table t1(id int not null auto_increment primary key,name char(10))engine=innodb default charset=utf8;
     
              2.查看表信息
              desc 表名 ,查看表结构,包含每个字段的信息,
              show columns from 表名 ,查看表结构
              show tables ,查看库中所有的表
              select * from 表名;,查看表里的所有列,
                 select name,id from 表名;,查看name列,id列,
              show create table 表名; 里面包含了表创建时的各种信息,包含编码格式6
              show create table 表名 G; 竖着看,更方便
              3.修改表结构
                   3.1 增加列(字段)
                   alter table 表名 add 列名 类型 [约束性条件] [first | after 字段名];
                   3.2 修改列(类型)
                   alter table 表名 modify 列名 类型 [约束性条件]
                   3.3 修改列名
                   alter table 表名 change 列名 新列名 类型 
                   3.4 删除一列
                   alter table 表名 drop 列名;
                   3.5 修改表名
                   rename table 表名 to 新表名;
                   3.6 修改表的所有字符集
                   alter table 表名 character set utf8;
                   3.7 插入数据
                   insert into t1(id,name) values(1,'egon');t1是表名
                   3.8创建文件
         4.删除表
              drop table t3;
         5.清空表,
              delete from t3;当再次插入数据是,会从上次的id号继续,表的字段(列名)都还存在
              truncate table t3; 删除表,表和记录都删除,直接从id 是1的开始删除,比delete快
     
    9.数据类型:
         9.1数字: tinyint
                  1.int
                  2.bigint
                  3.float,都是不精准的数据类型,越长越不精准
                  4.double,都是不精准的数据类型,越长越不精准
                  5.decimal 是最精准的数据类型,按字符串类型存的,但还是小数
     
    num decimal(10,5)decimal 有2个参数,第一位是数据的总位数,后面参数代表小数点后的位数
         9.2字符串:
              1.char(10): 速度快,定义了10个字符,不够空格填充,最多255个字符
             2. varchar(10) :节省空间,定义10位个字符,没有写够,有多少,算多少,省内存,最多255个字符
             3.enum('x','xl','xxl');表示只能从后面的数据里取,选项固定,不经常修改的,
              create table shirts(
                             name varchar(40),
                              size enum('x_small','small',large','x-large')                        
    );
              insert into shirts(name,size) values('aa','large')
     
             4.set('a','b'.'c')表示可以插入后面数据的任意组合
         create table myset(
                   name varchar(40),
                   col set('a','b','c'));
           insert into myset(name ,col) values('xxxx','a,b')
           insert into myset(name,col) values('xxxx','b,c')
              
    10.操作文件中的内容
         插入数据:
         insert into t1(id,name) values(1,'alex');
         删除数据;
         delete from t1  where id<6 #where 后面跟条件,指定删除
         修改:
         update t1 set age=18;
         update t1 set age=18 where age=17; 修改age=17 的数据
         
    11.创建表
    create table t1(id int primary key auto_increment ,
                   name varchar(20),not null,
                   age int,
                   salary float(10,2))engine=innodb default charset utf8; #
         
       where 条件
         < ,>,>=,<=,<>,!=
         between 80 and 100
         in(10,20,30)
           like 'yuan%'
             多个条件 可以使用逻辑运算符 and  or not 
         
         排序 order by ASC 升序  默认 /Desc 降序  位于select末尾
     
         group by 列名 ,可以跟having,进行筛选
            
         
     
     
     
     
     
     
    11,主键, 保证数据的唯一性
     
    12.外键,foreign key 
         一张表中的数据受限于另外一张表,2张关联,
     
         2t1表中的主键(id) foreign key t2(某列名)的
         
          constraint 约束 fk_1(名字) foreign key
     
     
     
     
     
     
     
     
     
      
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    css(上)
    前端基础
    并发编程,python的进程,与线程
    网络编程 套接字socket TCP UDP
    python 类的内置函数2
    python3大特征之多态
    python 类(object)的内置函数
    类 与 继承
    类 与 面向对象
    OOP >>> 封装
  • 原文地址:https://www.cnblogs.com/gyh04541/p/7295983.html
Copyright © 2020-2023  润新知