mysql接触主外表关系_以MySQL数据库为例——初步接触Sql语句(一)

1、关系数据库基本概念及MySQL基本命令

数据库管理系统:Database Management System,它负责管理数据的存储、安全、一致性、并发、恢复和访问等操作。

数据字典:用于存储DBMS所拥有的每个事务的相关信息,如名字、结构、位置和类型;这种关于数据的数据也称为元数据。

数据库发展历程:网状型数据库–》层次型数据库–》关系数据库–》面向对象数据库

MySQL存储机制:

MyISAM:MySQL早期默认的存储机制,对事物支持不够好

InnoDB:提供事务安全的存储机制。InnoDB通过建立行级锁来保证事务完整性,并以Oracle风格的共享锁来处理select语句。

1、查看MySQL中包含多少个数据库

show databases;

2、创建新的数据库

create database 数据库名;

3、删除指定数据库

drop database 数据库名;

4、进入指定数据库

use 数据库名;

5、查询数据库中包含的所有表

show tables;

6、查看指定数据表的表结构

desc 表名;

8883e9410adb9dc519eeb7c664558ed6.png

2、SQL语句基础

查询语句:select

DML(Data Manipulation Language,数据操作语言)语句:insert、update、delete

DDL(Data Definition Language,数据定义语言)语句:create、alter、drop、truncate(如果使用MySQL的MyISAM存储机制,truncate相当于先删除指定的数据表,然后再重建该数据表。如果使用InnoDB存储机制,在MySQL5.0.3之前,truncate与delete一样;在5.0.3之后,truncate table比delete效率高,但如果该表被外键约束所参照,则依然被映射成delete操作。)

DCL(Data Control Language,数据控制语言)语句:grant、revoke关键字

事务控制语句:commint、rollback、savepoint

DDL(Data Definition Language,数据定义语言)

DDL:操作数据库对象的语句,包括create、alter、drop

数据库对象:table(表)、constraint(约束)、view(视图)、index(索引)、function(函数)、procedure(存储过程)、trigger(触发器)、数据字典

通过子查询建表

create table a as select * from test;

dec21a2ec836d53ad57e7a8c9af4ae95.png

2. 修改表结构的语法

增加列定义

alter table 表名 add(字段名 字段类型);

alter table a add(aaa varchar(255) default 'aaa');

修改列定义

alter table 表名 modify 字段名 字段类型;

alter table a modify aaa int;

删除列

alter table 表名 drop 字段名;

alter table a drop aaa;

重命名列

alter table 表名 change 旧字段名 新字段名 新字段类型;

alter table a change aaa bbb int;

重命名表

alter table 旧表名 rename to 新表名;

alter table a rename to b;

删除表的语法

drop table 表名;

drop table a;

truncate表(截断)

删除该表所有数据,但保留表结构

truncate 表名;

truncate aaa;

非InnoDB存储机制,truncate比delete速度快

InnoDB存储机制-MySQL5.0.3之前,truncate与delete一样

InnoDB存储机制-MySQL5.0.3之后,truncate比delete速度快,但如果该表被外键约束所参照,truncate被映射为delete操作

3、数据库约束

数据库完整性约束

- not null:非空约束,指定某列不能为空

- unique:唯一约束,指定某列或者几列组合不能重复

- primary key:主键,指定该列的值可以唯一的标识该条记录

- foreign key:外键,指定该行记录从属于主表中的一条记录,主要用于保证参照完整性

- check:检查,指定一个布尔表达式,用于指定对应列的值必须满足该表达式

(MySQL不支持check约束)

注:MySQL使用information_schema数据库里的TABLE_CONSTRAINTS表来保存该数据库实例中的所有的约束信息

- not null

alter table 表名 modify 字段名 字段类型 null/not null;

alter table a modify aaa int not null;

unique

指定列或列组合不出现重复值,但可以出现多个null。数据库中null不等于null

alter table 表名 add 字段名 字段类型 unique;

alter table a add aaa int unique;

primary key

foreign key

foreign key(b_id) references b(b_id)

constraint fk_id foreign key(b_id) references b(b_id)

alter table a add foreign key(b_id) references b(b_id);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值