MYSQL基础语法
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
1、SQL的概念
1.1 什么是sql
当面对一个陌生的数据库时,通常需要一种方式与它进行交互,以完成用户所需要的各种工作,这个时候,就要用到 SQL 语言了。
SQL 是 Structure Query Language(结构化查询语言)的缩写,它是使用关系模型的数据库应用语言,由 IBM 在 20 世纪 70 年代开发出来,作为 IBM 关系数据库原型 System R 的原型关系语言,实现了关系数据库中的信息检索。
20 世纪 80 年代初,美国国家标准局(ANSI)开始着手制定 SQL 标准,最早的 ANSI 标准于1986 年完成,就被叫作 SQL-86。标准的出台使 SQL 作为标准关系数据库语言的地位得到了加强。SQL 标准目前已几经修改更趋完善。
正是由于 SQL 语言的标准化,所以大多数关系型数据库系统都支持 SQL 语言,它已经发展成为多种平台进行交互操作的底层会话语言。
提示:结构化查询语言(Structured Query Language)简称SQL,SQL语句就是对数据库进行操作的一种语言。
1.2 SQL 使用入门
这里用了(My)SQL 这样的标题,目的是在介绍标准 SQL 的同时,也将一些 MySQL 在标准 SQL上的扩展一同介绍给大家。希望读者看完本节后,能够对标准 SQL 的基本语法和 MySQL 的部分扩展语法有所了解。
1.2.1 SQL 分类
SQL 语句主要可以划分为以下 5 个类别。
- DDL(Data Definition Language)数据定义语言 用来定义数据库对象:数据库,表,列等。关键字:create,drop,alter等
- DML(Data Manipulation Language)数据操作语言 用来对数据库中表的数据进行增删改。关键字:insert,delete, update,select(本文单独归类DQL)等
- DQL(Data Query Language) 数据查询语言 (掌握)DQL语言并不是属于MYSQL官方的分类,但是对数据库的操作最多就是查询,所以我们的程序员把查询语句的语句称作为DQL语言()
- DCL(Data Control Language)数据控制语言(了解)用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE等
- TCL(Transaction Control Language) 事务控制语言用于控制数据库的事务操作,关键字; COMMIT,SAVEPOINT,ROLLBACK等
提示:其中最重要的为DML语言和DQL语言
1 SQL语句可以单行或多行书写,以分号结尾。
2 可使用空格和缩进来增强语句的可读性。
3 MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
3. 3种注释 单行注释: – 注释内容 或 # 注释内容(mysql特有) 多行注释: /* 注释 */
SELECT * FROM user;
-- 这是单行注释
# 单行注释
/*
多行注释
多行注释
多行注释
*/
2. sql的实际运用
2.1 DDL 语句
2.1.1 DDL操作数据库
启动 MySQL 服务之后,输入以下命令连接到 MySQL 服务器:
PS C:\Users\RunTu> mysql -uroot -p
Enter password: ****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 103
Server version: 5.7.27 MySQL Community Server (GPL)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
在以上命令行中,mysql 代表客户端命令,-u 后面跟连接的数据库用户,-p 表示需要输入密码。
如果数据库设置正常,并输入正确的密码,将看到上面一段欢迎界面和一个 mysql>提示符。
在欢迎界面中介绍了以下几部分内容。
- 命令的结束符,用 ; 或者\g 结束。
- 客户端的连接 ID,这个数字记录了 MySQL 服务到目前为止的连接次数,每个新连接都会自动加 1,本例中是 7344941。
- MySQL 服务器的版本,本例中是“5.1.9-beta-log”,说明是 5.1.9 的测试版,如果是标准版,则会用 Standard代替 Beta。
- 通过“help;”或者“\h”命令来显示帮助内容,通过“\c”命令来清除命令行 buffer。 在
mysql>提示符后面输入所要执行的的 SQL 语句,每个 SQL 语句以分号或者\g 结束,按回车键执行。
因为所有的数据都存储在数据库中,因此需要学习的第一个命令是创建数据库,语法如下所示:
1.创建数据库
- 直接创建数据库 CREATE DATABASE 数据库名;
- 具体操作:直接创建数据库db1
create datebase db1
Query OK, 1 row affected (0.00 sec)
可以发现,执行完创建命令后,下面有一行提示“Query OK, 1 row affected (0.00 sec)”,这段提示可以分为 3 部分,“Query OK”表示上面的命令执行成功,读者可能奇怪,又不是执行查询操作,为什么显示查询成功?其实这是 MySQL 的一个特点,所有的 DDL 和 DML(不包括 SELECT)操作执行成功后都显示“Query OK”,这里理解为执行成功就可以了;“1 row affected”表示操作只影响了数据库中一行的记录,“0.00 sec”则记录了操作执行的时间。
如果已经存在这个数据库,系统会提示:
mysql> create database db1;
ERROR 1007 (HY000): Can't create database 'db1'; database exists
2.查看所有的数据库
SHOW databases;
mysql> show databases;
+---------------------+
| Database |
+---------------------+
| information_schema |
| db1 |
| mysql |
| nacos-config |
| performance_schema |
| sys |
| test1 |
+---------------------+
7 rows in set (0.00 sec)
**查看某个数据库的定义信息 **
SHOW CREATE DATABASE 数据库名;
mysql> show create database db1;
+----------+--------------------------------------------------------------+
| Database | Create Database |
+----------+--------------------------------------------------------------+
| db1 | CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+--------------------------------------------------------------+
1 row in set (0.00 sec)
使用数据库
- 查看正在使用的数据库 SELECT DATABASE(); 2. 使用/切换数据库 USE 数据库名;
具体操作:
查看正在使用的数据库
mysql> select database();
+------------+
| database() |
+------------+
| NULL |
+------------+
1 row in set (0.00 sec)
---
使用db1数据库
使用前先创建
mysql> create database db1;
Query OK, 1 row affected (0.00 sec)
mysql> use db1;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| db1 |
+------------+
1 row in set (0.00 sec)
3.删除数据库
DROP DATABASE 数据库名;
具体操作:
删除db1数据库
mysql> drop database db1;
Query OK, 0 rows affected (0.01 sec)
此时再查看数据库show databases 已经不存在
mysql> show databases;
+---------------------+
| Database |
+---------------------+
| information_schema |
| mysql |
| nacos-config |
| performance_schema |
| sys |
| test1 |
+---------------------+
6 rows in set (0.00 sec)
2.1.2 DDL操作表
1.在数据库中创建一张表的基本语法如下:
CREATE TABLE tablename (column_name_1 column_type_1 constraints,
column_name_2 column_type_2 constraints , ……column_name_n column_type_n
constraints)
因为 MySQL 的表名是以目录的形式存在于磁盘上,所以表名的字符可以用任何目录名允许的字符。column_name 是列的名字,column_type 是列的数据类型,contraints 是这个列的约束条件,在后面的章节中会详细介绍。
例如,创建一个名称为 emp 的表。表中包括 3 个字段,ename(姓名),hiredate(雇用日期)、sal(薪水),字段类型分别为 varchar(10)、date、int(2)(关于字段类型将会在下一章中介绍):
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。