一、什么是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,谢谢大家的支持,希望本章能对大家能够有帮助。如有不足之处也麻烦大家指出;