MySQL 指令
show databases; //show 查看 data 数据 bases 基础,基地 #查看所有数据库 create database; 数据库名 //create 创造 database 数据库 #创建数据库、 create database if not exists AhYou; //create 创建 database 数据库 if 如果 not 不 exists 存在 #如果AhYou不存在就创建此名称的数据库 create database if not exists AhYou difault charset utf8mb4 //前边翻译同上 difault 默认 charset 字符集 utf8mb4 支持4直接的utf-8 drop database if exists AhYou; drop 删除 database 数据库 if 如果 exists 存在 AhYou 数据库名 #如果AhYou存在就删除此数据库 USE 数据库名; //USE 使用 #使用此数据库 select 数据库名(); //select 选则 database 数据 () 函数 #返回当前数据库的名称 source /sql文件路径/ //source 来源 #在mysql内输入 安装SQL脚本 help #帮助(基本SQL指令都在此) select *from 表名 //select 选则 * 所有 from 来自 表名 #显示表内的内容 show tables // 显示 表 #展示表 desc 表名 //desc desc #查看表的结构内容 show create table steden1; 查询表结构 desc studen1; 查询表结构
MySQL 主键
主键
一张表中最多只能有一个主键,而且主键所在的列通常是整数类型。
primary key
用来唯一的约束字段里面数据,不能重复 不能为空。
主键主要的作用是唯一 区分表中的各个行。
MySQL 外键
外键:
外键 是某个表中的一列,它包含在另一个表的主键中。
外键也是索引的已汇总,是通过一张表中的一列指向另一张表中的主键,来对两张表进行关联
一张表可以有一个外键,也可以有多个外键,与多张表进行关联。
外键的作用:
外键的主要作用是保证数据的一致性和完整性,并且减少数据冗余。主要体现在以下两个方面:
阻止执行 其外键值不是主表的主键值便阻止插入
从表修改外键值,新值不是主表的主键便阻止修改
主表删除行,其主键值在从表里存在便阻止删除(要想删除,必须先删除从表的相关行)。
主表修改主键值,旧值在从表里存在便阻止修改(想要修改,必须先删除从表的相关行)。
主表删除行,连带从表的相关行一起删除,
主表修改主键值,连带从表相关的外键值一起修改。
外键创建限制:
父表必须已经存在数据库汇中。或者是当前正在创建的表,如果是后一种情况,则父表与子表是同一个表,这样的 表称为 自参照表,这种结构为自参照完整性。
必须为父表定义主键。
外键中列的数目,必须和附表中的主键中列的数目相同。
两个表必须是InnoDB表,MyISAM表暂时不支持外键。
外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显式建立。
外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以;
创建一个学生表:
create table studdent( -- 创建 表 表名 id int primary key, 创建一个 id 列 int 类型的主键 name varchar(50), 创建一个 name 列 varchar类型 长度(50)的列 birthday date 创建一个 birthday 列 date (日期)类型的列 );
create table studen1( id int auto_increment primary key, name varchar(20), birthday date );
往表内添加内容:
insert into student values (1,'zhangsna','2022-1-1',1);
方法1: insert into studen1 values (null,'zhangsan','20022-1-1') 方法2: insert into studen1 (name,birthday) values ('zhangsan','20022-1-1');
删除:
delete form stu where id=20; --删除 可以恢复 chuncate table studen1; --删除全表数据 (不可恢复)
SQL 分类
分类 | 全称 | 说明 |
DDL | Data Definition Language | 数据定义语言,用来定义数据库对象(数据库,表,字段) |
DML | Data Manipulation Language | 数据操作语言,用来对数据库表中的数据进行增删改 |
DQL | Data Query Language | 数据查询语言,用来查询数据库中表的记录 |
DCL | Data Control Language | 数据操控语言,用来创建数据库用户,控制数据库的访问权限 |
create database 数据库名 --创建数据库 use 数据库名 --选则数据库 drop database 数据库名; 删除数据
create table sthdent( id int auto_increment primary key, name varchar(20), birthday date ); --创建表 insert into 表名 values (表内数据); --添加表数据 update 一般情况下一定要跟条件 update studenti set name='张三' -- 没有条件就会全部更改 update studenti set name='张三' where id=1;--有条件 单独更改 delete from student; --删除全表数据 (有日志 可以恢复) truncate table student; --删除全表数据 (不可恢复) delete form stu where id=20; --删除id=20 的行数据 drop table 表名 删除表
show tables; --显示数据库结构 show create table 表名; --查询表结构 desc 表名; --查询表结构 select * from 表名 --查询表内数据
DCL
数据操控语言,用来创建数据库用户,控制数据库的访问权限