前言
MySQL,作为一款开源的关系型数据库管理系统,一直以来都扮演着数据库世界中的瑰宝角色。本文将探讨MySQL的卓越之处,从其高性能、可扩展性、安全性,以及开发者友好的特点入手,展示了为何MySQL成为众多企业和开发者的首选数据库解决方案。无论您是刚刚入门数据库领域,还是寻求更深入的数据库知识,MySQL都将带您踏上一场充满惊喜和挑战的冒险旅程。快来一起探索MySQL的魅力,开启数据库世界的无限可能!
什么是SQL?
结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名
操作数据库需要使用SQL语句,而并非Java
SQL标准:SQL99即99年制定的标准
(1)操作所有关系型数据库的规则;
(2)是第4代语言
(3)是一种结构化的查询语言
(4)只需发出合理合法的语句,就有结果显示
注意:不同的DBMS(mysql,oracle)不会只支持SQL99,还会有自己的一些独有的语法,比如limit只在mysql中可以使用。
SQL语法
1,SQL语句可以在单行或多行书写,以分号结尾,
有些时候可以不用分号结尾,比如在代码中。
2,可以使用空格或缩进来增强语句的可读性
3,SQL不区分大小写,建议大写。
结构化查询语言(Structured Query Language)。操作数据库的。
SQL99标准的四大分类
DDL语言:数据定义语言(用于定义数据的表结构)Data Definition Language
创建数据表:create table 表名
修改数据表:alter table 表名
删除数据表:drop table 表名
DML语言:数据操纵语言(用于操作数据表中的数据)DML - Data Mainpulation Language
添加数据:insert
修改数据:update
删除数据:delete
DQL语言:数据查询语言(专门用于数据的查询)DQL - Data Query Language
查询数据:select
DCL语言:数据控制语言(Data Control Language)
grant 权限 to scott, remove 权限 from scott
五、约束
约束:用于限制数据表中某列的数据的存储内容。
默认值:default 非空约束:not null 唯一约束:unique 主键约束:primary key 外键约束:foreign key
主键约束:非空+唯一
用作这个表中,主键所在的字段是该表的唯一标识。一个表中最多只能有一个主键约束。
语法:
create table stu( sid int primary key auto_increment,#定义sid作为stu表的主键 sname vachar(20), age int, gender varchar(10) ); 或者 create table stu( sid int auto_increment, sname varchar(20), age int, gender varchar(10), [constraint [sid_pk]] primary key (sid) #指明sid作为stu的主键 )
删除主键
alter table stu drop primary key;
添加主键
alter table stu add primary key(sid);
主键自增:auto_increment
要求该字段数值不允许为空,而且数值唯一。所以我们通常会指定主键类型为整型,然后设置其自动增长,这样可以保证在插入数据的时候主键列的唯一和非空特性。
外键约束:保证数据的完整性和有效性。
两张表: 父表:主表 主键 子表:从表 外键
演示外键约束
子表中设置外键的列,是父表中主键。那么子表中外键的列,的数值,就会受到父表中主键的数值的约束。
外键设置语法:
references 父表(主表) constraint classno_FK foreign key (classno) references class(classno)
或者:
alter table student add constraint stu_classno foreign key (classno) references class(classno);
创建父表:
mysql> create table class( -> classno int(4) primary key, -> classname varchar(20));
insert into class(classno,classname) values (1,'java'),(2,'python'),(3,'html5');
创建子表:
mysql> create table student( -> sid int(4) primary key auto_increment, -> sname varchar(30), -> age int(3), -> sex varchar(3), -> classno int(4), -> constraint fk_stu foreign key (classno) references class(classno));
insert into student(sid,sname,age,classno) values (1,'张三',20,1),(2,'李四',34,2),(3,'张五',32,3);
最后
本期结束咱们下次再见👋~
🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗