MySQL基础之SQL基础1

一、SQL简介

# 当面对一个陌生的数据库时,通常需要一种方式与它进行交互,以完成用户所需的各种工作。

# 这个时候,就要用到 SQL 语言了。

# 由于 SQL 语言的标准化,所以大多数关系型数据库系统都支持 SQL 语言,它已经发展成为多种平台进行交互操作的底层回话语言。

二、SQL 分类

DDL 语句

# 数据定义语言,这些语句定义了不同的数据段,数据库、表、列、索引等数据对象。

# 常用的语句关键字主要包括create、drop、alter等。

DML 语句

# 数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。

# 常用的语句关键字主要包括 insert、delete、update 和 select 等。

DCL 语句

# 数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。

# 常用的语句关键字主要包括 grant、revoke 等

三、DDL 语句操作实例

简单来说,DDL 就是对数据库内部的对象进行创建、删除、修改等操作的语言。

1.创建数据库

-- 启动 MySQL 服务之后,输入以下命令连接到 MySQL 服务器: 
$ mysql -uroot -p

-- 接着输入密码,就可以登录数据库了

-- 在以上命令行中,mysql 代表客户端命令, “-u” 后面跟连接的数据库用户,“-p” 表示需要输入密码

登录数据库 01.png

-- 所有的数据都存储在数据库中,因此需要学习的第一个命令是创建数据库
mysql> create database test1;

-- 如果需要知道系统中都存在哪些数据库,可以用以下命令
mysql> show databases;

创建数据库 02.png

-- 在查看系统中已有的数据库后,可以用如下命令选择要操作的数据库:
-- 例如,选择数据库 test1:

mysql> use test1

-- 然后再用下列命令来查看 test1 数据库中创建的数据表:

mysql> show tables;

显示数据表 03.png

2.删除数据库

-- 删除数据库的语法很简单

-- 例如,要删除 test1 数据库可以使用以下语句:

mysql> drop database test1;

删除数据库 04.png

3.创建表

-- 因为 MySQL 的表名是以文件的形式保存在磁盘上,所有表名的字符可以用任何文件名允许的字符。

-- 例如,创建一个名称为 emp 的表。表中包括 ename(姓名)、hiredate(雇用日期)和 sal(薪水)3个字段,字段类型分别为 varchar(10)、date、int(2):

mysql> create table emp(ename varchar(10),hiredate date,sal decimal(10,2),deptno int(2));

-- 表创建完毕,需要查看 emp 表

mysql> desc emp;

-- 为了得到更全面的表定义信息,有时候需要查看创建表的 SQL 语句,可以使用如下命令:

mysql> show create table emp \G;

创建表 05.png

4.删除表

-- 要删除数据库 emp 可以使用以下命令:

mysql> drop table emp;

删除表 06.png

5.修改表

在大多数情况下,表结构的更改都使用 alter table 语句。

a.修改表类型
-- 修改表 emp 的ename 字段定义,将varchar(10)改为 varchar(20):

mysql> desc emp;
mysql> alter table emp modify ename varchar(20);
mysql> desc emp;

修改表类型 07.png

b.增加表字段
-- 在表 emp 中新增加字段 age,类型为int(3):

mysql> desc emp;
mysql> alter table emp add column age int(3);
mysql> desc emp;

增加表字段 08.png

c.删除表字段
-- 将字段 age 删除掉:

mysql> desc emp;
mysql> alter table emp drop column age;
mysql> desc emp;

删除表字段 09.png

d.字段改名
-- 将 age 改名为 age1,同时修改字段类型为int(4);

mysql> desc emp;
mysql> alter table emp change age age1 int(4);
mysql> desc emp;

字段改名 10.png

e.修改字段排列顺序
-- 将新增的字段 birth date 加在 ename 之后:

mysql> desc emp;
mysql> alter table emp add birth date after ename;
mysql> desc emp;

修改字段排列顺序 11.png

-- 修改字段 age1,将它放在最前面:

mysql> desc emp;
mysql> alter table emp modify age1 int(3) first;
mysql> desc emp;

修改字段 age1 12.png

f.更改表名
-- 将表 emp 改名为 emp1

mysql> show tables;
mysql> alter table emp rename emp1;
mysql> show tables;

更改表名 13.png

参考书籍

-- 书名: 深入浅出MySQL	--数据库开发、优化与管理维护(第3版)
    
-- 作者:翟振兴 崔春华 黄荣 董骐铭