MySQL基础速成——DDL

一、什么是SQL语句?

【官方解释】SQL即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

SQL结构化查询语言(Structured Query Language),是关系型数据库都要遵循的规范,是一个标准。

在生活中,我们会发现说话时,有时说普通话,有时说方言。

类比到数据库也是类似的:不同的数据库生产厂商都支持SQL语句,但也有它们独有的特殊内容。

二、SQL语法特点

在MySQL数据库中,SQL语法有几个常见的特点:

(1)SQL语句必须以;(分号)结尾; 【必须】
(2)可以使用空格符缩进来提升SQL语句的阅读性;  [有必要] 
(3)SQL语句不区分大小写,但SQL关键字一般建议使用大写;  [可选]
(4)SQL语句中可以使用必要的注释做解释说明. [有必要]

例如,使用几个案例来快速说明SQL语法的特点:

(1)显示所有的数据库信息、查看mysql库中的user表里有哪些数据;

(2)添加空格和缩进来查看user表里有哪些数据;

(3)将关键字大写来查看user表里有哪些数据;

(4)给显示所有表信息添加注释。# /* */

# 1.SQL语句必须以;结尾
show databases ;    -- 查看所建库
use db_1;      --  使用库
select * from user;  --  查询表内容

# 2.可以适当缩进并提升代码的阅读性  -扩展: 快速格式化 Ctrl + Alt + L
select * from user;
select
    *
from user;  # 便于阅读

# 3.大小写编写SQL语句  (不强制大小写,但不要大小写混用!)
select * from user; # 小  -友好
SELECT * FROM user; # 大

# 注意
# SelecT * FrOM user;  # 注意: 不要大小写混用

# 4.添加注释
# 显示所有表
show tables ;
/*                                              --  多行注释
 用于显示某库中有哪些表   
 显示所有表的命令
 */
# show tables ;    --  # 为单行注释  快捷键:Ctrl + /

三、SQL语句的分类 和操作

SQL语句在处理数据时,通常具有定义、操作、查询和控制关系型数据库的这四个功能,表示为:

数据定义语言: DDL (Data Definition Language)
数据操作语言: DML (Data Manipulation Language)
数据查询语言: DQL (Data Query Language)
数据控制语言: DCL (Data Control Language)

 在平常几乎是使用不到数据控制语言DCL(Data Control Language)。它主要是用来定义数据库的访问权限和安全级别,及创建用户。

1.数据定义语言:DDL(Data Definition Language)

1.1对库的操作用法

1.1.1创建数据库

创建数据库的语法:

create database [其他] 数据库名 [设置编码格式];  --  使用 [ ] 表示的内容表示可选项

例如,使用命令创建数据库:

(1)创建一个班级db_1数据库,且使用默认编码;

(2)创建一个班级db_2数据库,charset设置编码为utf8。

(3)思考:若再使用相同命令创建一个已有的数据库:班级db_1,能成功吗?

#######################创建数据库############################
# 1.创建一个默认编码的数据库
create database db_1;
# 2.创建一个utf8编码的数据库
create database db_2 charset utf8;
# 3.判断并创建数据库
# create database db_1;   #  db_1存在则报错

# if not exists   # 判断语句
# 最标准
create database if not exists db_1 charset utf8;  # 关键字会变颜色

1.1.2查看数据库 

查看数据库的语法:

# 查看有哪些数据库
show databases;

# 查看数据库的创建语句
show create database 数据库名;

 例如,使用命令查看数据库:

(1)查看MySQL服务器中有哪些数据库;

(2)查看创建数据库班级db_1的创建语句。

######################查看数据库################################
# 1.查看哪些数据库
show databases;
# 2.查看数据库1的创建语句及编码   # Ctrl + D快速复制一行     Ctrl + Y快速删除一行
show create database db_1;
# 3.查看数据库2的创建语句及编码
show create database db_2;

1.1.3删除数据库

 删除数据库的语法:

drop database 数据库名称;

 例如,使用命令来删除数据库班级db_2。

########################删除数据库#########################
# 1.查看有哪些数据库?
show database;
# 2.删除命令
drop database db_2;   # 谨慎

1.1.4其他操作命令

 当需要切换及使用另一个数据库时,命令:

use 数据库名;

 查看当前正在使用的数据库,命令:

select database();

 例如,使用命令来操作:

(1)使用数据库班级db_1;

(2)查看当前正在使用的数据库名;

(3)思考:如果要查找到MySQL数据库下默认库名mysql中的user表,该怎么操作呢?

#########################其他操作命令#############################
# 1.使用数据库1
use bj96db_itheima1;
# 2.查看当前使用的数据库名
select database();
# 3.查看user表
# 使用数据库
use mysql;   # 重要
select * from user;

1.1.5补充——常用数据类型

1.2对数据库表的操作用法 

对数据表的增删和更改数据库的操作命令几乎相同,可以比葫芦画瓢,下面主要讲述数据表对操作数据库不同的一些地方进行扩展。

1.2.1数据表操作命令

1: 创建数据表; create
2: 查看数据表; show
3: 删除数据表; drop
4: 修改数据表. alter

1.2.2创建数据表

创建数据表语法:

create table 表名(
    字段名1 数据类型(长度) [约束],
    字段名2 数据类型(长度) [约束],
    字段名3 数据类型(长度) [约束],
    ...
);

# 说明:

(1)常见类型有int、double、varchar(x);

(2)primary key表示主键,使用主键修饰的字段必须保证唯一且非空;

(3)auto_increment表示自动增长,通常为int型的值才能设置为自动增长。

 特别注意:在创建数据表前,先要选择使用哪个数据库。

use 数据库名;

 例如,使用创建数据表命令来完成:

(1)创建一个新的查询脚本和新数据库班级db_user,并在该库中完成创建数据表的操作;

(2)创建字段时,不添加任何[约束]条件;

(3)新建一个用户表user,字段有编号、用户名、昵称;

(4)思考:若再使用相同命令创建一个已有的数据表:user,能成功吗?

####################创建数据表#########################
# 1.新建数据库
create database if not exists db_user charset utf8;
# 2.使用库
use db_user;
# 3.创建数据表
create table user(
    id int,
    username varchar(20),
    nickname varchar(20)
);
# 4.优化创建表
create table if not exists mouse(
    id int,
    username varchar(20),
    nickname varchar(20)
);

1.2.3查看数据表

 查看数据表语法:

# 查看有哪些表
show tables;

# 查看数据表的创建语句
show create table 表名;

# 查看表结构
desc 表名;

例如,使用命令查看数据表:

(1)在班级db_user数据库中再创建一个邮箱表email,有编号、邮箱号、密码、来源等字段;

(2)查看班级db_user数据库中有哪些数据表;

(3)查看创建数据表email的创建语句;

(4)查看数据表email的表结构。

 #######################查看数据表############################
# 1.使用库
use db_user;
# 2.创建油箱表
show tables;
create table if not exists email(
    id int,
    email_no varchar(20),
    password varchar(20),
    source varchar(10)
);
# 3.查看哪些表
show tables;
# 4.查看创建语句
show create table email;
# 5.查看表结构
desc email;

1.2.4删除数据表-(同数据库)

 删除数据表语法:

drop table 表名;

 1.2.5修改数据表

添加一列,指的是:给数据表再新增一列字段。

给数据表添加一列的语法:

alter table 表名 add 字段名 类型(长度) [first|after 其他字段名称];
# first:把新添加字段放在第一位
# after 其他字段名称:把新添加字段放在指定字段的后面

例如,使用命令完成:

(1)创建一个新数据库班级db_user2,设定默认编码为utf8,并在该库中完成修改数据表的操作;

(2)添加判断语句,新建一张用户表table_user,有用户名、密码这2个字段;

(3)给用户表添加一列信息展示information字段,长度为140;

(4)思考1:在用户表的最开始处,添加一列最初名称first_name,该怎么做呢?

(5)思考2:在用户表的密码字段后,添加一列年龄age字段,该怎么做?

#######################添加一列#######################
# 1.新建库
create database if not exists db_user2 charset utf8;
# 2.使用库
use db_user2;
# 3.创建表
create table if not exists user(
    username varchar(20),
    password varchar(20)
);
# 4.添加一列
alter table user add information varchar(140);
desc user;
# 5.开始处添加一列
alter table user add first_name varchar(20) first;
# 6.某个字段后添加一列
alter table user add age int after password;

1.2.6修改列类型 

给数据表的列修改类型的语法:

alter table 表名 modify 要修改的字段名 类型(长度) [约束];  

# 不为空

# 说明:

非空约束可写成not null,表示不能为空值,必须进行设定数据。

 例如,使用命令完成:

(1)给用户表的信息字段类型修改为char,长度修改为60;

(2)将用户名字段修改长度为16,且添加不为空约束。

 ##################修改列类型############################
# 1.使用库
use db_user2;
# 2.查看字段
desc user;
# 3.修改信息 char(60)
alter table user modify information char(60);
# 4.修改姓名 16 not null
alter table user modify username varchar(16) not null;

 1.2.7修改列名

修改列名,指的是:给数据表的列名进行修改处理。

比如,在Excel表中,模拟修改列名。

修改列名的语法:

alter table 表名 change 旧列名 新列名 类型(长度) [约束];

 例如,使用命令完成:

(1)把用户表的用户名修改为name,字符串类型、长度为18;

(2)把用户表的信息字段列名修改为info,类型修改为varchar,长度为100。

 ###################修改列名##########################
# 1.使用库
use db_user2;
# 2.查看表结构
desc user;
# 3.修改用户名为name varchar(18)
alter table user change username name varchar(18);
# 4.修改信息为info   varchar(100)
alter table user change information info varchar(100);
# 注意: 若要再次查看字段等信息, 要以修改后的列名为准.

1.2.8删除一列 

删除一列,指的是:删除数据表的一列字段。

比如,在Excel表中,模拟删除一列字段。

给数据表删除一列的语法:

 alter table 表名 drop 列名;

例如,使用命令完成:

(1)删除用户表中的年龄这一列;

(2)使用命令查看表结构。

#####################删除一列#############################
# 1.使用库
use db_user2;
# 2.查看表结构
desc user;
# 3.删除一列
alter table user drop age;

1.2.9修改表名 

修改表名,指的是:修改数据表的名称。

比如,在Excel表中,模拟修改表名。

给数据表修改表名的语法:

rename table 表名 to 新表名;

 例如,使用命令完成:

(1)把用户表的表名更改为table_user;

(2)使用命令查看库中所有数据表信息。

 ######################修改表名########################
# 1.使用库
use db_user2;
# 2.修改表名
show tables;
rename table user to table_user;
# 3.查看哪些表信息   # 扩展
show tables;

 本章暂且先将DDL的操作命令介绍完成,下一章将介绍DML和MQL,谢谢大家的支持,希望本章能对大家能够有帮助。如有不足之处也麻烦大家指出;

  • 17
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值