0、启动mysql:
通过doc启动:
c:\Users\windows\mysql -u root -p
Enter password:root
一、数据库:
1.创建数据库
create database [if not exists] db_name [character set xxx] [collate xxx]
*创建一个名称为mydb1的数据库。 create database mydb1;
show databases; 显示所有数据库
*创建一个使用utf8字符集的mydb2数据库。
create database mydb2 character set utf8;
*创建一个使用utf8字符集,并带“校对规则”的mydb3数据库。校对规则:排序时用到的规则,比如按字母排序,还是按笔画排序 create database mydb3 character set utf8 collate utf8_bin ;
2.查看数据库
show databases;查看所有数据库
show create database db_name; 查看数据库的创建方式
3.修改数据库
alter database db_name [character set xxx] [collate xxxx]
例如:把mydb2 的编码改为gbkalter database mydb2 character set gbk;
4.删除数据库
drop database [if exists] db_name;
5.选择数据库
切换数据库 use db_name;
查看当前使用的数据库 select database();
二、表
1.创建表
*创建一个员工表employee
create table employee(
id int primary key auto_increment ,
name varchar(20),
gender bit default 1,
birthday date,
entry_date date,
job varchar(20),
salary double,
resume text
);
2.查看表信息:
desc tab_name 查看表结构
show tables 查看当前数据库中的所有的表
show create table tab_name 查看当前数据库表建表语句
3.修改表结构
(1)增加一列
alter table tab_name add [column] 列名 类型;
(2)修改一列类型 alter table tab_name modify 列名 类型;
(3)修改列名 alter table tab_name change [column] 列名 新列名 类型;
(4)删除一列 alter table tab_name drop [column] 列名;
(5)修改表名 rename table 表名 to 新表名;
(6)修该表所用的字符集 alter table student character set utf8;
4.删除表
drop table tab_name;
三、表记录
1.增加一条记录insert
insert into tab_name (field1,filed2,.......) values (value1,value2,.......);
2.修改表记录
update tab_name set field1=value1,field2=value2,......[where 语句]
3.删除表操作
delete from tab_name [where ....]
四、多表查询
1.笛卡尔积查询:两张表中一条一条对应的记录,m条记录和n条记录查询,最后得到m*n条记录,其中很多错误数据
2.内连接:查询两张表中都有的关联数据,相当于利用条件从笛卡尔积结果中筛选出了正确的结果。
select * from ta ,tb where ta.tb_id = tb.id;
select * from ta inner join tb on ta.tb_id = tb.id;
(1)左外连接:在内连接的基础上增加左边有右边没有的结果
select * from ta left join tb on ta.tb_id = tb.id;
(2)右外连接:在内连接的基础上增加右边有左边没有的结果
select * from ta right join tb on ta.tb_id = tb.id;
(3)全外连接:在内连接的基础上增加左边有右边没有的和右边有左边没有的结果
select * from ta full join tb on ta.tb_id = tb.id; --mysql不支持全外连接
select * from ta left join tb on ta.tb_id = tb.id
union
select * from ta right join tb on ta.tb_id = tb.id;