一、查看数据库及表
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 mqr 1 set xingming =' mmm ' where xuhao ='3';
3.删除表中数据
delete from 表名 where 列名='值';
delete from mqr 1 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_ mqr 1 foreign key( xuhao ) references mqr ( xuhao );
表1是想要增加外键的表, 要增加的外键 文件类型和是否允许为空,在两个表中必须要是一致的。如图xh 在两个表中必须是类型相同。