測試環境:windows7 64位 mysql.exe、Navicat Lite for MySQL、mysql 5.0.18
mysql數據庫的基本結構:
數據庫(database)包含多個表(table);表包含多個屬性列(column);屬性列包含多個數據(data);屬性列具有四個信息(field,type,null,key,default)。
我們要做得工作就是對database、table、column、data進行增、刪、改、查四種操作,一共4*4=16種命令。
1.1 增 database --創建一個數據庫
create database databaseName; --創建名為databaseName的數據庫
create database mydb;
1.2 刪 database --刪除一個數據庫
drop database databaseName; --刪除名為databaseName的數據庫
drop database if exists databaseName; --如果存在數據庫databaseName,則刪除
1.3 改 database
未知
1.4 查 database
show databases; --顯示所有database的databaseName
select database(); --顯示當前database的databaseName
2.1 增 table --創建一個表,創建表時至少有一個column,否則報錯
create table tableName
(
columnName1 <屬性信息>
[,primary key(columnName)] --也可在此定義主鍵(primary key),[]中內容可有可無
[,foreign key( columnName1 ) reference tableName2(columnName2)] /*定義外鍵columnName1是當前表已經定義的column,tableName2是另一個已經定義的表名,columnName2是另一個 表 的column名字*/
)[comment[=]'table的描述內容'];
--<屬性信息>:typeName[null|not null][default defaultValue] [primary key][auto_increment][comment 'column的描述內容'][identity(起始值,遞增量)]
--null|not null:空或非空
--default defaultValue:默認值
--auto_increment:從1或當前最大值開始自動增加1,與identity(1,1)一樣
create table mytable ( id int(8) not null auto_increment comment '表的主鍵' primary key, name char(10) not null default '無', foreign key(id) reference mytable1(id_1) )comment='我的表';
2.2 刪 table --刪除表
drop table tableName1 [,tableName2] --可刪除一個或多個表,默認為當前數據庫中的表
drop table databaseName.tableName --刪除databaseName中名為tableName的表
2.3 改 table --改變表的名字
rename table tableName to tableName_new [,tableName1 to tableName_new1]; --將名為tableName的表重命名為tableName_new
alter table tableName rename to tableName_new; --同上
2.4 查 table --查看表的名字
show tables from databaseName; --顯示databaseName的所有tableName
show tables; --顯示當前database的所有tableName(use databaseName;--進入某個數據庫)
3.1 增 column
alter table tableName add [column] columnName <屬性信息>; --插入columnName,<屬性信息>參考2.1
alter table mytable add age int(2) default 0;
alter table tableName add [column] columnName <屬性信息> after columnName1; --在columnName1後插入columnName
3.2 刪 column
alter table tableName drop [column] columnName; --刪除columnName
3.3 改 column
alter table tableName modify columnName <屬性信息>; --修改columnName的<屬性信息>
alter table mytable modify age int(4);
alter table tableName change columnName columnName_new <屬性信息>; --修改columnName的名字為columnName_new及其<屬性信息>
3.4 查 column --查看表中所有column的columnName及其信息
describe tableName; --查看表名為tableName中的所有column的columnName及其<屬性信息>
show columns from tableName;--同上
4.1 增 data
insert into tableName(columnName1,columnName2[,columnName3])
values(value1,value2[,value3])[,(value_1,value_2[,value_3])]; --插入一行或多行數據
insert into mytable (name,age) values('Bob',20),('Linda',21);
load data local infile 'path/fileName' into table tableName --將文件中的數據裝載到表中,文件中數據用‘\t’分割,數據行用‘\n’分割
load data local infile 'F:/test.txt' into table mytable;
4.2 刪 data
truncate table tableName; --清空tableName中的數據
delete from tableName; --同上
delete from tableName where <條件語句>; --刪除滿足<條件語句>的數據行
delete from mytable where age=20;
4.3 改 data
update tableName set <columnName=data> where <條件語句>; --改變滿足<條件語句>的行中columnName的數據為data
update mytable set age=22 where name='Bob';
4.4 查 data
select columnName1[,columnName2] from tableName where <條件語句>; --查找滿足<條件語句>的屬性名為columnName1[,columnName2]的數據
select name,age from mytable where id=2;
select * from tableName where <條件語句>; --查找滿足<條件語句>的數據行
參考:http://www.w3school.com.cn/sql/index.asp
MySQL 數據庫常用命令小結
mysql官方文檔