对SQL简单介绍、数据库、表的简单操作

本文介绍了SQL的六个组成部分,包括数据查询语言(DQL)、数据操作语言(DML)、数据定义语言(DDL)等,并详细解释了各自的用途。此外,还提供了MySQL列类型与Java数据类型的对应关系,以及一些基本的数据库和表的操作命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.SQL语句简单介绍:

SQL(结构化查询语言(Structured Query Language)包含6个部分(数据查询语言DQL数据操作语言DML数据定义语言DDL事务处理语言TPL数据控制语言DCL指针控制语言CCL),Java中常用的有三种,DQLDMLDDL

一:数据查询语言(DQL

其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECTDQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHEREORDER BYGROUP BYHAVING。这些DQL保留字常与其他类型的SQL语句一起使用。

二:数据操作语言(DML):

其语句包括动词INSERTUPDATEDELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。

:数据定义语言(DDL):

其语句包括动词CREATEDROP。在数据库中创建新表或删除表(CREAT TABLE DROP TABLE);为表加入索引等。DDL包括许多与数据库目录中获得数据有关的保留字。它也是动作查询的一部分。

:事务处理语言(TPL):

它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTIONCOMMITROLLBACK

:数据控制语言(DCL):

它的语句通过GRANTREVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANTREVOKE控制对表单个列的访问。

六:指针控制语言(CCL):

它的语句,像DECLARE CURSORFETCH INTOUPDATE WHERE CURRENT用于对一个或多个表单独行的操作。


2.MySQL列类型对应Java的数据类型:

MySQL列类型    Java数据类型

-------------------------------------------------------

INT:                      int/Integer

BIGINT:               long/Long

FLOAT                 float/Float

DOUBLE             double/Double

DECIMAL              BigDecimal

---------------------------------------------------------


3.数据库的操作

查看数据库服务器存在哪些数据库:

SHOW  DATABASES;

使用指定的数据库:

USE database_name;

创建指定名称的数据库:

CREATE DATABASE database_name;

删除数据库:

DROP DATABASE database_name;

 

注意:MySQL中,日期时间值使用单引号引起来。 相当于JavaDateCalender


4.表的操作

创建表:

1.先进入某一个数据库: use database_name;(指定创建的表应该在哪个数据库)

2.输入建表的SQL命令:

CREATE TABLE 表名(

   列名1    列的类型   [约束],

   列名2    列的类型   [约束],

   ....

   列名N    列的类型   约束    

);

注意:最后一行没有逗号

注意:不能使用MySQL中的关键字作为标识符.

     比如:订单表(order),但是ORDERSQL中排序的关键字.

     解决方案:

              方式1:使用反引号,把关键字引起来:`ORDER`.

              方式2:开发中,习惯t_表名;

 

查看数据库中存在哪些表:

SHOW TABLES;

查看表结构:

DESC table_name;

查看表的详细定义:(显示创建表的语句cd

SHOW CREATE TABLE table_name;(定义表的SQL语句)

删除表:

DROP TABLE table_name;

 

表的约束:

表的约束(针对于某一列):

1.非空约束(NK)NOT NULL,不允许某列的内容为空。

2.设置列的默认值:DEFAULT

3.唯一约束(UK)UNIQUE,在该表中,该列的内容必须唯一。

4.主键约束:PRIMARY KEY,约束在当前表中,指定列的值非空且唯一

5.主键自增长:AUTO_INCREMENT,从1开始,步长为1。(常和主键配合使用)

6.外键约束:FOREIGN KEYA表中的外键列.A表中的外键列的值必须参照于B表中的某一列(B表主键)可以为NULL

主表:不用依赖其他表,可以独立存在

从表:外键列的数据要参照于主表中的数据,有外键列的表为从表


主键/外键的起名规则:

主键:id

外键:xx_id:xx只的是参照表的名词,productdir_id,也可以简写,dir_id


注意:MySQL,InnoDB支持事务和外键.

修改表的存储引擎为InnoDB:

ALTER TABLE 表名 ENGINE='InnoDB';

开发中,有时从性能考虑,我们会删除外键.但是依然使用InnoDB存储引擎.


消除结果中重复的数据。

语法:

SELECT DISTINCT 列名,..

 

设置列名的别名。

关键字:[AS]

1、改变列的标题头;

2、用于表示计算结果的含义;

3、作为列的别名;

4、如果别名中使用特殊字符,或者是强制大小写敏感,或有空格时,都需加单引号;--->英文单词

需求:查询所有货品的id,名称,各进50个,并起别名的成本

SELECT id,productName,costPrice * 50 'price' FROM product

 

使用别名注意事项:

SQL语句是有一定的执行顺序的,如若别名还没定义出来,就先使用了,就会出错,如:

SELECT id,productName,salePrice*cutoff pf FROM product WHERE pf>350(错误的)

SQL语句是先执行where语句再执行select的,而在执行where时,pf都还定义,故会出错

SQL的执行顺序:

1.先执行FROM子句:  确定查询哪一张表

2.接着执行WHERE :  过滤筛选条件

3.接着做SELECT  :  确定选择的列

4.最后做ORDER BY:  对结果集按照某列排序

 

优先级:

优先级         运算符

------------------------------------

1             所有比较运算符

2             NOT

3             AND

4             OR

注意:括号将跨越所有优先级规则

 

 

对结果集排序

使用ORDER BY子句将结果的记录排序.

ASC : 升序,缺省。

DESC: 降序。

ORDER BY 子句出现在SELECT语句的最后。

格式:

SELECT <selectList>

FROM table_name

WHERE 条件

ORDER BY 列名1 [ASC/DESC],列名2 [ASC/DESC]...;

 

注意:别名不能使用引号括起来,否则不能排序。(下面的排序将失效)

SELECT *,salePrice*cutoff 'pf' FROM product WHERE productName LIKE '%M%' ORDER BY 'pf'

SELECT语句执行顺序:

先执行FROM--->接着执行WHERE--->再执行SELECT--->最后执行ORDER BY






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值