mysql基本操作

以下操作都是在cmd中執行

  • 登陸數據庫服務器

    # 登陸數據庫服務器
    mysql -uroot –p+password
    
    # 退出數據庫服務器(三者任選一)
    quit
    \q
    exit
    
  • 新建數據庫

    /*新建數據庫*/
    create database 數據庫名;
    /*查詢數據庫服務器中有哪些數據庫*/
    show databases;
    

    在這裏插入圖片描述

  • 選擇使用數據庫並查看數據庫下的所有表

    /*選擇數據庫*/
    use 數據庫名;
    /*查看數據庫下的所有表*/
    show tables;
    

    在這裏插入圖片描述

  • 新建表和刪除表

    /*新建表*/
    create TABLE pet(
                       name VARCHAR(20),
                       owner VARCHAR(20),
                       specise VARCHAR(20),
                       sex CHAR(1),
                       brith DATE,
                       death DATE );
    /*刪除表*/    
    drop table pet;
    

    var()與varchar()的區別在於var()是定常的,哪怕存儲的字符串沒有達到"()“中數字的上限,var()依然會佔用空格來填充空間.而varchar()則是不定長的,沒有達到”()"中的上限則會自動去掉後面的空格

  • 查看數據表的架構

    describe score;
    

    在這裏插入圖片描述

    Field: 字段的名稱

    Type: 字段的類型,可以有int var varchar

    Key : 是否是關鍵字 如可以定義爲: primary key 或者 unique key …

    Default: : 若是該字段沒有主動設置值的時候,該字段的默認值是NULL

  • 插入數據和刪除數據

    /*插入全部數據*/
    Insert into score Values('104', '3-245', '88');
    
    /*插入部分數據,未設置的寫入默認值*/
    Insert into score(s_no,c_no) Values('108','3-245');
    

    在這裏插入圖片描述

    /*刪除數據行*/
    delete from score where s_no='108';
    /*添加字段*/
    alter table score add(a varchar(11));
    /*刪除字段*/
    alter table score drop a;
    

    在這裏插入圖片描述

  • 查看已有表的建表命名

    show create table score;
    

    在這裏插入圖片描述

  • 創建視圖

    create view test as 
    select s_no
    from score;
    
  • 建表約束

    • 主鍵約束:唯一確定一張表中的一條記錄,增加主鍵約束之後,字段不重複而且不爲空

      /*建表*/
      create table user(
          /*設置id爲主鍵*/
          id int PRIMARY KEY,
          name VARCHAR(20)
      );
      /*插入數據*/
      INSERT INTO user VALUES (1,'張三');
      /*刪除已添加的主鍵約束*/
      alter table user drop primary key;
      /*在創建好的表中添加主鍵約束*/
      alter table user add primary key(id);
      
    • 複合主鍵:所有的字段都不是相同的情況下可以允許其中的字段重複

      CREATE TABLE user2(
          id INT,
          name VARCHAR(20),
          password VARCHAR(20),
          /*設置(id,name)爲複合主鍵*/
          PRIMARY key(id,name)
      );
      INSERT INTO user2 VALUES (1,'老王','123456');
      INSERT INTO user2 VALUES (2,'老王','123456');
      
    • 自增約束:

      CREATE TABLE user3(
          id INT PRIMARY KEY AUTO_INCREMENT,
          name VARCHAR(20)
      );
      INSERT INTO user3(name) VALUES('張三');
      INSERT INTO user3(name) VALUES('李四');
      

      在這裏插入圖片描述

    • 唯一約束:修飾的字段的值不能重複

      CREATE TABLE user5(
          id INT unique,
          name VARCHAR(20)
      );
      /*刪除已添加的唯一約束*/
      alter table user drop index id;
      
    • 非空約束:該項不能爲空

      CREATE TABLE user4(
          id INT unique not null,
          name VARCHAR(20)
      );
      
    • 默認約束:該字段存在默認值

      CREATE TABLE user6(
          id INT primary key,
          name VARCHAR(20) default 'none'
      );
      
    • 外鍵約束:涉及到兩個表:父表、子表

      /*父表*/
      create table classes(
      	id int primary key,
      	name varchar(10)
      );
      /*子表*/
      create table classes(
      	id int primary key,
      	name varchar(10),
          class_id int,
          foreign key(class_id) references classes(id)
      );
      

      父表中沒有的數據值,在子表中是不能被使用的

      若父表的記錄被引用,則不能刪除主表中的該記錄

    • 檢查約束:檢查字段的值是否爲可選範圍

      create table tblteacher{
      	teaID int not null primary key comment '學號',
      	teaName nvarchar(10) not null comment '姓名',
      	teaSex nchar(1) not null comment '性別',
      	teaTelphone char(11) comment '電話',
      	constraint ck_tablteacher_teaSex check(teaSex in('男','女'))
      };
      
      
發佈了87 篇原創文章 · 獲贊 32 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章