MYSQL数据库操作(一)

   数据库简介

     数据库分类:关系型数据库、非关系型数据库

        常用的关系型数据库有:orcale 、mysql 、sql server等等

        常用的非关系型数据库有: Memcached、redis、mongoDB等

         

    表类型: myIsam:除系统表外,已经很少使用
         innoDB:最常用的存储引擎(支持事物、数据行级别锁定机制、外键约束、崩溃恢复等功能)
         memory:只存在于内存中,可做临时表
        engine=innodb 可以再表后设置数据库类型
 
    反引号作用:如果建立表时 表名或者列名和关键字相同,就可以用反引号区分
 
    数据类型:
    数值型: 整形-128~127和浮点型0~255
    字符串:
    日期和时间类型
 
    null值
    涉及到钱的时候,用decimal存储
           

    安装mysql

           https://zhidao.baidu.com/question/456597557358311245.html

一、创建数据库

        查看所有的数据库:show databases;

    创建数据库:create database 数据库名;

                         create database 009 charset utf8; 创建数据库并设定该数据库的字符集

        查看某库中所有的表:show tables;

        指定数据库:use 数据库名;

               查看表结构:desc 表名;

MYSQL数据库操作(一)

               查看建表语句:show create table 表名;

MYSQL数据库操作(一)

              

二、表的增删改查

    1、创建表

        create table table1 (
        -> name varchar(5) primary key,
        -> age int,
        -> bumen varchar(10),
        -> socr int,
        -> salary int,
        -> bumenid int
        -> )
        -> ;
                      
            
    2、删除
      ①删除整个表 有两种sql语句可以删除整个表,但是效果不同
        drop table table1 删除表,数据库中也不会存在该表 释放空间
        truncate table table1 删除表,也释放了空间,数据库中还存在该表,且该表中的定义(列名 结构)还存在;清空表数据,不清空表结构,释放了空间 不可回退
      ②删除表数据
        delete from table1 where。。。。 不释放空间,可以回退
    3、修改表
      ①修改表结构 alter
        增加一个字段 address
        alter table table1 add address varchar(10);
        删除一个字段 age
        alter table table1 drop age;
        给某字段更名 将字段name更名为city
        alter table table1 rename name to city;
 
      ②修改表中的数据 update
        将年龄为20的人的名字改为宋晓影
        update table1 set name='宋晓影' where age=20;

三、表字段添加约束

   1、primary key(PK) 主键约束
   2、unique(UK)唯一约束
   3、not null (NK)非空约束
   4、auto_increment 使整数列默认自增1
   5、default 1888 默认值为1888
         6、foreign key(FK) 外键约束
             主要是保证多个表之间的参照完整性,构建两个表两个字段之间的参照i关系,外键可以为null
             创建外键约束:
       constraint fk_course_teacher foreign key(teacher_id) references teacher(tid))
    
   7、其他约束:   
      default cur_timestamp 创建新记录时默认保存当前时间(仅适用于timestamp数据列) timestamp: YYYYMMDDhhmmss
      on update cur_timestamp 修改记录时默认保存当前时间(仅适用于timestamp数据列)
      unsigned 无符号整数
      character set name 指定字符集(仅适用于字符串)

         5、分组与分组函数

             http://blog.****.net/leshami/article/details/5559110

导出现有数据库数据:

  • mysqldump -u用户名 -p密码 数据库名称 >导出文件路径           # 结构+数据
  • mysqldump -u用户名 -p密码 -d 数据库名称 >导出文件路径       # 结构