MYSQL學習與實驗(一)——資料庫定義與操作

陌意隨影發表於2020-12-05

MYSQL學習與實驗(一)——資料庫定義與操作

1.1建立資料庫語句

CREATE  DATABASE [IF NOT EXISTS] 資料庫名 [選項...];

這裡建立一個DBMS的資料庫

 create database if not exists DBMS character set gbk;

在這裡插入圖片描述
這裡使用了if not exists 這個條件,意思是如果不存在該資料庫則建立,如果已經存在了則不建立。比如這個DBMS資料庫已經被建立,這時候就不會重複建立這個資料庫,如果不使用這個if not exists那麼直接使用建立資料庫語句:create database DBMS character set gbk;

則會報錯:
在這裡插入圖片描述

1.2.修改資料庫資訊:

 alter database 資料庫名 修改選項  修改的新值
  alter database DBMS character set utf8mb4;

在這裡插入圖片描述
使用檢視資料庫資訊命令檢視當前資料庫DBMS的資訊:

 show create database dbms;

在這裡插入圖片描述
可以發現,我們剛開始建立的時候這個資料庫的編碼設定“gbk”,現在已經改變為了“utf8mb4”,然後開始將編碼修改為原來的樣子:
在這裡插入圖片描述

可以發現修改成功了。

1.3建立一個臨時資料庫tempDBMS然後刪除

1.3.1建表語句:drop database if exists tempDBMS;

在這裡插入圖片描述

1.3.2刪除資料庫:drop database 資料庫名

 drop database  tempDBMS;

在這裡插入圖片描述
可以看到該資料庫已經被刪除了。

1.4.建立表

1.4.1新建

CREATE TABLE employee (employeeID CHAR(6) NOT NULL PRIMARY KEY, name CHAR(10) NOT NULL, education CHAR(4) NOT NULL,birth DATE NOT NULL, gender TINYINT(1) NOT NULL DEFAULT 1,workYear TINYINT(1),address VARCHAR(100),phone CHAR(12), departmentID CHAR(3) REFERENCES department(departmentID));

在這裡插入圖片描述

1.4.2從已有資料中新建:

CREATE  TABLE [IF NOT EXISTS] 表名  [ ( ) LIKE 已有表名 [ ] ] | [AS ( 表示式 )];

在這裡插入圖片描述
在這裡插入圖片描述

1.5修改表

1.5.1首先建立一個臨時例子的表 person:

create table if not exists person (id int(8) primary key auto_increment,name varchar(20) not null,password varchar(20) not null,sex tinyint(1) not null,address varchar(128));

在這裡插入圖片描述

1.5.2修改表名:

rename table  表名  to  新的表名

修改表person的名為newperson:
在這裡插入圖片描述

1.5.2刪除列:

alter table table-name drop col-name;
 alter table newperson drop sex ;

在這裡插入圖片描述

可見刪除列“sex”成功。

1.5.3增加列(單列):

alter table table-name add col-name col-type comment 'xxx';

在這裡插入圖片描述

1.5.4增加表欄位並指明欄位放置為第一列:

alter table table-name add col-name col-type COMMENT 'sss' FIRST;
alter table newperson add column age int(3) comment "年齡" first;

在這裡插入圖片描述

1.5.5增加表欄位並指明欄位放置為特定列後面:

alter table table-name add col-name col-type after col-name-1;
 alter table newperson add column jobName varchar(20) comment "工作名稱" after id;

在這裡插入圖片描述

1.5.6使用MODIFY修改欄位型別:

alter table table-name  modify  column col-name col-type;
 alter table newperson modify name varchar(40) not null;

在這裡插入圖片描述

1.5.7使用CHANGE修改欄位型別:

alter table table-name change col-name col-name col-type;
 alter table newperson change address newAddress varchar(64) not null;

在這裡插入圖片描述

1.5.8修改欄位的預設值:

alter table table-name alter col-name set default 要設定的預設值;
 alter table newperson alter age set default 18;

在這裡插入圖片描述

1.5.9欄位刪除預設值:

alter table table-name alter col-name drop default;
alter table newperson alter age drop default;

在這裡插入圖片描述

1.6.刪除臨時表:

drop table 表名 [if exists]
 drop table if exists;

在這裡插入圖片描述

1.7思考與練習

建立一個基本表的時候,LIKE和AS有何區別?試著對比表資料和表結構。

建立表時從已有資料中複製:

CREATE TABLE employee2 LIKE employee ;和CREATE TABLE employee3 AS (SELECT * FROM employee );的區別:

CREATE TABLE employee2 LIKE employee ;建立表時複製的是employee 的表結構,但是並沒有複製employee 中的資料到employee2中,查詢資料時為空。
在這裡插入圖片描述
在這裡插入圖片描述
CREATE TABLE employee3 AS (SELECT * FROM employee );建立表時不僅把employee 的結構複製過來了,其中的資料也複製過來了,employee3 和employee3的資料一致。

1.8.本博文已經同步到個人部落格,如有需要,請移步:http://moyisuiying.com/index.php/javastudy/mysql/362.html

相關文章