MySQL数据库管理之——增删改查!
Posted 丁CCCCC
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL数据库管理之——增删改查!相关的知识,希望对你有一定的参考价值。
一、概述
- 数据库
- 数据表
- 行(记录):描述一个对象的信息
- 列(字段):描述对象的一个属性
- 数据表
常用的数据类型
- int
- 整型
- float
- 单精度浮点4字节32位
- double
- 双精度浮点8字节64位
- char
- 固定长度的字符类型
- varchar
- 可变长度的字符类型
- text
- 文本
- image
- 图片
- decimal(5,2)
- 5个有效长度数字,小数点后面有2位
二、查看数据库结构
2.1 查看服务器的数据库
- show databases;
不区分大小写,命令结束需加上 “ ; ”
2.2 查看数据库中包含的表
- USE 数据库名;
- SHOW TABLES;
2.3 查看表的结构
- USE 数据库名;
- DESCRIBE [数据库名.]表名;
- 可以直接缩写成:DESC 表名;
三、创建及删除数据库和表
3.1 创建新的数据库
- create database dcc;
3.2 创建新表
-
CREATE TABLE cc01 (id int NOT NULL,name char(10) NOT NULL,score decimal(5,2),passwd chhar(48) DEFAULT ‘’,PRIMARY KEY(主键));
- 主键一般选择能代表唯一性的字段,不允许取空值(NULL),一个表只能有一个主键
-
DESC 表名;
3.3 删除数据表
- DROP TABLE [数据库名.]表名;
- 没用use进入库,需要加上数据库名
3.3 删除指定的数据库
- DROP DATABASE 数据库名;
四、管理表中的数据
4.1 向数据表中插入新的数据记录
命令
INSERT INTO 表名(字段1,字段2,…)VALUES(字段1的值,2的值…)
测试
-
INSERT INTO cc01(id,name,user,passwd) VALUES(1,‘cc11’,111,PASSWORD(‘123456’));
- PASSWAORD()表示密码是加密形式显示,不添加则是正常显示
-
INSERT INTO cc01(id,name,user,passwd) VALUES(2,‘cc22’,222,654321);
-
select * from cc01;
- 查看表的数据内容
4.2 查询数据记录
select * from cc01;
-
查看表的数据内容
select id,name,user,passwd from cc01 where id=2; -
查看特定行数
select * from cc01 limit 3;
- 只显示前三行
select * from cc01 limit 3,2;
- 只显示第三行后的前两行
select id,name from cc01\\G
- 列表方式竖向显示
4.3 修改更新数据表中的数据记录
命令
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];
模板
- UPDATE cc01 SET name=‘cc33’,passwd=‘333333’ WHERE id=3;
- 修改第三行的密码为333333
- 修改第三行的密码为333333
4.4 在数据表中删除指定的数据记录
DELETE FROM 表名 [WHERE 条件表达式];
- DELETE FROM cc01 WHERE id=3;
- 删除第三行
- 删除第三行
五、修改表名和表结构
5.1 修改表名
ALTER TABLE 旧表名 RENAME 新表名;
- alter table cc01 rename ccc01;
5.2 扩展表结构(增加字段)
ALTER TABLE 表名 ADD address varchar(50) default ‘地址不详’;
- alter table ccc01 add address varchar(50) default ‘地址不详’;
- default ‘地址不详’:表示此字段设置默认
- 地址不详可以和not null配合使用
5.3 修改字段(列)名,添加唯一键
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
- alter table ccc01 change user sss varchar(10) unique key;
- 修改 user 为 sss
- change 可以修改字段名、数据类型等所有项
5.4 删除字段
ALTER TABLE 表名 DROP 字段名;
- alter table ccc01 drop address;
- 删除address
- 删除address
六、数据表高级操作
6.1 克隆表,将数据表的数据记录生成到新的表中
方法一
- create table ccc02 like ccc01;
- 通过like方法,复制ccc01表生成ccc02表
- 通过like方法,复制ccc01表生成ccc02表
- insert into ccc02 select * from ccc01;
- 内容复制进
- 内容复制进
方法二
- create table ccc03 (select * from ccc01);
- 复制ccc01
- show create table ccc03\\G
- 获取数据表的结构,索引等信息
- 获取数据表的结构,索引等信息
- select * from ccc03;
6.2 清空表,删除表内的所有数据
方法一
- delete from ccc03;
- DELETE清空表后,返回的结果内有删除的记录条日; DELETE 工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETEFROM删除所有记录后,再次新添加的记录会从原来最大的记录ID后面继续自增写入记录
- DELETE清空表后,返回的结果内有删除的记录条日; DELETE 工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETEFROM删除所有记录后,再次新添加的记录会从原来最大的记录ID后面继续自增写入记录
方法二
- truncate table ccc02;
- TRUNCATE清空表后,没有返回被删除的条目: TRUNCATE 工作时是将表结构按原样重新建立,因此在速度上TRUNCATE会比DELETE清空表快;使用TRUNCATE TABLE 清空表内数据后,ID会从1开始重新记录
- TRUNCATE清空表后,没有返回被删除的条目: TRUNCATE 工作时是将表结构按原样重新建立,因此在速度上TRUNCATE会比DELETE清空表快;使用TRUNCATE TABLE 清空表内数据后,ID会从1开始重新记录
6.3 创建临时表
- 临时表创建后,用 show tables 看不到是创建的临时表的,临时表在连接退出后就会销毁
- 退出之前,可以执行增删改查操作
- drop table 可手动删除临时表
命令
CREATE TEMPORARY TABLE 表名 (字段1 数据类型,字段2 数据类型[,…][,PRIMARY KEY (主机名)]);
模板
-
create temporary table ccc04 (id int(4) zerofill primary key auto_increment,name varchar(10) not null,cardid int(18) not null unique key,hobby varchar(50));
-
insert into ccc04 values(1,‘ccc’,123456,‘running’);
-
select * from ccc04;
-
show tables;
-
退出mysql,重进,临时文件没有
6.4 创建外键约束,保证数据的完整性和一致性
定义
如果同一个属性字段x在表一中是主键,在表二中不是主键,那字段x称为表二的外键
主键表和外键表
- 以公共关键字作主键的表为主键表(父表、主表)
- 以公共关键字作外键的表为外键表(从表、外表)
注意:与外键关联的主表的字段必须设置为主键,要求从表不能是临时表,主从表的字段具备相通的数据类型、字符长度和约束
实操
-
create table dd01 (hobid int(4),hobname varchar(50));
- 创建主表 dd01
-
create table dd02 (id int(4) primary key auto_increment,name varchar(10),age int(3),hobid int(4));
- 创建从表 dd02
-
alter table dd01 add constraint PK_hobid primary key (hobid);
- 为主表dd01 添加一个主键约束,主键名用 PK_ 开头
-
alter table dd02 add constraint FK_hob foreign key (hobid) references dd01 (hobid);
- 为从表dd02添加外键,并将dd02表的hobid字段和dd01的hobid字段建立外键关联,外键名建议以“FK_”开头
数据插入
-
insert into dd01 values(1,‘runing’);
- 给主表插入数据
- 给主表插入数据
-
insert into dd02 values(1,‘dingcong’,18,1);
- 从表插入数据
- 从表插入数据
-
不能先插入从表,再插入主表,否则无法进行
- 主表设置完后,从表可设置
数据删除
删除数据记录时,需要先删除从表,才能删除主表
也就是删除主表时必须删除其他与其关联的表
以上是关于MySQL数据库管理之——增删改查!的主要内容,如果未能解决你的问题,请参考以下文章