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 以上的版本設置;索引
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;
約束 = 別亂搞;
約束就是在定義字段類型的時候,我就先定義好規則,不讓你亂插入(別亂搞!);
主鍵約束又能夠分爲:
Example:
# 單字段主鍵 id Int Primary Key, # 多字段主鍵 id int, uid int Primary Key(id,uid),
字段值不能爲空,若是爲空報錯!
example:
name char(20) Not null;
保證數據表中的字段惟一性,即字段值不能重複;
phone int Unique,
當插入空值時,默認填充默認值;
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;