zoukankan      html  css  js  c++  java
  • 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
     
     
     
     
     
     
     
     
     
      
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    The Mac Application Environment 不及格的程序员
    Xcode Plugin: Change Code In Running App Without Restart 不及格的程序员
    The property delegate of CALayer cause Crash. 不及格的程序员
    nil localizedTitle in SKProduct 不及格的程序员
    InApp Purchase 不及格的程序员
    Safari Web Content Guide 不及格的程序员
    在Mac OS X Lion 安装 XCode 3.2 不及格的程序员
    illustrate ARC with graphs 不及格的程序员
    Viewing iPhoneOptimized PNGs 不及格的程序员
    What is the dSYM? 不及格的程序员
  • 原文地址:https://www.cnblogs.com/gyh04541/p/7295983.html
Copyright © 2011-2022 走看看