当前位置: 首页 > news >正文

SQL基础语法(四个分类、库和表的增删改)

三、SQL基础语法

SQL的分类

·DDL:(数据定义语言) (Data Definition Language) 对库和表进行操作

create     创建库、表、索引、视图、用户

alter        修改库字符集、表结构、索引、视图、用户、密码

drop        删除各种结构、库、表、视图、索引、用户

show       显示库、表

·DML:(数据操纵语言) (Data Manipulation Language) 对表中的数据进行添加、修改、删除

insert      在表中插入、添加数据

update    修改表中的内容

delete      删除表中的数据

·DQL:(数据查询语言) (Data Query Language) 对表中数据进行查询操作

select      根据条件查询内容、可以配合函数使用

·DCL:(数据控制语言) (Data Control Language) 对数据库进行权限管理、用户管理、事务管理

use          切换数据库

grant        权限设置

revoke      移除权限

DTL (事务控制语言) (Data Transaction Language)

commit     事务提交

rollback     回滚


SQL的关键字

库操作

# 查看所有库

show databases;

# 查看完整的创库语句(\G是按列排列)

show create database test\G;

下面是完整的创建库的语句:

CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */ /*!80016 DEFAULT ENCRYPTION='N' */

# 创建库:

create database 库名 charset utf8mb4;

Navicat:MySQL-01右键新建数据库——起个名称test——字符集utf8mb4——排序规则utf8mb4_unicode_ci(也可以默认)——确认(或者执行SQL语句效果一样);

# 删除库:drop database 库名;

Navicat:右键——删除数据库

# 修改库的字符集:alter database 库名 charset utf8mb4;(改错容易乱码)

表操作

# 查看表(要先进库里use 库名)

查看库中所有的表:show tables;

查看表的结构:desc 表名;

# 创建表

CREATE TABLE `mysql`.`Untitled`  ( `mysql`是库名,`Untitled`是表名

  `id` int NOT NULL AUTO_INCREMENT COMMENT '编号',

  `username` varchar(32) NOT NULL COMMENT '用户名',

  `password` varchar(128) NULL COMMENT '密码',

  `birthday` date NULL COMMENT '生日',

  `gender` enum('男','女','未知') NOT NULL COMMENT '性别',

  `phone` varchar(11) NOT NULL COMMENT '手机号',

  `address` varchar(255) NULL COMMENT '地址',

  `email` varchar(255) NULL COMMENT '邮箱',

  PRIMARY KEY (`id`)

);

# 查看创建表的完整语句

show create table user_info;

会出现(如果不小心删掉,可以通过复制完整语句、结尾加上;来创建表)

# 查看表结构

desc user_info;

Field字段(列名):字母、数字、下划线、不要和mysql关键字冲突,不要有特殊符号和空格。

Type数据类型:数字类型、字符类型、日期时间类型、二进制数据、json等……

Null是否可为空:YES可为空,NO不可为空,Not Null不能为空

Key键:主键、外键、唯一(都具有唯一性)、索引、非空等各种约束条件

Default默认值:在insert时,没有设置内容时,自动添加的内容

Extra扩展:例如auto_increment(自动增长,一般用于序号自动+1)

# 删除表:drop table 表名;

# 修改表的结构:alter

# 修改表名

alter table 原始表名 rename  to 新的表名;

# 修改字段名和字段类型

> 修改列的属性:change,modify(修改)

alter table user_info change  birthday  b_day date;

alter table user_info change  b_day    b_day datetime;

eg:输入alter table user_info change gender sex enum('F','M','N');

# 添加新的字段

alter table user_info add age tinyint unsigned;

> 如果你需要指定新增字段的位置,关键字 FIRST (设定位第一列), AFTER 字段名(设定位于某个字段之后)

alter table user_info add address varchar(64) after birthday;

# 删除已有的字段

alter table user_info drop age;

http://www.dtcms.com/a/315101.html

相关文章:

  • 【笔记】ROS1|6 中间人攻击移动过程【旧文转载】
  • 私有化部署即时通讯,企业专属通讯系统BeeWorks
  • 计算机网络:网络号和网络位是不是同一个意思
  • 4.5 点云表达方式——图
  • 纯前端使用ExcelJS插件导出Excel
  • 并发编程常用工具类(上):CountDownLatch 与 Semaphore 的协作应用
  • C++信息学奥赛一本通-第一部分-基础一-第一章
  • 高并发抢单系统核心实现详解:Redisson分布式锁实战
  • Swin-Transformer从浅入深详解
  • ubuntu 20.04 C和C++的标准头文件都放在哪个目录?
  • 安卓逆向(基础①-Google Pixel-Root)
  • <PhotoShop><JavaScript><脚本>基于JavaScript,利用脚本实现PS软件批量替换图片,并转换为智能对象?
  • 【拓扑序 时间倒流法】P7077 [CSP-S2020] 函数调用|省选-
  • 嵌入式开发入门——电子元器件~电容
  • RLCraft开服踩坑记录
  • 防火墙web页面练习
  • 使用AWS for PHP SDK实现Minio文件上传
  • Centos7离线安装Mysql8.0版本
  • 政务云数智化转型:灵雀云打造核心技术支撑能力
  • HarmonyOS 多屏适配最佳实践:基于 ArkUI 的响应式 UI 方案
  • 在CentOS 7上安装配置MySQL 8.0完整指南
  • [Oracle] TO_NUMBER()函数
  • C 语言结构体与 Java 类的异同点深度解析
  • Hexo - 免费搭建个人博客07 - 添加右上角的“目录”
  • 《Python 实用项目与工具制作指南》· 2.4 pip
  • 流量见顶时代,知识付费 IP 的破局逻辑
  • 我的世界进阶模组开发教程——附魔(2)
  • 使用 IntelliJ IDEA + Spring JdbcTemplate 操作 MySQL 指南
  • 【无标题】文件IO与标准IO的区别
  • LeetCode 分类刷题:16. 最接近的三数之和