当前位置:网站首页>MySQL之SQL结构化查询语言
MySQL之SQL结构化查询语言
2022-08-04 05:32:00 【久违de约定】
目录
一、SQL分类
DDL Data Definition Language 数据定义语言
用于完成对数据库对象(数据库、数据表、视图、索引等)的创建、删除、修改
DML Data Manipulation Language 数据操作/操纵语言
用于完成对数据表中的数据的添加、删除、修改操作
添加:将数据储存到数据表
删除:将数据从数据表中移除
修改:对数据表中得数据进行修改
DQL Data Query Language 数据查询语言
用于将数据表中的数据查询出来
DCL Data Control Language 数据控制语言
用于完成事务管理等控制性操作
二、SQL基本语法
在MySQL Command Line Client 或者navicat等工具中都可以编写SQL指令
SQL指令不区分大小写
每条SQL表达式结束之后都以 ; 结束
SQL关键字之间以 空格 进行分隔
SQL之间可以不限制换行(可以有空格的地方就可以有换行)
三、 DDL数据定义语言
3.1 DDL-数据库操作
查询数据库
## 显示当前mysql中的数据库列表
show databases;
## 显示指定名称的数据的创建的SQL指令
show create database <dbName>;
创建数据库
## 创建数据库 dbName表示创建的数据库名称,可以自定义
create database <dbName>;
## 创建数据库,当指定名称的数据库不存在时执?创建
create database if not exists <dbName>;
## 在创建数据库的同时指定数据库的字符集(字符集:数据存储在数据库中采用的编码格式utf8 gbk)
create database <dbName> character set utf8;
修改数据库 修改数据库字符集
## 修改数据库的字符集
alter database <dbName> character set utf8; # utf8 gbk
删除数据库 删除数据库时会删除当前数据库中所有得数据表以及数据表中得数据
## 删除数据库
drop database <dbName>
## 如果数据库存在则删除数据库
drop database if exits <dbName>
使用/切换数据库
use <dbName>
3.2 DDL-数据表操作
创建数据表
数据表实际就是一个二维得表格,一个表格是由多裂组成,表格中得每一类称为表格得一个字段
create table students(
stu_num char(8) not NULL unique,
stu_name varchar(20) not NULL,
stu_gender char(2) not null,
stu_age int not null,
stu_tel char(11) not null unique,
stu_qq varchar(11) unique
);
查询数据表
show tables;
查询表结构
desc <tableName>;
删除数据表
## 删除数据表
drop table <tableName>;
## 当数据表存在时删除数据
drop table if exits <tableName>;
修改数据表
## 修改表名
alter table <tableName> rename to <newTableName>;
## 数据表也是字符集得,默认字符集和数据库一致
alter table <tableName> character set utf8;
## 添加列(字段)
alter table <tableName> add <columnName> varchar(200);
## 修改列(字段)得列表和类型
alter table <tableName> change <oldColumName> <newCloumnName> type;
## 只修改字段类型
alter table <tableName> modify <columnName> <newType>;
## 删除列(字段)
alter table stus drop <columnName>;
3.3 MySQL数据类型
数据类型,指的是数据表中的列中文支持存放的数据的类型
3.3.1 数值类型
在mysql中有多种数据类型可以存放数值,不同的类型存放的数值的范围或者形式是不同的
3.3.2 字符串类型
3.3.3 日期类型
在MySQL数据库中,我们可以使用字符串来存储时间,但是如果我们需要基于时间字段
进行查询操作(查询在某个时间段内的数据)就不便于查询实现
四、字段约束
4.1 约束介绍
在创建数据表的时候,指定的对数据表的列的数据限制性的要求(对表的列中的数据进
行限制)
为什么要给表中的列添加约束呢?
保证数据的有效性
保证数据的完整性
保证数据的正确性
字段常用的约束有哪些呢?
非空约束(not null):限制此列的值必须提供,不能为null
唯一约束(unique):在表中的多条数据,此列的值不能重复
主键约束(primary key):非空+唯一,能够唯一标识数据表中的一条数据
外键约束(foreign key):建立不同表之间的关联关系
4.2 非空约束
限制数据表中此列的值必须提供
创建表:设置图书表的 book_name not nul
create table books(
book_isbn char(4),
book_name varchar(10) not null,
book_author varchar(6)
);
添加数据
睡觉,熬不住了,找个时间写完吧,还得上课QAQ
边栏推荐
- Socket编程详解
- [English learning][sentence] good sentence
- file permission management ugo
- 结构体内存对齐-C语言
- 使用JS在浏览器中打印菱形
- 通用解决端口占用问题
- [开发杂项][调试]debug into kernel
- Object. RequireNonNull method
- Question 1000: Input two integers a and b, calculate the sum of a+b, this question is multiple sets of test data
- MVC custom configuration
猜你喜欢
随机推荐
bind()系统调用的用处
Tencent and NetEase have taken action one after another. What is the metaverse that is so popular that it is out of the circle?
LeetCode_Nov_4th_Week
PS像素画学习-1
sbl_init.asm-适合在编辑模式下看
MySQL存储过程学习笔记(基于8.0)
LeetCode_Dec_2nd_Week
【HIT-SC-MEMO7】哈工大2022软件构造 复习笔记7
[日常办公][shell]常用代码段
LeetCode_Dec_3rd_Week
树和二叉树
C语言对文件的操作(完整版)
用PPAPI插件技术在Web上显示会议视频、桌面、PPT等
Pytest common plug-in
Shell脚本执行的三种方式
Socket编程详解
[日常办公][杂项][vscode]tab space
[Development miscellaneous][Debug]debug into kernel
实现高并发服务器(二)
strlen 转义字符