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。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1dabf49e1bb048cb852a76fbad4dd011.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/9b62e75401254349b9e5432088b8e507.png) ### 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.新建数据库 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/5a95adf38dad42d1b354aacf49384b91.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a7e6df65062e4d4185ddf03670e1602a.png) 2.删除数据库 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d51c05f3e16b40b2874b1e589c6fb482.png) 3.新建数据表 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/42cf9479305e43f2addf65575e5b9b65.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/fbdce32c8d96408cbd7e3aa26991bd8e.png) 4.修改数据表 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/73c85982a64b4b9db6c962af4b3437f9.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/14fa2ec4aa4e4c88b92f9c4d4c089c62.png) 5.删除数据表 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/44b091f6a2ff49c5939f1c8438c79176.png)

相关推荐
鹏码纵横2 小时前
已解决:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 异常的正确解决方法,亲测有效!!!
java·python·mysql
野槐4 小时前
node.js连接mysql写接口(一)
数据库·mysql
麻辣清汤5 小时前
MySQL 索引类型及其必要性与优点
数据库·mysql
-借我杀死庸碌的情怀-7 小时前
navicat可视化页面直接修改数据库密码——mysql、postgresql、mangodb等
数据库·mysql·postgresql
debug 小菜鸟9 小时前
MySQL 主从复制与一主多从架构实战详解
数据库·mysql·架构
weixin_4383354010 小时前
MySQL索引优化:回表
数据库·mysql
AA-代码批发V哥10 小时前
MySQL-DDL语句深度解析与实战指南
数据库·mysql
进击的CJR12 小时前
MySQL 8.0 OCP 英文题库解析(十八)
android·mysql·开闭原则
进击的CJR12 小时前
MySQL 8.0 OCP 英文题库解析(十四)
android·mysql·开闭原则
Forest_HAHA13 小时前
<8>-MySQL复合查询
数据库·mysql