文章目录
SQL_基础概念
- SQL是一种基本的结构化查询语言,支持大多数的数据库语言,可以访问和处理数据库,可以面向数据库执行查询,取回数据,插入数据,更新,删除数据,等等操作,基本而言,增删改查更新等一系列的语句。
- 数据库表,一个数据库通常包含一个或多个表,每个表都有一个名字(例如,student)
- 在这里使用的MySQ数据库,使用SHOW + (数据库名字,表的英文等等,注意是复数形式)展示信息,例如SHOW + DATABASES;展示当前的数据库,USE + 数据库名;选择数据库, SELECT * FROM student;读取数据表全部中的信息。
- SQL语言对大小写不敏感,但是必须保证输入法是英文状态。
- 每条SQL语句后面要使用分号(;)作为分隔每条SQL语句的标准方法。
SQL_数据类型
- 数据类型定义列中存放的值的种类。数据库表中的每个列都要求有名称和数据类型。
- 数据类型是一个标签,是便于 SQL 了解每个列期望存储什么类型的数据的指南,它也标识了 SQL 如何与存储的数据进行交互。
- 在 MySQL 中,有三种主要的类型:Text(文本)、Number(数字)和 Date/Time(日期/时间)类型。
SQL_创建数据库
CREATE DATABASE
语句用于创建数据库。- 在
RDBMS
关系数据库管理系统中,数据库名称始终应该是唯一的。在创建任何数据库之前,请确保拥有管理权限。 - 创建数据库的语法:
CREATE DATABASE data_name
- 创建数据库后,可以在数据库列表中检查它:
SHOW DATABASES;
SQL_创建数据表
CREATE TABLE
语句用于创建数据库中的表。表由行和列组成,每个表都必须有个表名。
CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);
column_name
参数规定表中列的名称。data_type
参数规定列的数据类型(例如 varchar、integer、decimal、date 等等
)。size
参数规定表中列的最大长度。
SQL_SELECT&WHERE
- SELECT 语法用于从数据库中选择数据。
- SELECT 返回的数据存储在结果表中,成为结果集
基本语法:SELECT column1, column2, ...FROM table_name;
SELECT Java1_id,Java_name,Java1_sex,Java1_age FROM Java1_student;
3. 选择表中可用的所有字段:SELECT * FROM Java1_student
SQL_SELECT TOP 子句
-
SELECT TOP 子句用于规定要返回的记录的数目。
-
SELECT TOP 子句对于拥有数千条记录的大型表来说,是非常有用的。
-
并非所有的数据库系统都支持 SELECT TOP 语句。
-
MySQL 支持 LIMIT 语句来选取指定的条数数据,
SELECT TOP(3) * FROM Java1_student;
:
SQL_SELECT DISTINCT(选择不同)
SELECT DISTINCT
语法用于仅返回不同的(different)值。- 在一张表内,一列通常包含许多重复的值; 有时你只想列出不同的(different)值。
SELECT DISTINCT
语句用于仅返回不同的(different)值。
SQL SELECT DISTINCT
语法:SELECT DISTINCT column1, column2, ... FROM table_name;
使用SELECT DISTINCT
进行查询
SELECT DISTINCT Java1_age FROM Java1_student;
SQL_WHERE 子句
- WHERE 子句用于过滤记录,即提取满足指定标准的记录
WHERE 语法:
SELECT column1, column2, ...
FROM table_name
WHERE condition;
查看 Java1_student表中所有年龄大于22的学生信息
SELECT * FROM Java1_student WHERE Java1_age>22;
WHERE 子句中的运算符:
SQL_ORDER BY
ORDER BY
关键字用于按升序或降序对结果集进行排序,默认情况下按升序排序记录。ORDER BY
按降序对记录进行排序,可以使用DESC关键字。ASC
是默认的升序排列,DESC
降序排列.- 在
ORDER BY
子句中使用多个列,但要确保用于对该列进行排序的列应该在列表中。
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;
在Java1_student
表中查看所有信息,并按升序排列学生年龄
SELECT * FROM Java1_student ORDER BY Java1_age;
- ORDER BY 还可进行多列排序
SQL_INSERT INTO(插入语句)
INSERT INTO
语句用于向表中插入新的数据行。- INSERT INTO 语句两种形式编写
- 没有指定要插入数据的列的名称,只提供要插入的值,即可添加一行新的数据
- 指定要插入数据的列的名称,提供要插入的值,即可添加一行新的数据,且当要插入的值少于对应的字段,其他未指定插入值的字段为空
INSERT INTO Java1_student VALUES (106,'张三','女',25,65);
SQL_UPDATE
UPDATE
语句用于更新表中已存在的记录。还可以使用AND或OR运算符组合多个条件。- 具有WHERE子句的UPDATE查询的基本语法如下所示
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
- WHERE子句指定哪些记录需要更新。如果省略
WHERE子句
,所有记录都将更新! WHERE
子句决定了将要更新的记录数量。
UPDATE Java1_student
SET Java1_name = '赵子龙', Java1_age= '23'
WHERE Java1_id = 101;
SQL_DELETE
DELETE FROM table_name
WHERE condition(判断条件);
WHERE子句
指定需要删除哪些记录。如果省略了WHERE
子句,表中所有记录都将被删除!- 删除所有数据:
DELETE FROM table_name
;,可以删除表中的所有行,而不需要删除该表。这意味着表的结构、属性和索引将保持不变: - 在没有备份的情况下,删除记录要格外小心!因为删除了不能重复!
DELETE Java1_student
WHERE Java1_id = '105';
SQL_NULL空值
NULL
用于表示缺失的值,数据表中的NULL
值表示该值所处的字段为空- 具有
NULL
值的字段是没有值的字段 - 如果表中的字段是可选的,则可以插入新记录或更新记录而不向该字段添加值,即该字段会被保存为
NULL
值 NULL
值与0
或者包含空白(spaces)
的字段是不同的,具有NULL
值的字段是在记录创建期间留空的字段!
PS
- 使用比较运算符(
例如=,<或<>
)来测试NULL
值是不可行的。 - 判断是否是
NULL
值,可以使用IS NULL和IS NOT NULL
运算符。 NULL
值会给选取数据带来麻烦。不过,因为NULL
和其他任何值作比较,其结果总是未知的,所以含有NULL
的记录不会包含在最终结果里面。- 必须使用
IS NULL 或者 IS NOT NULL
来检测某个字段是否为NULL
。