Mysql学习笔记之SQL-1

上篇文章我们介绍了Mysql的安装,这篇文章我们介绍Mysql的操作语言SQL

1. 简介

sql全称(Structured Query Language)是结构化查询语言,操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准

2. sql分类

sql语句,根据其功能,主要分为四类:DDL、DML、DQL、DCL,具体说明如下表所示

简写 全称 说明
DDL Data Definition Language 数据定义语言,定义数据库、数据表、数据字段
DML Data Manipulation Language 数据操作语言,对数据库表中的数据进行增删改
DQL Data Query Language 数据查询语言,查询数据库中表的记录
DCL Data Control Language 数据控制语言,创建数据库用户、控制数据库的访问权限

这篇文章先介绍数据库定义语言(DDL)

3. 数据库定义语言(DDL)

首先我们要知道数据是以数据表的形式存储在数据库中。而数据表需要挂存储在数据库中,如下图所示

上图1中可以清晰的看到mysql数据服下存在test数据库,test数据库下存在student数据表,学生数据就存放在数据表student中。

图2中student数据表共有四个字段,id、name、sex、age,分别存储学号、名字、性别、年龄。

那么创建数据库、数据表、数据字段就需要用到数据库定义语言(DDL)。

4. 数据库操作

4.1创建数据库

语法:

sql 复制代码
create database [ if not exists ] 数据库名 [character set 字符集 ] [ collate 排序
规则 ] ;

说明:

1.\[\]中的内容是非必须的,可以省略

2.if not exists 表示当要创建的数据库不存在时,才进行创建,否则跳过

3.character set 用来设置数据库的字符集。

字符集规定了字符在数据库中的存储格式,比如占多少空间,支持哪些字符等等,例如如果字符集设置的不恰当就会造成中文字符乱码等问题,mysql中支持的字符集有很多,可以通过sql查询

sql 复制代码
SHOW CHARSET;

4.collate 用来指定排序规则

案例:

创建一个数据库,名为schooldb,设置字符集为utf8mb4,且如果数据库已经存在则跳过

1.打开Navicat,点击新建查询

在编辑器中输入sql语句,点击运行

sql 复制代码
CREATE DATABASE IF NOT EXISTS `schooldb` CHARACTER SET 'utf8mb4';

这样数据库就创建成功了

4.2 删除数据库

语法:

sql 复制代码
drop database [ if exists ] 数据库名 ;

案例:

删除上面创建的schooldb

sql 复制代码
drop database if exists schooldb;

5.数据表操作

5.1 创建数据表

语法:

sql 复制代码
CREATE TABLE 表名(
字段1 字段1类型 [ COMMENT 字段1注释 ],
字段2 字段2类型 [COMMENT 字段2注释 ],
字段3 字段3类型 [COMMENT 字段3注释 ],
......
字段n 字段n类型 [COMMENT 字段n注释 ]
) [ COMMENT 表注释 ] ;

说明:

\[\] 内为可选参数,最后一个字段后面没有逗号
案例

创建students表,包含学号,学生姓名,性别,年龄字段

sql 复制代码
CREATE TABLE `students`  (
  `id` int COMMENT '学号',
  `name` varchar(255) COMMENT '姓名',
  `sex` varchar(2) COMMENT '性别',
  `age` int COMMENT '年龄'
)COMMENT '学生表';

在Navicat中执行sql语句,即可创建成功数据表students。

5.2 修改数据表

在实际应用中经常会遇到给已经创建好的数据表中,修改、新增、删除字段,又或者修改某个字段的类型、长度等。

1.添加字段

sql 复制代码
ALTER TABLE 表名 ADD 字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];

案例:

给students表中添加班级字段

sql 复制代码
ALTER TABLE `students` ADD COLUMN `class` varchar(100) COMMENT '班级';

2.修改数据类型

sql 复制代码
ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度);

3.修改字段名称和字段类型

sql 复制代码
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];

案例:

将stutents表中的班级字段修改为学分字段,类型为int

sql 复制代码
ALTER TABLE `students` CHANGE COLUMN `class` `credit` int COMMENT '学分' ;

4.删除字段

sql 复制代码
ALTER TABLE 表名 DROP 字段名;

案例:

删除学分字段

sql 复制代码
ALTER TABLE `students` DROP `credit`;

5.修改表名

sql 复制代码
ALTER TABLE 表名 RENAME TO 新表名;

5.3 删除数据表

语法:

sql 复制代码
DROP TABLE [ IF EXISTS ] 表名;

案例:

删除students表格

sql 复制代码
DROP TABLE IF EXISTS students;

6 扩展

在熟悉sql语句操作数据库或数据表后,在实际应用中可以使用Navicat中使用可是化界面完成数据库的操作。

1.新建数据库

2.删除数据库

3.新建数据表

4.修改数据表

5.删除数据表

相关推荐
Rick19935 分钟前
联合索引是按顺序排好序的
数据库·mysql
身如柳絮随风扬1 小时前
MySQL 存储引擎深度解析:InnoDB vs MyISAM vs Memory,行锁实现与索引奥秘
数据库·mysql
灰阳阳2 小时前
MySQL-Innodb-表空间数据组织方式
数据库·mysql·innodb
Rick19932 小时前
只要条件字段在联合索引里,MySQL8.0+ 默认都会触发 索引下推(ICP)
mysql·索引下推
DIY源码阁2 小时前
JavaSwing学生选课系统 - MySQL版
java·数据库·mysql·eclipse
流星白龙2 小时前
【MySQL高阶】6.MySQL数据目录,日志
android·mysql·adb
流星白龙2 小时前
【MySQL高阶】1.MySQL命令行客户端(1)
mysql
暴力求解2 小时前
MySQL操作库
数据库·mysql
流星白龙2 小时前
【MySQL高阶】2.MySQL命令行客户端(2)
android·mysql·adb
努力努力再努力wz2 小时前
【Qt入门系列】:QLabel控件详解:从文本显示到图片展示,再到内容布局与伙伴机制
android·开发语言·数据结构·数据库·c++·qt·mysql