SQL语句1

本文详细介绍了SQL语言的基础概述,包括其分类(DDL、DML等),并重点讲解了DDL中的数据定义操作(如创建、删除和修改数据库、表)以及DML中的数据操作(插入、修改和删除记录)。
摘要由CSDN通过智能技术生成

目录

一、SQL概述

语法要求

二、分类

三、DDL(数据定义语言)

1、基本操作

2、 操作数据库

2.1 创建数据库

2.2 删除数据库

2.3 修改数据库编码

2.4 操作表

2.4.1 创建表

2.4.2 表的其他操作SQL  

四、DML(数据操作语言)

1、插入数据

2、修改数据

3、删除数据


一、SQL概述

SQL(Structured Query Language)是“结构化查询语言”,它是对关系型数据库的操作语言。它可以应用到所有关系型数据库中,例如:MySQL、Oracle、SQL Server等。

语法要求

  • SQL语句可以单行或多行书写,以分号结尾;

  • 可以用空格和缩进来来增强语句的可读性;

  • 关键字不区别大小写,建议使用大写;

二、分类

  • DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;

  • DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);

  • DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;

  • DQL(Data Query Language):数据查询语言,用来查询记录(数据)。

三、DDL(数据定义语言)

1、基本操作

  • 查看所有数据库名称:SHOW DATABASES; 

  • 切换数据库:USE mydb1,切换到mydb1数据库;

  • 查看当前使用的数据库的名称: select database();

2、 操作数据库

2.1 创建数据库

#语法:
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARACTER SET 字符集 COLLATE 排序规则字符集];
#创建数据库:
CREATE DATABASE [IF NOT EXISTS] mydb1;

创建数据库,例如:CREATE DATABASE mydb1,创建一个名为mydb1的数据库。如果这个数据已经存在,那么会报错。例如CREATE DATABASE IF NOT EXISTS mydb1,在名为mydb1的数据库不存在时创建该库,这样可以避免报错。  

DEFAULT CHARACTER: 默认的字符集, 如果没有设置,默认是utf8

COLLATE: 排序规则, 如果没有设置,默认是: utf8_general_ci

注意:

字符集:

  • utf8: utf8 编码最⼤字符长度为 3 字节,如果遇到 4 字节的宽字符就会插⼊异常了,比如Emoji表情,就无法使用utf8存储,推荐使用utf8mb4

  • utf8mb4: mb4即most bytes 4,专门用来兼容四个字节即以上的unicode, 在Mysql在5.53版本之后

2.2 删除数据库

--删除数据库:
DROP DATABASE [IF EXISTS] mydb1;

 删除数据库,例如:DROP DATABASE mydb1,删除名为mydb1的数据库。如果这个数据库不存在,那么会报错。DROP DATABASE IF EXISTS mydb1,就算mydb1不存在,也不会的报错。

2.3 修改数据库编码

--修改数据库编码:
ALTER DATABASE mydb1 CHARACTER SET utf8

 修改数据库mydb1的编码为utf8。注意,在MySQL中所有的UTF-8编码都不能使用中间的“-”,即UTF-8要书写为UTF8。

2.4 操作表

2.4.1 创建表
CREATE TABLE 表名(

 列名 列类型,

 列名 列类型,

 ......

);
2.4.2 表的其他操作SQL  
--查看当前数据库中所有表名称:
SHOW TABLES;
--查看指定表的创建语句:  查看emp表的创建语句;
SHOW CREATE TABLE emp;

--查看表结构:
DESC emp; --查看emp表结构;

--删除表:
DROP TABLE emp; --删除emp表;

--修改表:
--1. 修改之添加列:给stu表添加classname列:
ALTER TABLE stu ADD (classname varchar(100));

--2. 修改之修改列类型:修改stu表的gender列类型为CHAR(2):
ALTER TABLE stu MODIFY gender CHAR(2);

--3. 修改之修改列名:修改stu表的gender列名为sex:
ALTER TABLE stu change gender sex CHAR(2);

--4. 修改之删除列:删除stu表的classname列:
ALTER TABLE stu DROP classname;

--5. 修改之修改表名称:修改stu表名称为student:
ALTER TABLE stu RENAME TO student;

四、DML(数据操作语言)

1、插入数据

插入指定列语法:

INSERT INTO 表名(列名1,列名2, …) VALUES(值1, 值2)

例如:

INSERT INTO stu (sid, sname, age, gender) 
VALUES
('s_1001', 'zhangSan', 23, 'male');

INSERT INTO stu (sid, sname) 
VALUES
('s_1001', 'zhangSan') ;

  插入全部列语法:

INSERT INTO 表名 VALUES(值1,值2,…)

例如:

INSERT INTO stu VALUES('s_1002', 'liSi', 32, 'female');

 注意:所有字符串数据必须使用单引用!

2、修改数据

语法:

UPDATE 表名 SET 列名1=值1, … 列名n=值n [WHERE 条件]

例如: 

UPDATE stu SET sname='zhangSanSan', age='32', gender='female' WHERE sid='s_1001';

UPDATE stu SET sname='wangWu', age='30' WHERE age>60 OR gender='female';

UPDATE stu SET sname='liSi', age='20' WHERE age>50 AND gender='male';

UPDATE stu SET gender='female' WHERE gender IS NULL;

UPDATE stu SET age=age+1 WHERE sname='zhaoLiu';

3、删除数据

语法:

DELETE FROM 表名 [WHERE 条件]

例如: 

DELETE FROM stu WHERE sid='s_1001';

DELETE FROM stu WHERE sname='chenQi' OR age > 30;

--删除所有  慎用
DELETE FROM stu;

语法:  

TRUNCATE TABLE 表名

TRUNCATE TABLE stu;

虽然TRUNCATE和DELETE都可以删除表的所有记录,但有原理不同。DELETE的效率没有TRUNCATE高!

TRUNCATE其实属性DDL语句,因为它是先DROP TABLE,再CREATE TABLE。而且TRUNCATE删除的记录是无法回滚的,但DELETE删除的记录是可以回滚的  

DCL(数据控制语言)、DQL(数据查询语言)内容过多详情见下篇文章SQL语句-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值