[JavaWeb]SQL介绍-DDL语句

SQL介绍-DDL语句

一.SQL简介

1.简介

  • SQL: Structured Query Language--结构化查询语言
  • 用来操作关系型数据库的编程语言, 定义了关系型数据库的统一标准
  • 每一种数据库可能有不一样的语法, 我们称其为"方言"

2.SQL通用语法

  • SQL语句可以单行或多行书写,以分号结尾
  • MySQL语句不区分大小写, 但是关键字建议用大写
  • 注释:
    单行注释-- 注释内容(--后必须有空格)或#注释内容(MySQL特有)(#后可以没有空格)
    多行注释/*注释*/

3.SQL语言的分类

  • DDL(Data Definition Laguage)数据定义语言,用来定义数据对象: 数据库, 表, 列等
  • DML(Data Manipulation Laguage)数据操作语言, 用来对数据库中表的数据进行增删改
  • DQL(Data Query Language)数据查询语言, 用来查询数据库中的记录(数据)
  • DCL(Data Control Language)数据控制语言, 用来定义数据库的访问权限和安全级别, 以及创建用户

二.DDL-操作数据库与表

1.DDL操作数据库

动作 SQL语句
查询数据库 SHOW DATABASES;
创建数据库 CREATE DATABASE 数据库名称;
创建(判断是否已经存在) CREATE DATABASE IF NOT EXISTS 数据库名称;
删除数据库 DROP DATABASE 数据库名称;
删除(判断是否还存在) DROP DATABASE IF EXISTS 数据库名称;
查看当前使用的数据库 SELECT DATABASE();
使用数据库 USE 数据库名称;

2.DDL操作表

①.查询表(Retrieve)

  • 查询当前数据库下所有表的名称SHOW TABLES;
  • 查询表结构DESC 表名称;

②.创建表(Create)

  • 创建表用CREATE TABLE 表名来进行创建具体语法如下
sql 复制代码
create table 表名 (
	字段名1 数据类型1,
	字段名2 数据类型2,
	...,
	字段名n 数据类型n
);
  • SQL的数据类型基本可以分为三类
    数值型
    日期型
    字符串型

案例练习:

sql 复制代码
create table student(
   
   id int,
   name varchar(10),
   gender char(1),
   birthday date,
   score double(5,2),
   email varchar(64),
   tel varchar(15),
   status tinyint

);

③.修改表(Update)

  • 修改表的命令一般以ALTER TABLE开头具体可以分为
操作 语法
修改表名 ALTER TABLE 表名 RENAME TO 新表名;
添加一列 ALTER TABLE 表名 ADD 列名 数据类型;
修改数据类型 ALTER TABLE 表名 MODIFY 列名 新数据类型;
修改列名和数据类型 ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
删除列 ALTER TABLE 表名 DROP 列名;

④.删除表(Delete)

  • 删除表DROP TABLE 表名;
  • 删除时判断是否存在DROP TABLE IF EXISTS 表名;

三.Navicat的安装与使用

  • Navicat for MySQL是管理和开发MySQL或MariaDB的理想解决方案.
  • 它为开发者提供了一款直观而强大的图形界面.
  • 官网链接: http://www.navicat.com.cn

    安装完成后直接打开,填写需要连接的ip与主机的地址
    如果连接过程提示报错,可以参看这个博主的文章
  • 登录成功后可以通过Navicat来查看MySQL的数据库了

四.DML-操作表数据

1.添加(Insert)

说明 语法
给指定的列添加数据 INSERT INTO 表名(列名1,列名2,...) VALUES(值1,值2,...);
给全部列添加数据 INSERT INTO 表名 VALUES(值1,值2,...);
批量添加数据 INSERT INTO 表名(列名1,列名2,...) VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...),... INSERT INTO 表名 VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...)...;
sql 复制代码
-- 查询所有数据
SELECT
	*
FROM
	stu;

-- 给指定列添加数据 INSERT INTO 表名(列名1,列名2,...) VALUES(值1,值2,...);
INSERT INTO stu (id, NAME)
VALUES
	(1, '叶子');

-- 给所有列添加数据(可以省略列名的列表)INSERT INTO 表名 VALUES(值1,值2,...);
INSERT INTO stu
VALUES
	(
		2,
		'老黄',
		'男',
		'1997-07-24',
		99.1,
		'14587138@qq.com',
		'11929305651',
		1
	);

-- 批量添加,其实就是把之前的括号中的内容多次执行
INSERT INTO stu
VALUES
	(
		3,
		'罗磊',
		'男',
		'1997-05-24',
		110.1,
		'14333138@qq.com',
		'11929467551',
		1
	),(
		4,
		'娟老师',
		'女',
		'1999-04-14',
		120.1,
		'556587138@qq.com',
		'1349305651',
		1
	),(
		5,
		'雷der',
		'男',
		'1993-04-24',
		130.1,
		'16487138@qq.com',
		'17629305651',
		1
	);

SELECT
	*
FROM
	stu;

2.修改(Update)

  • 语法UPDATE 表名 SET 列名1=值1,列名2=值2,... [WHERE 条件];
sql 复制代码
-- 将表中 老黄的邮箱改为163邮箱
UPDATE stu SET email = 'finsq@163.com' WHERE id=2;

-- 将表中老黄的分数改为100,电话改为110,状态改为3
UPDATE stu SET score=100,tel=110,`status`=3 WHERE name='老黄';

-- 注意:如果update语句中不添加where条件,则会修改表中的所有数据!!!!

3.删除(Delete)

  • 与修改相似DELETE FROM 表名 [WHERE 条件];
sql 复制代码
-- 删除表中 '雷der'相关的数据
DELETE FROM stu WHERE name='雷der';

SELECT * FROM stu;
-- 如果不加where限制会清除所有表数据

五.DQL-查询表数据

SELECT
  字段列表
FROM
  表名列表
WHERE
  条件列表
GROUP BY
  分组字段
HAVING
  分组后条件
ORDER BY
  排序字段
LIMIT
  分页限定

1.基础查询

说明 语法
查询多个字段 SELECT 字段列表 FROM 表名; SELECT * FROM 表名; -- 查询所有数据
去除重复记录 SELECT DISTINCT 字段列表 FROM 表名;
起别名 AS: -- AS也可以省略
sql 复制代码
-- 先建立新的表
drop table if exists stu;
-- 创建stu表
CREATE TABLE stu (
id int,-- 编号
name varchar(20),-- 姓名
age int,-- 年龄
sex varchar(5),-- 性别
address varchar(100),-- 地址,
math double(5,2),-- 数学成绩,
english double(5,2),-- 英语成绩
hire_date date -- 入学时间
);

-- 添加数据
INSERT INTO stu(id,NAME,age,sex,address,math,english,hire_date)
VALUES
(1,'马运',55,'男','杭州',66,78,'1995-09-01'), 
(2,'马花疼',45,'女','深圳',98,87,'1998-09-01'),
(3,'马斯克',55,'男','香港',56,77,'1999-09-02'),
(4,'柳白',28,'女','湖南',76,65,'1997-09-05'),
(5,'柳青',2,'男','湖南',86,NULL,'1998-09-01'),
(6,'刘德花',57,'男','香港',99,99,'1998-09-01'),
(7,'张学右',22,'女','香港',99,99,'1998-09-01'),
(8,'德玛西亚',18,'男','南京',56,65,'1994-09-02');
SELECT * FROM stu;

B站视频课程
笔记与源码文件

相关推荐
小光学长10 分钟前
基于vue框架的宠物寻回小程序8g7el(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
数据库
一叶飘零_sweeeet11 分钟前
深入理解 MySQL MVCC:多版本并发控制的核心机制
数据库·mysql
中文很快乐21 分钟前
springboot结合p6spy进行SQL监控
java·数据库·sql
小电玩22 分钟前
谈谈你对Spring的理解
java·数据库·spring
小光学长28 分钟前
基于flask+vue框架的传染病防控酒店信息系统zvt93(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
数据库
M-bao38 分钟前
1000w条数据插入mysql如何设计?
数据库·mysql
666786661 小时前
Mysql高级篇(中)—— SQL优化
linux·运维·服务器·数据库·sql·mysql
十年人间~1 小时前
mysql等保数据库命令
数据库·mysql
Amagi.1 小时前
Redis的内存淘汰策略
数据库·redis·mybatis
hai4117419621 小时前
mysql 与postgresql 的区别(gpt4)
数据库·mysql·postgresql