1. 程式人生 > >資料庫學習--DDL(資料庫定義語言)

資料庫學習--DDL(資料庫定義語言)

資料庫

建立資料庫

create database if not exists 庫名;
說明:if not exists的存在為了保證資料庫是唯一的,同時保證程式不阻塞

刪除資料庫

drop database if exists 庫名;
說明: if exists 為保證程式不阻塞

查詢表

show create table 表名;  =》展示建立表的時候的結構的詳細資訊
desc 表名; =》 展示基礎的表資訊

建立表

mysql 5.1版本以下 的不安裝引擎,需自己安裝
charset=utf8; 指定字符集
engine=innodb;指定引擎;
comment=“示例”;添加註釋

create table if not exists Student(
	Sno varchar(9) primary key,
	Sname varchar(20) unique,
	Sage smallint,
	Ssex varchar(2),
	Sdept varchar(20)
)default charset=utf8 engine=InnoDB comment="示例1";

在每個欄位後跟你想要設定的列特性

列特性的說明

  • not null:不為空
  • default:設定欄位預設值
  • unique:唯一值,一列中只能出現一個
  • primary key:主鍵
  • auto_increment:自增鍵

修改表

向表中增加一列

alter table 表名 add 列名 特性;

修改表中資料型別

alter table 表名 modify column 列名 新型別;

刪除表中列

alter table 表名 drop 列名;

修改列名或其他 【萬能修改】

alter table 表名 change 舊列名 新列名 特性;

修改特性

主鍵

新增主鍵

alter table 表名 add primary key (列名)

刪除主鍵

alter table 表名 drop primary key

索引

新增唯一值索引

alter table 表名 add unique(列名)

新增全文索引

alter table 表名 add fulltext(列名); 版本需要在5.7及以上

新增普通索引

alter table 表名 add index(列名)

刪除索引

alter table 表名 drop index/unique/fulltext 列名;

修改索引

刪除後再新增;不能直接修改

引擎

修改

alter table 表名 engine=引擎名;

顯示所有引擎

show engines;

自增開始值的修改

alter table 表名 auto_increment=1;

刪除表

drop table 表名;

資料型別

常用的數值,字元,事件

數值型別

型別 大小 無符號範圍 有符號範圍
tinyint 1位元組 -27,27-1 0,2^8 ^-1
smallint 2位元組 -215,215-1 0,2^16 ^-1
mediumint 3位元組 -223,223-1 0,2^24 ^-1
int/integer 4位元組 -231,231-1 0,2^32 ^-1
bigint 8位元組 -263,263-1 0,2^64 ^-1
float 4位元組 -231,231-1 0,2^32 ^-1
double 8位元組 -263,263-1 0,2^64 ^-1

unsigned :無符號,最小是0
zerofull:數值位數不足時,用0補齊

字串

型別 大小
char 255位元組 (定長)
varchar 0-65535位元組(彈性)
tintblob 0-255位元組(二進位制)
tinttext 0-255位元組(文字)

日期

型別 格式
date yyyy-mm-dd
time hh:mm:ss
year yyyy
datetime yyyy-mm-dd hh:mm:ss
timestamp 時間戳,毫秒數

型別為timestamp,預設插入資料的時間,更新時,時間也會變(版本>5.7)