一.SQL简介
全称 Structured Query Language,结构化查询语言。操作关系型数据库的编程语言,定义了 一套操作关系型数据库统一标准
1.1 SQL通用语法
SQL的语言用法:
- SQL语句可以单行或多行书写,以分号结尾。
- SQL语句可以使用空格/缩进来增强语句的可读性。
- MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
- 注释:
- 单行注释:-- 注释内容 或 # 注释内容
- 多行注释:/* 注释内容 */
1.2 SQL分类
分类 | 全称 | 说明 |
---|---|---|
DDL | Data Definition Language | 数据定义语言,用来定义数据库,表,字段 |
DML | Data Manipulation Language | 数据操作语言,用来对数据库表中的数据进行增删改 |
DQL | Data Query Language | 数据查询语言,用来查询数据库中表的记录 |
DCL | Data Control Language | 数据控制语言,用来创建数据库用户、控制数据库的 访问权限 |
二.DDL
DDL英文全称是Data Definition Language,用来定义数据库,表,字段
2.1 数据库操作
-
查询所有数据库
SHOW DATABASES;
-
查询当前数据库
SELECT DATABASE();
-
创建数据库
CREATE DATABASE IF NO EXISTS test;
-
创建数据库并指定字符集
CREATE DATABASE test DEFAULT CHARSET utf8mb4;
-
删除数据库
DROP DATABASE IF EXISTS test;
-
切换数据库
USE 数据库名;
2.2 表操作-数据类型
设计一张员工信息表,要求如下:
- 编号(纯数字)
- 员工工号 (字符串类型,长度不超过10位)
- 员工姓名(字符串类型,长度不超过10位)
- 性别(男/女,存储一个汉字)
- 年龄(正常人年龄,不可能存储负数)UNSIGNED 无符号来存取
- 身份证号(二代身份证号均为18位,身份证中有X这样的字符)
- 入职时间(取值年月日即可)
对应的建表语句如下:
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 '员工表';
2.2.1 表操作-查询
-
查询当前数据库所有表
SHOW TABLES;
-
查看指定表结构
DESC 表名;
-
查询指定表的建表语句
SHOW CREATE TABLE 表名;
2.2.2 表操作-修改
-
添加字段
-- 添加昵称字段,nickname,类型为varchar(20) ALTER TABLE emp ADD nickname VARCHAR(20) COMMENT '昵称';
-
修改数据类型
-- 修改昵称的字段类型 ALTER TABLE emp MODIFY nickname VARCHAR(15) COMMENT '昵称新数据类型';
-
修改字段名和字段类型
-- 修改字段名和字段类型 ALTER TABLE emp CHANGE nickname username VARCHAR(30) COMMENT '新的昵称';
-
删除字段
-- 将昵称字段删除 ALTER TABLE emp DROP username;
-
修改表名
-- 修改表名为employee ALTER TABLE emp RENAME TO employee;
2.2.3 表操作-删除
-
删除表
DROP TABLE IF EXISTS tb_user;
-
删除指定表, 并重新创建表
TRUNCATE TABLE 表名;
注意: 在删除表的时候,表中的全部数据也都会被删除。