建立數據庫是在系統磁盤上劃分⼀塊區域用於數據的存儲和管理,若是管理員在設置權限的時候爲用戶建立了數據庫,則能夠直接使用,不然,須要本身建立數據庫。 mysql
CREATE DATABASE [IF NOT EXISTS] 數據庫名
IF NOT EXISTS:在建立數據庫以前進行判斷,只有該數據庫目前尚不存在時才能執行操做。
此選項能夠用來避免數據庫已經存在而重複建立的錯誤。sql
# 建立myschool數據庫 create database myschool;
IF NOT EXISTS:在建立數據庫以前進行判斷,只有該數據庫目前尚不存在時才能執行操做。
此選項能夠用來避免數據庫已經存在而重複建立的錯誤。 數據庫
CREATE TABLE [IF NOT EXISTS] 表名 ( 字段1 數據類型 [字段屬性|約束][索引][註釋], …… 字段n 數據類型 [字段屬性|約束][索引][註釋] )[表類型][表字符集][註釋];
#建立學生表 CREATE TABLE `student`( `studentNo` INT(4) PRIMARY KEY, ` name` CHAR(10), ……);
多字段使用逗號分隔 保留字用撇號括起來 單行註釋:#…… 多行註釋:/*……*/
CREATE TABLE student( `studentNo` INT(4) PRIMARY KEY, ……);
CREATE TABLE test ( `id` int(11) UNSIGNED COMMENT ‘編號’ )COMMENT='測試表’ ;
CREATE TABLE [IF NOT EXISTS] 表名( #省略代碼 )CHARSET = 字符集名;
create databases myschool; use myschool; create table student( `studentNo` int(4) not null comment '學號' primary key, `loginPwd` varchar(20) not null comment '密碼', `studentName` varchar(50) not null comment '姓名', `sex` char(2) not null default '男' comment '性別', `gradeID` int(4) unsigned comment '年級編號', `phone` varchar(50) comment '電話', `address` varchar(255) default '地址不詳' comment '地址', `bornDate` datetime comment '出生日期', `email` varchar(50) comment '郵件帳號', `identityCard` varchar(18) comment '身份證號' unique key )charset='utf8' comment='學生表';
mysql> desc student; +--------------+-----------------+------+-----+----------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+-----------------+------+-----+----------+-------+ | studentNo | int(4) | NO | PRI | NULL | | | loginPwd | varchar(20) | NO | | NULL | | | studentName | varchar(50) | NO | | NULL | | | sex | char(2) | NO | | 男 | | | gradeID | int(4) unsigned | YES | | NULL | | | phone | varchar(50) | YES | | NULL | | | address | varchar(255) | YES | | 地址不詳 | | | bornDate | datetime | YES | | NULL | | | email | varchar(50) | YES | | NULL | | | identityCard | varchar(18) | YES | UNI | NULL | | +--------------+-----------------+------+-----+----------+-------+ 10 rows in set (0.00 sec)
use myschool; show tables;
use myschool; desc `student`;
use myschool; desc `student`;
drop table [if exists] 表名;
use myschool; drop table if exists `student`;
刪除數據庫是將已經存在的數據庫從磁盤空間上清除,清除以後,數據庫中的全部數據也將除。
刪除數據庫語句和建立數據庫的命令類似,MySQL中刪除數據庫的基本語法格式爲: 緩存
drop database if exists 數據庫名;
drop database if exists myschool;
create table subject( `subjectNo` int(4) comment '課程編號' primary key auto_increment, `subjectName` varchar(50) comment '課程名稱', `classHour` int(4) comment '學時', `gradeID` int(4) comment '年級編號' );
mysql> desc subject; +-------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+----------------+ | subjectNo | int(4) | NO | PRI | NULL | auto_increment | | subjectName | varchar(50) | YES | | NULL | | | classHour | int(4) | YES | | NULL | | | gradeID | int(4) | YES | | NULL | | +-------------+-------------+------+-----+---------+----------------+ 4 rows in set (0.00 sec)
create table result( `studentNo` int(4) comment '學號' not null, `subjectNo` int(4) comment '課程編號' not null, `examDate` datetime(0) comment '考試日期' not null, `studentResult` int(4) comment '考試成績' not null );
mysql> desc result; +---------------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------+----------+------+-----+---------+-------+ | studentNo | int(4) | NO | | NULL | | | subjectNo | int(4) | NO | | NULL | | | examDate | datetime | NO | | NULL | | | studentResult | int(4) | NO | | NULL | | +---------------+----------+------+-----+---------+-------+ 4 rows in set (0.00 sec)
數據庫存儲引擎是數據庫底層軟件組件,數據庫管理系統(DBMS)使用數據引擎進行建立、查詢、更
新和刪除數據操做。不一樣的存儲引擎提供不一樣的存儲機制、索引技巧、鎖定水平等功能。使用不一樣的存
儲引擎,還能夠得到特定的功能。
如今許多不一樣的數據庫管理系統都支持多種不一樣的數據引擎。MySQL的核心就是存儲引擎。安全
mysql有多種存儲引擎,它們分別爲: 併發
MyISAM InnoDB MERGE MEMORY EXAMPLE FEDERATED ARCHIVE CSV BLACKHOLE
使用MyISAM: 不需事務,空間小,以查詢訪問爲主 使用InnoDB: 多刪除、更新操做,安全性高,事務處理及併發控制 ide
mysql> show variables like '%storage_engine'; +----------------------------------+--------+ | Variable_name | Value | +----------------------------------+--------+ | default_storage_engine | InnoDB | | default_tmp_storage_engine | InnoDB | | internal_tmp_disk_storage_engine | InnoDB | +----------------------------------+--------+ 3 rows in set, 1 warning (0.02 sec)
修改my.ini配置文件 性能
default_storage_engine=InnoDB
最簡單的方法,就是經過命令直接修改表的存儲引擎,以下所示: 測試
alter table 表名 ENGINE = 引擎名;
ALTER TABLE student ENGINE = InnoDB;
CREATE TABLE 表名( #省略代碼 )ENGINE=存儲引擎;
CREATE TABLE `myisam` ( id INT(4) )ENGINE=MyISAM;
在mysql中,每一個數據庫最多可建立20億個表,一個表容許定義1024列,每行的最大長度爲8092字節(不包括⽂本和圖像類型的長度)。
當表中定義有varchar、nvarchar或varbinary類型列時,若是向表中插入的數據行超過8092字節時,將致使語句失敗,併產生錯誤信息。
SQL Server對每一個表中行的數量沒有直接限制,但它受數據庫存儲空間的限制。每一個數據庫的最大空間1048516TB,因此一個表可用的最大空間爲1048516TB減去數據庫類系統表和其它數據庫對象所佔用的空間。理論上無限大,就看你硬盤夠不夠大,大多數狀況先是你的硬盤不夠。 大數據