本文专属于基础篇章,适于小白对SQL的基本了解
目录
1,什么是数据库?
2,什么是SQL?
3,SQL有什么用?
4,SQL类型
5,SQL之DDL,DML,DQL,DCL
1,什么是数据库
数据库,顾名思义——一个存放数据的仓库。
正是因为有了数据库后,我们可以直接查找数据。例如你每天使用余额宝查看自己的账户收益,就是从数据库读取数据后给你的。因为数据库的存储数据量是巨大的,因此我们需要借助一些工具来辅助查找数据,这就用到了SQL
2,什么是SQL
SQL就是在数据库中查找数据的这个工具,全称(Structured Query Language)---结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
3,SQL的作用
SQL ——面向数据库执行查询——可从数据库取回数据——可在数据库中插入新的记录——可更新数据库中的数据——可从数据库删除记录——可创建新数据库——可在数据库中创建新表——可在数据库中创建存储过程——可在数据库中创建视图——可以设置表、存储过程和视图的权限
4,SQL的类型
DQL(数据查询语句) DML(数据操作语句)
DDL(数据定义语句) DCL(数据控制语言)
5,SQL语句命令
查看数据库:show database 查看数据表:show TABLE 切换数据库:use 切换的库名
5.1 操作数据库:
5.1.1创建数据库——CREATE DATABASE 库名
例如:CREATE DATABASE yjl --- 创建一个名为yjl的数据库,若存在会报错
CREATE DATABASE IF NOT EXISTS yjl --- 如果不存在yjl这个库,则创建
5.1.2删除数据库 ——DROP DATABASE 库名
例如:DROP DATABASE yjl --- 删除名为yjl的数据库,若不存在会报错
DROP DATABASE IF NOT EXISTS yjl --- 删除yjl库,不存在不报错
5.1.3修改数据库编码——ALTER DATABASE 库名 CHARACTER SET 修改的编码
例如:ALTER DATABASE yjl CHARACTER SET utf8 --- 修改数据库 yjl 的编码为 utf8。
注意:在 MySQL 中所有的 UTF-8 编码都不能使用中间的
“-”
,即 UTF-8 要书写为 UTF8。5.2操作数据表:增 删 改 查
5.2.1创建数据表——CREATE TABLE 表名
例如:
CREATE TABLE YJL(列1,类型列2,类型列3,类型 );
实例:
CREATE TABLE YJL(name varchar (200),age varchar (200),gender varchar (200),phone int );
5.2.2插入数据——
INSERT INTO Persons VALUES---插入新的行
例如:INSERT INTO Persons VALUES(1,2,3,4,5,6); --- 添加一个行依次为上值
INSERT INTO 表名 (列1, 列2,) VALUES (值1, 值2);--- 向指定列中插入新的行
例如: INSERT INTO YJL (age,genser) VALUES (23, man);---向名为YJL的表中添加age和gender两个列,对应的值为23和man.
5.2.3删除数据——DELETE用于删除表中的行
DELETE FROM 表名 WHERE 列名 = value;
例如:删除YJL数据表中age列为20的行
DELETE FROM YJL WHERE age='20';
5.2.4清除表数据——TRUNCATE TABLE 表名
例如:TRUNCATE TABLE YJL --- 清除名为YJL数据表中所有数据
5.2.5删除表——DROP TABLE 表名 --- 删除这个数据表
5.3.6修改表——
添加列:给 YJL 表添加 high 列
例如:ALTER TABLE YJL ADD (high varchar(187));修改列的数据类型:修改 YJL 表的 gender 列类型为 CHAR(2)
例如:ALTER TABLE YJL MODIFY gender CHAR(2);修改列名:修改 YJL 表的 gender 列名为 sex
例如:ALTER TABLE YJL change gender sex CHAR(2);删除列:删除 YJL 表的 high 列
例如:ALTER TABLE YJL DROP high;修改表名称:修改 YJL 表名称为 yjl
例如:ALTER TABLE YJL RENAME TO yjl;
5.3.7查找表——基础查询,条件查询,模糊查询
基础查询:
SELECT * FROM YJL; --- 查看YJL表中所有列 (*表示所有列)
SELECT age,gender FROM YJL; --- 查看YJL表中age和genser列数据
条件查询:
条件查询就是在查询时给出 WHERE 子句,在 WHERE 子句中可以使用如下运算符及关键字:
- =等于、!=不等于、<>不等于、<小于、<=小于等于、>大于、>=大于等于;
- BETWEEN // AND ///;在//和///之间
- IN(set);在内
- IS NULL;不存在
- AND;与
- OR;或
- NOT;非
SELECT * FROM YJL WHERE name='yjl' OR AGE='23'
例如上代码:表示查找YJL表中所有列,选出name=yjl或者age=23的行
模糊查询:
SELECT 字段 FROM 表 WHERE 某字段 Like 条件 --- 其中关于条件,SQL 提供了两种匹配模式:
% :表示任意 0 个或多个字符。可匹配任意类型和长度的字符,有些情
况下若是中文,请使用两个百分号(%%)表示。
_: 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字 符长度语句。
例如:表示查找YJL表中所有列,查询名字为3个字符的行。SELECT * FROM YJL WHERE name LIEK '_ _ _'
‘— — i’ 表示三个字符组成且第三个为i
‘— j%’ 表示任意长字符,但第二个为j
‘y%’ 表示任意长字符,开头是y
‘%y%’ 表示任意长字符,包含y
5.3.7 去重 --- DISTINCT
SELECT DISTINCT 列名 FROM 表名
例如:SELECT name FROM YJL; --- 列出YJL表中列名为name的值。
当一个列中同样的字符多次出现时:SELECT DISTINCT name FROM YJL---去掉
YJL 表中列名为name的值中重复出现
5.3.8 排序 --- DESC降序 ASC升序
SELECT * FROM YJL ORDER BY AGE DESC