zoukankan      html  css  js  c++  java
  • 数据库学习之数据库常用操作(一)

    数据库常用操作

     

    数据库操作(DDL)

    1.创建数据库(在磁盘上创建一个对应的文件夹)
    create database [if not exists] db_name [character set xxx] 
    

      

    2.查看数据库
    show databases;查看所有数据库
    show create database db_name; 查看数据库的创建方式
    3.修改数据库
    alter database db_name [character set xxx] 
    

      

    4.删除数据库
    drop database [if exists] db_name;
    

      

    5.使用数据库
    切换数据库 use db_name; -- 注意:进入到某个数据库后没办法再退回之前状态,但可以通过use进行切换
    查看当前使用的数据库 select database();
    

      

    数据库数据类型

    数值类型

     

     

    日期和时间类型

     

     

    字符串类型

     

     


    数据表操作

     

     1.创建表

    (类似于一个excel表)

    id 姓名 性别  生日 入职时间 职务部门 薪水
    

      

    创建表语法格式

    create table tab_name(
                field1 type [完整性约束条件],
                field2 type,
                ...
                fieldn type
            )[character set xxx];
    

      

    创建一个员工表employee

    create table employee(
      id int primary key auto_increment ,
      name varchar(20),
      gender bit default 1, -- gender char(1) default 1 ----- 或者 TINYINT(1) 
      birthday date,
      entry_date date,
      job varchar(20),
      salary double(4,2) unsigned
    );
    

      

    约束的作用
    约束是作用于数据表中列上的规则,用于限制表中数据的类型。约束的存在保证了数据库中数据的精确性和可靠性。
    约束有列级和表级之分,列级约束作用于单一的列,而表级约束作用于整张数据表。
    下面是 SQL 中常用的约束,这些约束虽然已经在关系型数据库管理系统一章中讨论过了,但是仍然值得在这里回顾一遍。
    NOT NULL 约束:保证列中数据不能有 NULL 值
    DEFAULT 约束:提供该列数据未指定时所采用的默认值
    UNIQUE 约束:保证列中的所有数据各不相同
    主键约束:唯一标识数据表中的行/记录
    外键约束:唯一标识其他表中的一条行/记录
    CHECK 约束:此约束保证列中的所有值满足某一条件
    索引:用于在数据库中快速创建或检索数据
    约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。
    
    
    创建约束
    当使用CREATE TABLE语句创建表时,或者在使用ALTER TABLE语句创建表之后,可以指定约束。
    语法
    CREATE TABLE table_name 
    ( 
    column_name1 data_type(size) constraint_name, 
    column_name2 data_type(size) constraint_name, 
    column_name3 data_type(size) constraint_name, 
    .... 
    )
    
    删除约束
    任何现有约束都可以通过在 ALTER TABLE 命令中指定 DROP CONSTRAINT 选项的方法删除掉。
    例如,要去除 EMPLOYEES 表中的主键约束,可以使用下述命令:
    ALTER TABLE EMPLOYEES DROP CONSTRAINT EMPLOYEES_PK;
    一些数据库实现可能提供了删除特定约束的快捷方法。例如,要在 Oracle 中删除一张表的主键约束,可以使用如下命令:
    ALTER TABLE EMPLOYEES DROP PRIMARY KEY;
    某些数据库实现允许禁用约束。这样与其从数据库中永久删除约束,你可以只是临时禁用掉它,过一段时间后再重新启用。
    
    完整性约束
    完整性约束用于保证关系型数据库中数据的精确性和一致性。对于关系型数据库来说,数据完整性由参照完整性(referential integrity,RI)来保证。
    有很多种约束可以起到参照完整性的作用,这些约束包括主键约束(Primary Key)、外键约束(Foreign Key)、唯一性约束(Unique Constraint)以及上面提到的其他约束。
    
    批注
    约束的种类有很多,通过约束我们可以让进入数据库的数据更加规范,虽然这样做会很麻烦,有时候甚至还可能影响用户体验,但是还是建议尽量让你的数据库设计的更加规范,只有数据规范了,在之后的数据处理过程中或数据查询分析过程中才会更加高效。本节主要介绍语法部分,下一节会着重介绍各个约束的使用方法。

    更多约束的示例

    2.查看表信息

     desc tab_name 查看表结构
     show columns from tab_name  查看表结构
     show tables 查看当前数据库中的所有的表
     show create table tab_name    查看当前数据库表建表语句 
    

      

    3.修改表结构

    (1)增加列(字段)
          alter table tab_name add  列名 类型[完整性约束条件][first|after 字段名];
          alter table user add addr varchar(20) not null unique first/after username;
    #添加多个字段
          alter table users2 
                add addr varchar(20),
                add age  int first,
                add birth varchar(20) after name;
    

      

    (2)修改一列类型
          alter table tab_name modify 列名 类型 [完整性约束条件][first|after 字段名];
          alter table users2 modify age tinyint default 20;
          alter table users2 modify age int  after id;
    

      

    (3)修改列名
          alter table tab_name change  列名 新列名 类型 [完整性约束条件][first|after 字段名];
          alter table users2 change age Age int default 28 first;
    

      

    (4)删除一列
          alter table tab_name drop 列名;
          -- 思考:删除多列呢?删一个填一个呢?
          alter table users2 
                add salary float(6,2) unsigned not null after name,
                drop addr;
    

      

    (5)修改表名
          rename table 表名 to 新表名;
    

      

    (6)修该表所用的字符集    
          alter table student character set utf8;
    

      

    4.删除表

    drop table tab_name;
    

      

    5 添加主键,删除主键

    alter table tab_name add primary key(字段名称,...) 
        alter table users drop primary key;
    
        eg:
        mysql> create table test5(num int auto_increment);
        ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
        create table test(num int primary key auto_increment);
        -- 思考,如何删除主键?
        alter table test modify id int;   -- auto_increment没了,但这样写主键依然存在,所以还要加上下面这句
        alter table test drop primary key;-- 仅仅用这句也无法直接删除主键
    

      

    6.索引

       alter table tab_name add unique [index|key] [索引名称](字段名称,...) 
    
        alter table users add unique(name)-- 索引值默认为字段名show create table users;
        alter table users add unique key user_name(name);-- 索引值为user_name
    
        -- 添加联合索引
        alter table users add unique index name_age(name,age);#show create table users;
    
        -- 删除唯一索引
        alter table tab_name drop {index|key} index_name
    

      

  • 相关阅读:
    jQuery的动画效果
    jQuery的event事件
    设计模式 命令行模式
    桥接模式
    享元模式
    代理模式
    门面模式
    代理模式
    python基础-abstractmethod、__属性、property、setter、deleter、classmethod、staticmethod
    库存负数
  • 原文地址:https://www.cnblogs.com/-wenli/p/10350098.html
Copyright © 2011-2022 走看看