一、查看数据库及表
1.查看当前 DMBS 中有哪些数据库
show databases; (首先进入数据库)
2.查看当前数据库中有哪些表 show tables;
3.查看表的结构(信息)
describe 表名;如:describe orders;
二、创建删除数据库
1.创建数据库
create database 数据库名; create database test;
2.删除数据库
drop database 数据库名; drop database db;
3.使用数据库
use 数据库名; use test;
三、表的创建与删除
1.创建表
create table 表名
(
列名 1 数据类型 是否可以为空 是否自增长,
biao1 xuhao int(10) not null auto_increment
列名 2 数据类型 是否可以为空 是否自增长,.
primary key(主键列名)
)engine=引擎名;
注:
(1)数据类型
字符串数据类型:char、varchar(长字符)
数值数据类型:int、boolean、decimal
时间和日期数据类型:date、datetime
二进制数据类型
(2)如何查看当前 DBMS 支持的所有数据库引擎 show engines
创建三个表
要求:mqr1(人员信息表):h_id(人员 ID),h_name(人员姓名),h_tel(人员电话)
r_info(关联关系表):r_id(关联 ID),h_id(人员 ID),xuhao(狗的 ID)
mqr(狗的信息表):xuhao(狗的 ID),d_age(狗的年龄),d_type(狗的类型)创建 mqr1
create table mqr1 (
-> h_id int not null auto_increment, -> h_name char(10) not null,
-> h_tel int(11) not null,
-> primary key(h_id) -> )engine=InnoDB;
创建 r_info
create table r_info (
-> r_id int not null auto_increment, -> h_id int not null,
-> xuhao int not null, -> primary key(r_id) -> )engine=InnoDB;
创建 mqr
create table mqr (
-> xuhao int not null auto_increment,
-> d_age int,
-> d_type char(20),
-> primary key (xuhao)
-> )engine=InnoDB;
2.修改表中的列(字段)
(1)向表中新增一个字段
alter table 表名 add 列名 列的属性;
alter table mqr add xingbie char(5);
(2)从表中删除一个字段
alter table 表名 drop column 列名;
alter table mqr drop column xingbie;
(3)更改表中某列的数据类型:
alter table 表名 modify 列名 新的列的类型
alter table mqr modify xingbie char(20);
同时更改列名及数据类型:
alter table 表名 change column 旧列名 新列名 新的列类型
alter table mqr change column dianhua shouji char(5);
3.重命名表
rename table 旧表名 to 新表名;
rename table mqr to mqr1;
4.删除表
drop table 表名; drop table orders;
四、表中数据的操作
1.向表内插入数据
(1)直接插入数据
insert into 表名 values ('值 1','值 2',...);
insert into mqr1 values ('1','zwb','137');
(2)指定字段插入(测试一下自增长列)
insert into 表名(列名 1,列名 2...) values ('值 1','值 2'...);
insert into mqr1(xingming ,xingbei ) values ('yyy','138');
(3)插入多条记录
insert into 表名(列名 1,列名 2...) values ('值 1','值 2'...),('值 1','值 2'...);(列名是必须加的)
insert into mqr(xuhao,xingming,xingbie) values ('1','2','zangao'),('2','1','tairitian'),('3','3','erha');
(4)插入查询的结果
insert into 表名(列名 1,列名 2...) select * from 表名;
(5)创建一个用于保存查询结果的表 create table mqr_bak (
-> xuhao int(11), -> d_age int(11), -> d_type char(20) -> );
向 mqr_bak 中插入其他表的查询结果 insert into mqr_bak select * from mqr;
2.更新表中数据
update 表名 set 列名='新值' where 主键列名=‘值 1’;
update mqr1 set xingming='mmm' where xuhao ='3';
3.删除表中数据
delete from 表名 where 列名='值';
delete from mqr1 where xuhao='3';
注:删除表中的所有记录:delete from 表名;
select * from mqr;
快速清空整个表:truncate 表名; (速度快)
truncate mqr1;
注:区别:truncate 比 delete 执行的速度快,占用资源少
五、为关系表增加外键(其他表的主键在本表内,用来表明本表与其他表的关联关系)
- sql 语句格式:
alter table 表 1 add constraint 约束名 foreign key(键表1外键列名) references 表 2(列名);
alter table r_info add constraint fk_r_info_mqr1 foreign key(h_id) references mqr1(h_id);
alter table r_info add constraint fk_r_info_mqr1 foreign key(xuhao) references mqr(xuhao);
表1是想要增加外键的表, 要增加的外键 文件类型和是否允许为空,在两个表中必须要是一致的。如图xh 在两个表中必须是类型相同。