一、MySQL的基本使用:
1、登入:
mysql -u root -p[password]
2、顯示所有資料庫:
show databases;
3、進入資料庫:
use db_name;
4、顯示所有的資料表:
show tables;
5、顯示表結構:
desc tb_name;
6、顯示所有的表資料:
select *from tb_name;
7、顯示所有的表資料:
select 字段名1,字段名2,… 字段名n from tb_name;
8、顯示部分的表資料:
select 字段名1,字段名2, … 字段名k from tb_name;
9、導出.sql腳本語句:
mysqldump -uroot -p[password] –databases db_name >d:/a/dd.sql
10、導入.sql腳本語句:
source d:/a/dd.sql
二、MySQL的資料庫定義語言(DDL):
1、建立資料庫:
create database [if not exists] db_name [character set charset_name];
2、建立資料表:
create table [if not exists] tb_name(
字段名1 字段類型 限制,
字段名2 字段類型 限制,
….
字段名n 字段類型 限制
);
3、更改原有表的結構:
alter table tb_name add column 字段名 字段類型;
alter table tb_name drop column 字段名;
4、更改資料庫的全局特性:
alter database db_name [character set charset_name];
alter database db_name [collate collation_name];
5、删除整個表:
drop table [if exists] tb_name [,tb2_name] ;
6、删除整個資料庫:
drop database [if exists] db_name;
7、修改表名:
rename table tb_name to new_tb_name;
8、修改列名:
alter table tb_name change column oldName newName 資料類型;
8、修改列的資料類型:
ALTER TABLE tb_name MODIFY COLUMN col_name 新資料類型;
9、定義id為自動增長列:id int auto_increment
id int auto_increment primary key;
10、外鍵限制:
[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, …)
REFERENCES tbl_name (index_col_name, …)
[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION}]
[ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION}]
例如:constraint husband_key foreign key(wid) references wife(id)
11、主鍵限制:
id int primary key;
三、MySQL的資料庫操縱語言(DML):
1、插入一行資料:
insert into tb_name [(col_name,…)] values(value1,value2,…);
2、删除表中一行資料:
delete from tb_name where where_definition;
3、删除所有表資料:
delete from tb_name;
4、修改某一行資料:
update tb_name SET col_name1=expr1 [, col_name2=expr2 …] [where where_definition];
四、MySQL的select查詢:
1、and子句:
select *from tb_name where express1 and express2;
2、or子句:
select *from tb_name where express1 or express2;
3、not子句:
select *from tb_name where 字段名 not in(字段值1,字段值2….);
4、in子句:
字段值在離散字段值系列中:
select *from tb_name where 字段名 in(字段值1,字段值2….);
5、between子句:
在[a,b]區間之中的所有:
select *from tb_name where 字段名 between(值1,值2);
6、like子句(‘%’通配所有字元;‘_’通配單字元):
模糊查詢:
(1) 查找所有姓‘張’的人:
select *from tb_name where sname like ‘張%’;
(2)查找姓‘張’名字隻有一個字的人:
select *from tb_name where sname like ‘張_’;
(3)查找名字中含有‘張’字的人:
select *from tb_name where sname like ‘%張%’;
7、空字元串‘’和空NULL:
(1)判斷是否為空字元用等于号‘=’判斷 :
select *from tb_name where sname=”;
(2)判斷是否為NULL用 ‘is null’判斷:
select *from tb_name where sname is null;
8、‘+’字元代表算術運算加,而非字元串連接配接符:
9、as子句:
給字段取别名:
select name as 姓名 from tb_name;
10、distinct子句:
輸出範圍段:
select distinct age from tb_name;
五、MySQL中的聚合函數:
1、count(*)
(1)統計行數,*可以用其他字段代替,還可以用count(1):
select coutnt(*) from tb_name;
(2)用字段 指定的某些行 :
select count(sname) from tb_name;
2、avg()
求平均值:
select avg(age) from tb_name;
3、sum()
求總和:
select sum(sno) from tb_name;
4、max()
求最大值:
select max(age) from tb_name;
5、min()
求最小值:
select min(age) from tb_name;
6、group by
分組:
顯示tb_name表中有哪些位址:
select address from tb_name group by address;
select … from … group by … having ….
7、having
具有一些特性:
顯示平均年齡大于22的地區及其平均年齡:
select address ,avg(age) from tb_name group by address having age>22;
select … from … group by … having ….
8、order by
排序:
order by;預設排序為升序
order by 字段名 asc 升序;
order by 字段名 desc 降序;
select [distinct] … from … where … order by ..
六、MySQL中的View視圖:
1、建立view視圖:
create view view_name as select 子句;
視圖的操作和表的操作是相同的
2、查詢view視圖:
select *from view_name ;
3、通過視圖可以修改實體表中的資料的:
例如:
(1)建一個學生表stud,含有學号、姓名、年齡、位址字段:
(2)向stud中插入資料: (3)顯示stud: (4)建立視圖studView: (5)顯示studView: (6)修改視圖中的資料: (7)顯示修改後的視圖資料: (8)顯示stud表資料: 此時,stud表中的Tom的sage由12變為了19,是以視圖可以修改實體表資料。