DDL

  • SQL 简介
  • DDL - 数据库
  • DDL - 操作表
  • 可视化数据库工具



SQL 简介

SQL语言是操作关系型数据库的编程语言,定义操作关系型数据库的标准。

SQL语句分类

  1. DDL:Data Definition Language 数据定义语言
    创建、删除、修改数据库;创建、删除、修改表…
  2. DML:Data Manipulation Language 数据操作语言
    对数据库表中数据,进行增删改查
  3. DQL:Data Query Language 数据查询语言
    对数据库表中数据,进行查询
  4. DCL:Data Control Language 数据控制语言
    用来创建数据库用户,控制数据库的访问权限

SQL中的注释方法:

-- 单行注释
# 单行注释
/*
	多行注释
*/

注意:SQL语句中不区分大小写;


DDL - 数据库

包含查询、创建、删除、打开数据库;

查询数据库

show databases;
# 查询所有数据库;

select database();
# 查询当前正在使用的数据库;

创建数据库

create database test;
# 创建数据库 test;

create database if not exists test;
# 如果不存在 test 数据库则创建,如果存在则不创建;

create database test1 charset utf8mb4;
# 创建指定默认字符集为 utf8mb4 格式的名为 test1 的数据库;

删除数据库

drop database test;
# 删除数据库 test;

drop database if exists test;
# 如果存在则删除数据库 test;

打开数据库

use test;
# 使用数据库 test;

DDL - 操作表

查询表

show tables;
# 查询当前数据库中所有的表;

desc tb_usr;
# 查看表名为 tb_usr 的表结构;

show create table tb_usr;
# 查看表的建表语句
create table tb_usr(
	id int comment '编号',
	name varchar(50) comment '姓名',
	age int comment '年龄',
	gender varchar(1) comment '性别'
) comment '用户表';
在当前数据库中创建一个名为 tb_usr 的表

SQL 数据类型

数值类型:

SQLAlchemy 数据库不存在自动建表_mysql

日期类型:

SQLAlchemy 数据库不存在自动建表_数据库_02

字符串类型:

SQLAlchemy 数据库不存在自动建表_mysql_03


char 与 varchar:

char 不管内容多长都占用定长空间,内容外全部补充为空格;

varchar 根据内容长度自动计算占用多少空间;

SQLAlchemy 数据库不存在自动建表_SQL_04

create table emp (
	id int comment '编号',
	workno varchar(10) comment '工号',
	name varchar(10) comment '姓名',
	gender char(1) comment '性别',
	age tinyint unsigned comment '年龄',
	idcard char(18) comment '身份证号',
	entrydate date comment '入职时间'
) comment '员工表';
在当前数据库中创建一个名为 emp 的表

修改表

alter table emp rename to employ;
# 将 emp 表名更改为 employ

alter table emp add nickname varchar(20) comment '昵称';
# 添加字段(属性)

alter table emp modify nickname varchar(50);
# 修改指定字段(属性)的数据类型

alter table emp change nickname username varchar(20) comment '用户名'; 
# 修改字段名(属性名称)以及数据类型

alter table emp drop username;
# 删除 emp 表中的 username 字段(属性)

删除表

drop table if exists emp;
# 删除 emp 表

truncate table emp;
# 删除表但是保留表结构,表数据丢失


可视化数据库工具

Navicat

SQLAlchemy 数据库不存在自动建表_sql_05

连接到本机的MySQL:3306 端口

SQLAlchemy 数据库不存在自动建表_mysql_06

Datagrip

下载安装:https://www.jetbrains.com/datagrip/

SQLAlchemy 数据库不存在自动建表_sql_07


datagrip 是 Jetbrain 公司的产品,其还有产品比如 pycharm 以及 idea;

Jetbrain对于在校学生免费使用所有产品,包含datagrip

SQLAlchemy 数据库不存在自动建表_sql_08