数据库的基础操作

目录

一、查看数据库

登录数据库

 查看数据库

查看表 

查看表的结构

查看当前目录

​编辑 查看主机名

 查看当前数据库版本信息

 二、数据库操作

创建数据库

删除数据库

创建新的表

删除表

三、表操作

3.1向数据表中插入新的数据记录

 3.2查询数据记录

3.3修改、更新数据表中的数据记录

3.4 在数据表中删除指定的数据记录

3.5修改表名和表结构

3.5.1 修改表名

3.5.2 扩展表结构(增加字段)

3.5.3修改字段(列)名,添加唯一键

3.5.4删除字段

四、表操作

4.1克隆表

4.2清空表,删除表内的所有数据

4.2.1 deldte删除

 4.2.2truncate删除

4.3创建临时表

创建外键约束


一、查看数据库

登录数据库

mysql -u root -p            登录数据库

 查看数据库

 SHOW DATABASES;                    查看当前数据库,不区分大小写

查看表 

 USE 数据库名;                                切换进入数据库;
SHOW TABLES;                              查看数据库中的表;

查看表的结构

DESCRIBE [数据库名.]表名;
可缩写成:DESC 表名;

desc user \G;

查看表user的结构,加G则列显示,每个字段属性都会一个一个显示

查看当前目录

system ls

 查看主机名

system hostname

 查看当前数据库版本信息

在数据库外查看 

mysql -V

在数据库内查看

select version();

 

 二、数据库操作

创建数据库

#创建数据库
create database xc;
 
#创建的时候指定语言
create database xc charset=utf8;
 
#查看创建的数据库
show create  database xc;
 
#加的数据位置
cd /usr/local/mysql/data/test/

删除数据库

 drop database xc1;

创建新的表

#主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。
CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);

#示例:
use xc;

创建
create table info(id int(4) not null,name char(10),age int(6),hobby char(20),primary
key(id))
desc info;

删除表

DROP TABLE [数据库名.]表名;

#如不用USE进入库中,则需加上数据库名

三、表操作

3.1向数据表中插入新的数据记录

#向数据表中插入新的数据记录
insert into 表名(字段1,字段2,字段3) values(字段1的值,字段2的值,字段3的值);


create table ng(id int(5)not null,name char(10) not null,sex char(2),age int(4),primary key(id));

#示例1
insert into ng(id,name,sex,age) values(1,'xc','男',22);
select * from ng;
 
#示例2:直接使用表明加入字段
insert into ng values(2,'mk','女',21);
 
#示例3:可以指定字段添加
insert into ng(id,name,age) values(3,'gl',24);

例一:

 例二:

 例三:要注意是否设置为不能为空

 3.2查询数据记录

#格式
SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
 
#示例1:查看所有数据
select * from ng;
 
#示例2:查询指定数据
 select name,age from ng where id=1;      
 
#示例3:以列表方式竖向显示
select * from ng \G;
 
#示例4:只显示头2行
select * from ng limit 2;
 
#示例5:显示第2行后的前2行,,即3,4行

select * from ng limit 2,2;

示例1:查询所有数据

 示例2:查询指定数据

 示例3:以列表方式竖向显示

 示例4:

3.3修改、更新数据表中的数据记录

#格式
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];
 
#示例1:修改年龄和性别
update ng set age=22,name='xc' where id=1;;

select * from info where id=1;

3.4 在数据表中删除指定的数据记录

#格式:
DELETE FROM 表名 [WHERE 条件表达式];
 
#示例:删除表中id为6的数据
delete from ng where id=4

3.5修改表名和表结构

3.5.1 修改表名

ALTER TABLE 旧表名 RENAME 新表名;
 
#示例:将表名ng修改成ngy

desc ngy;

修改完之后原表名已经不存在了

3.5.2 扩展表结构(增加字段)

#default 'default值':表示此字段设置默认值 地址未填写!;可与 NOT NULL 配合使用
ALTER TABLE 表名 ADD address varchar(50) default 'default值';
 
#示例扩展字段,名为ip,默认值china
alter table ngy add ip char(99) default'china'

3.5.3修改字段(列)名,添加唯一键

#格式
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
#示例:alter table ngy change ip mac char(88);

修改ip为mac,字符型char改为88

3.5.4删除字段

#格式
ALTER TABLE 表名 drop 字段名;
#示例
alter table ngy drop age;

删除一列

四、表操作

4.1克隆表

#通过 LIKE 方法,复制 ngy 表结构生成 ngybf 表

这里只是复制了表结构,并没有复制表内容
create table ngybf like ngy;        
#导入数据

insert into 备份表名 select * from 旧表名;
insert into ngybf select * from ngy; 

 

 

 法二:创建的时候同时导入

create table ngy2 (select * from ngy);

4.2清空表,删除表内的所有数据

4.2.1 deldte删除

        DELETE清空表后,返回的结果内有删除的记录条目;DELETE工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETE FROM 删除所有记录后,再次新添加的记录会从原来最大的记录 ID 后面继续自增写入记录。

#delete from 表名;只是清空表内数据
delete from ngy2;          

再插入数据,如果不设置id,则会从7开始         

 4.2.2truncate删除

        TRUNCATE 清空表后,没有返回被删除的条目;TRUNCATE 工作时是将表结构按原样重新建立,因此在速度上 TRUNCATE 会比 DELETE 清空表快;使用 TRUNCATE TABLE 清空表内数据后,ID 会从 1 开始重新记录

truncate table 表名;

4.3创建临时表

        临时表创建成功之后,使用SHOW TABLES命令是看不到创建的临时表的,临时表会在连接退出后被销毁。 如果在退出连接之前,也可以可执行增删改查等操作,比如使用 DROP TABLE 语句手动直接删除临时表。

##添加临时表test03
create temporary table 表名 (
id int(4) zerofill primary key auto_increment,
name varchar(10) not null,
cardid int(18) not null unique key,
hobby varchar(50));
 
## 查看当前库中所有表
show tables;    
##在临时表中添加数据
insert into test03 values(1,'zhangsan',123456789,'watch a film');    
##查看当前表中所有数据
select * from test03;
##退出数据库
quit                        
 
##重新登录后进行查看        
mysql -u root -p
##查看之前创建的临时表中所有数据,发现已经被自动销毁
select * from test03;            

创建外键约束

外键的定义:如果同一个属性字段x在表一中是主键,而在表二中不是主键,则字段x称为表二的外键。

主键表和外键表的理解:
1、以公共关键字作为主键的表为主键表(父表、主表)
2、以公共关键字作为外键的表为外键表(从表、外表)

注意:与外键关联的主表的字段必须设置为主键,要求从表不能是临时表,主从表的字段具有相同的数据类型、字符长度和约束

创建两张表,两张表中有一个相同的字段,长度,类型都相同,要求主表外键字段和子表的字段具备相同的数据类型、字符长度和约束。例如都拥有id int(2)

设置一个为主键,一个为外键,

  1. #为主表设置主键

  2. alter table pro add primary key(pid);

  1. #为从表设置外键

  2. alter table stu add foreign key (proid) references pro(pid);

        主表被外表引用,此时不可以删除主表;要查看和删除外键约束 ,如果要删除外键约束字段先删除外键约束,再删除外键名

        删数数据记录时,要先从表再主表,也就是说删除主键表时必须先删除其他与之关联的表,主表被子表外键引用,删除不掉

        删除时,先删除从表,再删除主表,因为一张主表不一定只关联了一张从表,外键约束保证了数据的完整性,一致性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值