mysql 表的操做

建立表

Example 1:mysql

Create table if not exists `secondweek_tb`(
   `id` int Unsigned auto_increment,
   `title` Varchar(100) Not null,
   `author` Varchar(40) Not null,
   `submission_date` Date,
   primary key ( `id` )
)engine=InnoDB default charset=utf8;

解釋:sql

Unsigned聲明爲無符號;數據庫

若是你不想字段爲NULL能夠設置字段的屬性爲Not NULL, 若是在操做數據庫時若是輸入該字段的數據爲NULL ,就會報錯;ui

Auto_increment定義列爲自增的屬性,通常用於主鍵,數值會自動加1;編碼

Primary key關鍵字用於定義列爲主鍵。 您能夠使用多列來定義主鍵,列間以逗號分隔;code

Engine設置存儲引擎;blog

Charset設置編碼;排序

Varchar(100) 和 Varchar(40)的區別:
一個漢字佔多少長度與編碼有關,以下說MySQL 5.0 以上的版本設置;索引

  • UTF-8:一個漢字=3個字節
  • GBK:一個漢字=2個字節

Varchar(100)表示字節的取值範圍爲0-65535 字節,可是可變長varchar(100);rem

4.0版本如下,varchar(100),指的是100字節,若是存放UTF8漢字時,只能存33個(每一箇中文3字節);

5.0版本以上,varchar(100),指的是100字符,不管存放的是數字、字母仍是UTF8中文(每一箇中文3字節),均可以存放100個 ;

Example 2:

CREATE TABLE test_tb(
    id SMALLINT UNSIGNED KEY AUTO_INCREMENT,
    username VARCHAR(20) NOT NULL UNIQUE,
    password CHAR(32) NOT NULL,
    email VARCHAR(50) NOT NULL DEFAULT 'a@a.com',
    age TINYINT UNSIGNED DEFAULT 18,
    addr VARCHAR(200) NOT NULL DEFAULT '北京',
    salary FLOAT(6,2),
    regTime INT UNSIGNED,
    face CHAR(100) NOT NULL DEFAULT 'default.jpg',
    sex ENUM('男','女','保密') DEFAULT '保密'
)engine=InnoDB default charset=utf8;

約束

約束 = 別亂搞;
約束就是在定義字段類型的時候,我就先定義好規則,不讓你亂插入(別亂搞!);

約束分類

  • 主鍵約束 Primary Key
  • 外鍵約束 Foreign Key
  • 非空約束 Not Null
  • 惟一性約束 Unique
  • 默認值約束(當輸入空值時填充默認值)Default
  • 外鍵約束

Primary Key

主鍵約束又能夠分爲:

  • 單字段主鍵
  • 多字段主鍵

Example:

# 單字段主鍵
id Int Primary Key,

# 多字段主鍵
id int,
uid int Primary Key(id,uid),

Not Null

字段值不能爲空,若是爲空報錯!

example:

name char(20) Not null;

Unique

保證數據表中的字段惟一性,即字段值不能重複;

phone int Unique,

Default

當插入空值時,默認填充默認值;

sex char(5) Default 0,

外鍵約束

待續;

字段值自動增長

建立表時字段類型後面加上 auto_increment,該列數據數值就會自動+1;

`id` int auto_increment,   #定義列爲自增的屬性,通常用於主鍵,數值會自動加1;

索引

索引就是用來加快數據表的查詢和排序用的;

索引分類

瞭解每種(6種)索引方式的應用場景、優缺點;

  • 普通索引
  • 惟一性索引
  • 全文索引
  • 單列索引
  • 多列索引
  • 空間索引

修改表操做

修改表名

有兩種方式;

方式一

Alter Table test1_tb Rename To test2_tb;

方式二

Rename Table test2_tb To test1_tb;

修改表字段操做

修改表字段名

alter table test change  column address address1 varchar(30);

修改表字段類型

alter table test modify address char(10);

修改表字段約束

待續;

修改表字段索引

待續;

添加表字段

alter table test1_tb add  column name varchar(10);

刪除表字段

alter table test1_tb drop  column age;

刪除表字段索引

待續;

刪除表字段約束

待續;

刪除表

Drop table name_table;
相關文章
相關標籤/搜索