create
建立insert
插入primary key
主鍵alter
修改change
改變/修改rename
重命名modify
修改character
字符engine
引擎table
數據表database
數據庫foreign key
外鍵update
更新delete
刪除drop
扔掉/刪除show
展現unique
惟一增刪改查
create database db_name character set character_name
複製代碼
db_name
:表示所要建立的數據庫的名稱。character_name
:表示數據庫的字符集。『示例』建立一個名爲 bookshop 的數據庫,並設置其字符集爲gbk。mysql
create database bookshop character set gbk;
複製代碼
結果:sql
mysql> create database bookshop character set gbk;
query ok, 1 row affected (0.00 sec)
複製代碼
成功建立數據庫後,可使 用show
命令查看 mysql 服務器中的全部數據庫信息數據庫
show databases;
複製代碼
『示例』show命令査看 mysql 服務器中的全部數據庫bash
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| bookshop |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
複製代碼
雖然成功建立了數據庫,但並不表示當前就在操做操做庫 bookshop
。可使用 use
語句選擇一個數據庫。服務器
use db_name;
複製代碼
例如,選擇名稱爲 bookshop
的數據庫,設置其爲當前默認的數據庫,命令執行結果以下所示post
mysql> use bookshop;
Database changed
複製代碼
數據庫建立後,若是須要修改數據庫的參數,可使用 alter database
命令。語法以下:ui
alter database db_name character set character_name;
複製代碼
『示例』將數據庫 bookshop所用的字符集修改爲 gb2312。spa
alter database bookshop character set gb2312;
複製代碼
刪除數據庫的操做可使用 drop database
語句,語法以下:設計
drop database db_name;
複製代碼
例如,經過 drop database 語句刪除名稱爲 bookshop 的數據庫,以下所示。3d
mysql> drop database bookshop;
query ok, 0 rows affected (0.03 sec)
複製代碼
dbms
) 使用數據引擎進行建立、查詢、更新和刪除數據 操做。show engines;
」 便可查看mysql服務實例支持的存儲引擎。以下所示。
myisam存儲引擎的文件類型有三個。
基於 myisam 存儲引擎的表支持3種不一樣的存儲格式, 分別是
列名是用來訪問表中具體域的標識符,列名必須遵循下列規則:
整數數據類型
bigint
、int
、 mediumint
、 smallint
和 tinyint
小數數據類型
decimal
、 numeric
兩類。從功能上說二者徹底等價,二者的惟一區別在於 decimal不能用於帶有 indentity
關鍵字的列浮點數據類型
經常使用的字符串類型主要包括char
、 varchar
、 binary
、 varbinary
等類型。
在 mysql中,日期時間類型包括 datetime
、time
、timestamp
、date
等。
表的命名方式。
表中每一列的名稱、數據類型及其長度。
表中的列是否容許空值, 是否惟一, 是否要進行默認設置或添加用戶定義約束。
表間的關係, 即肯定哪些列是主鍵, 哪些是外鍵
語法
create table tb_name(
column name1 datatype[列級別約束條件],
column name2 datatype[列級別約束條件]
...
[表級別約束條件]
);
複製代碼
建立以下數據表的話
實際代碼
create table customers(
cid char(6) not null primary key,
ctruename varchar(50),
cpassword varchar (50),
csex char (2),
caddress varchar(50),
cmobile varchar(11),
cemail varchar(50),
cregisterdate datetime
)engine=innodb;
複製代碼
存在你數據庫裏的數據, 就要符合你數據庫的
規矩
在 mysql中能夠經過 primary key約束、foreign key約束、 unique、空值約束和默認值約束等來實施數據完整性
實體完整性(每行數據都不同)
域完整性(數據大小在字段容許的範圍內)
引用完整性約束(外鍵和對應主鍵的值要一致)
自定義完整性(本身定義的一些規則)
主鍵(primary key
)約束是使用最爲頻繁的約束 它的做用是惟一標記一條數據
因此:
總結起來就是四不
不爲空, 不相同, 不重用, 不改動
『示例』顧客信息表 customers中須要以「顧客編號」做爲顧客的惟一標識,在建立數據表 customers時,爲cid列設置primary key約束,因爲單列組成主鍵,故該主鍵能夠定義爲列級主鍵。
create table customers(
cid char(6) not null primary key,
ctruename varchar (30) not null,
cpassword varchar (30) not null,
csex char(2)not null,
caddress varchar (50) null,
cmobile varchar (11) not null,
cemail varchar(50) null,
cregisterdate datetime not null
);
複製代碼
『示例』若是在訂單詳情表中不設置編號,則能夠將表中「訂單編號 + 商品編號」做爲訂單詳情的惟一標識,在建立數據表 orderdetails時, 爲oid和gid的組合設置 primary key約束。
create table orderdetails(
oid char(14) not null,
gid char(6) not null,
odprice float not null,
odnumber int not null,
primary key (oid, gid)
);
複製代碼
外鍵( foreign key )約束標識表之間的關係,用於強制參照完整性,爲表中一列或者多列數據提供參照完整性。
簡單說, 外鍵是鏈接另外一個表的錨點
建立外鍵的基本語法以下:
[constraint<外鍵名>] foreign key 列名1 [, 列名2, ...] references <主鍵表> 主鍵列1 [主鍵列2...]
複製代碼
看着挺唬人, 其實很簡單, 看個例子
『示例』在建立數據表訂單表 orders時,表中的cid(客戶編號)引用了客戶表 customers中的客戶編號,須要創建 orders表和 customers 表之間的關係。其中cid爲關聯列, customers 表爲主鍵表, orders表爲外鍵表。
create table orders(
oid char(14) not null primary key,
cid char(6) not null,
odate datetime not null,
osum float not null,
ostatus char(1) not null,
foreign key(cid) references customers(cid)
)engine=innodb;
複製代碼
『示例』爲了保證客戶信息表
表 customers中的手機號
不重複,在建立數據表 customers時,爲 cmobile設置 unique約 束
-- 若是存在就刪除, 防止重複建表而報錯
drop table if exists customers;
create table customers(
cid char(6) not null primary key,
ctruename varchar (30) not null,
cpassword varchar (30) not null,
csex char(2)not null,
caddress varchar (50) null,
cmobile varchar (11) not null unique,
cemail varchar(50) null,
cregisterdate datetime not null
);
複製代碼
『示例』在建立客戶信息
表 customers時,爲用戶性別csex 字段設置爲默認值「男」。
create table customers(
cid char(6) not null primary key,
ctruename varchar (30) not null,
cpassword varchar (30) not null,
csex char(2)not null default '男',
caddress varchar (50) null,
cmobile varchar (11) not null unique,
cemail varchar(50) null,
cregisterdate datetime not null
);
複製代碼
非空值約束限制一列或多個列的值不能爲空(null) 空表示未定義或未知的值。
在默認狀況下,全部列都接受空值, 若要某列不接受空值, 則能夠在該列上設置not null約束。
null值既不等價於數值型數據0, 也不等價於字符型數據中的空串, 只是代表字段值是未知的
如需在表中添加列,請使用下面的語法:
alter table table_name add column_name datatype;
複製代碼
『示例』在客戶表中新增一個客戶暱稱字段, 變長11位
alter table customers add cnickname varchar(11);
複製代碼
如需刪除表中的列,請使用下面的語法(請注意,某些數據庫系統不容許這種在數據庫表中刪除列的方式):
alter table table_name drop column column_name
複製代碼
『示例』刪除用戶暱稱字段
alter table customers drop cnickname
複製代碼
要改變表中列的數據類型,請使用下面的語法:
alter table table_name modify column column_name datatype
複製代碼
『示例』假設已經在數據庫 bookshop中建立了表customers。要把字段 csex 的數據類型改成int類型。
use bookshop;
alter table customers modify csex int not null;
複製代碼
『示例』假設已經在數據庫 bookshop中建立了表 customers。添加一個新的字段 state,類型爲cha(1),不容許爲空,將字段 address列刪除。
use bookshop;
alter table customers add state char() not null, drop column address
複製代碼
用 rename table
語句來更改表的名字。其語法形式以下
rename table tb_name to new_tb_name
複製代碼
『示例』假設數據庫 bookshop 中存在 customers 表,將 customers 表重命名爲 customers2 表。
use bookshop;
rename table customers to customers2;
複製代碼
刪除表是指刪除數據庫中已存在的表。在 mysql 中經過 drop table 語句來刪除表。語法以下:
drop table tb_name;
複製代碼
『示例』假設存在 customers,刪除 bookshop數據庫中 customers 數據表。
use bookshop;
drop table customers;
複製代碼
使用基本的 insert語句插入數據要求指定表名稱和插入到新記錄中的值。基本語法格式爲
insert into tb_name (col_list) values (val_list);
insert into tb_name values (val_list);
複製代碼
『示例』向 bookshop數據庫的表 customers插入以下的數據。
```msyql
insert into customers
( cid,
truename,
cpassword,
csex,
address,
cmobile,
cemai,
cregisterdate )
values
( 'c0011',
'李 平',
'123456',
'女',
'廣東中山市',
'1351543876',
'liping163.com',
'2009-9-6' );
```
複製代碼
『示例』新顧客信息錄入,顧客信息地址 address和電子郵箱cemail尚缺,只能將該顧客的部分信息如表所示添 加到 customers表中。
```sql
insert into customers
( cid, truename, password, csex, cmobile, cregisterdate )
values
( c0012, 張先明, 23456, 男, 13513452312, 2009-10-6 );
```
複製代碼
『示例』若是想一次性插入多條, 能夠這樣...
use bookshop;
insert into customers values
(
'c0013',
'韓志國',
'123456',
'男',
null,
'13512134256',
'hanzo',
'al63com',
'2010-1-16'
), (
'c00141',
'張小明',
'123456',
'男',
null,
'13613434256',
'zma163.com',
'2010-2-24');
複製代碼
『示例』修改商品信息表 goods中的數據,將所有書籍的價錢九折出售。
update goods;
set price = price * 0.9;
複製代碼
『示例』修改商品信息表gods中的數據,將書籍存量小於100本的圖書再增長50本。完成語句以下所示。
update goods;
set number = number + 50 where number <= 100;
複製代碼
『示例』商品編號爲「010001」的商品已售完,而且之後不考慮再進貨,須要在商品信息表中清除該商品的信息。完 成語句以下所示
delete from goods where gid=010001;
複製代碼
『示例』刪除商品信息表中的全部信息。完成語句以下所示。
delete from goods;
複製代碼