一、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,因此视图可以修改物理表数据。