MySQL数据库和SQL基础

MySQL数据库

MySQL

mysql是基于关系数据库的,关系数据库:将数据组织成表,并表现为表与表之间的关系。
如:学生的信息就可以抽象成一张表(学号,姓名,所选课程号,年龄…),课程也可以抽象成一张表(课程名称,课程号,人数…),通过这些关系,数据库管理系统(DBMS)可以从表中提取某种特定的数据集合。
PHP访问数据库需要MySQL需要进行配置。
可以使用一些可视化的界面管理工具(phpMyAdmin)…

MySQL数据库的基本操作

1.表,字段,记录和键

	表:与平时看到的表格基本一样,表的每一列都有一个唯一的名字,每列包含了不同的数据,被成作列的值。
		每一列都是某种特定的数据类型。
	字段:表中的列叫做一个字段。
	记录:表中的一行叫做记录,表中的每一行基本都是一条完整的数据(很少时候会存在留空)。
	键:通常将表中的某一个字段的值设定成唯一的值,用来区分不同的记录。(学生的学号就可以唯一区分一个学生)

2.登录和退出MySQL

在命令行中使用如下的语法格式命令行:

mysql -u user_name -p password -h host

-u:用来指定用户名user_name。
-p:用来指定该用户名登录MySQL所使用的密码password。
-h:用来指定所要连接的数据库服务器host。

root一般表示MySQL的超级管理员用户,拥有操作MySQL的最高权限。

这里我已经将MySQL文件下的bin配置了系统环境变量(这样可以直接输入命令操作数据库)。
在这里插入图片描述
show database :可以展示已经有的数据库。
CREATE DATABASE data_name; ----->创建数据库
DROP DATABASE data_name; ---->删除数据库
展示:(不知道这个删除成功没有,自己尝试ing)
在这里插入图片描述

3.表的查看与建立

a.查看表

USE database_name :可以转到要管理或查看信息的数据库,data_name为数据库名称。
SHOW TABLES :可以查看某个数据库下的所有表。

在这里插入图片描述

b.创建表
CREATE TABLE table_name(
column_1 type [modifiers]
[, column_2 type [modifilers]
..
);

table_name:表名
column_1:表的第一列,即第一个字段的名字:
type:该字段的类型,其后是可选项,是对该字段的进一步说明。

每一列创建语句后必须以逗号结尾。

CREATE TABLE USers(
UserId INT UNSIGNED NOT NULL,
UserName VARCHAR(50) NOT NULL,
Gender CHAR(6) NOT NULL DEFAULT 'Male',
RegTime DATE NOT NULL
);

上面语句:创建了一个名为Users的表,有四个字段,UserId,UserName,Gender,RegTime;
NOT NULL:不允许存入任何NULL值,
DEFAULT:指定一个字段的默认值。

4.建立索引

在数据量很大的时候,为了减少MySQL查找记录使用的时间,可以为那些要频繁查找的字段建立索引.
在这里插入图片描述
INDEX:是建立索引的关键字,
index_name:索引的名称。
(应该将所有建立索引的字段声明为NOT NULL。)

CREATE TABLE books(
id INT NOT NULL,
name VARCHAR(40) NOT NULL,
price DECIMAL(3,2),
INDEX idx(id)
);

MySQL支持主键这种特殊的索引。在MySQL中,主键是带有名称PRIMARY的唯一键。
在创建表的时候,可以将某列设为主键。

CREATE TABLE users(
id INT NOT NULL PRIMARY KEY,
name VARCHAR(30),
creater_time DATE
);

MySQL中的SQL语法基础

SQL(Structured Query Language):结构化查询语言。

1.查看表结构

利用上面的USE database_name 切换数据库,查看表可以用show tables 。
若要查看某个表的结构就可以用:DESCRIBE命令(可以简写成DESC)实现。
在这里插入图片描述

2.插入数据

使用INSERT语句向表中插入数据。

INSERT INTO table_name(column_1,column_2,...) VALUES (values_1,values_2,.....);

第一种写法:(这里可以省略表名后面括号的内容,但是这样就必须按照顺序写入数据)
在这里插入图片描述
第二种写法:

INSERT INTO Users SET UserId=125,UserName='David',Gender='Male',RegTime='2019-10-24 12:50:23';

在这里插入图片描述

3.查询数据

使用SELECT语句

SELECT column_1,column_2,...  FROM table_name [WHERE clause];

where 子句可以选择的,表示按某种条件查询表中的特定的记录。
(*):表示查看所有的项。
在这里插入图片描述
这里是从Users表中,查找UserId和UserName两项。
在这里插入图片描述

4.条件查询

通过使用 WHERE 语句(通常是用来搜索字段)选择出 UserId 大于123 的用户。
在这里插入图片描述
查找UserName 为 Tom 的记录。
在这里插入图片描述
WHERE 子句可以同时出现多个条件,条件之间可以使用AND或OR 逻辑运算符连接。

查找UserId 大于123 并且小于 125 的用户记录(哈哈哈 这里当然可以直接写UserName=‘124’)。
在这里插入图片描述

5.更新数据

使用 UPDATE 语句完成对表中数据的修改

UPDATE table_name SET column_1=value_1,column_2=value_2,.... [WHERE clause];

这里是将UserId=123 的用户名更新为:Mark。
在这里插入图片描述

6.删除数据

使用 DELETE 语句删除表中的数据。

DELETE FROM table_name [WHERE clause];

在删除数据时,如果没有 where 子句,表中的数据会在没有任何提醒的情况全部删除!!!

在这里插入图片描述

7.对查询结果排序

MySQL中,执行SELECT 语句所生成的结果的默认顺序由其出现的顺序决定。
使用 ORDER BY 子句可以完成对查询结果的排序。有两种排序方式,ASC表示升序排序,DESC表示降序排序.
为了方便排序,增加了几项数据。
在这里插入图片描述
使用ORDER BY 子句 对UserId 升序排序(…这里默认是升序哟)。
在这里插入图片描述
再来个降序:
在这里插入图片描述

8.对查询结果分组

使用 GROUP BY 进行分组 。
这里我们通过性别进行分组:
在这里插入图片描述

9.对查询结果进行限定

除了 WHERE 子句外,MySQL还提供了两个SQL的通用方法用于查询条件,LIMIT和HAVING。
这个两个子句主要是为已有的查询结果设置限定条件,从已有的数据结果进一步选出所需要的数据。

LIMIT

用来限定查询返回的记录条数。
LIMIT 3 :表示返回查询结果中的前3行记录。
LIMIT 0,10 :表示从查询结果中的第一行开始,返回10行记录。

对UserId 降序排序后,返回前3行记录:
在这里插入图片描述

HAVING

HAVING 子句通常与 分组有关,即和GROUP BY 子句有关。它是在SELECT 语句查询出结果后才开始做条件限定。
创建下面的表:
在这里插入图片描述
通过调用 HAVING 等语句查找薪水在5000.00以上的级别:
在这里插入图片描述
我的测试结果:
在这里插入图片描述

10.MySQL的数据类型


数据类型 说明
INT 整数值,MySQL支持有符号或无符号整数值,用UNIGNED INT 指定无符号整数值。
DECIMAL 指定数字值的精度和范围,如DECIMAL (5,2)。
REAL 浮点数值
CHAR 定长字符类型,定义为CHAR类型的字段不能保存长度大于指定长度的字符串,多于部分会被截断,短于指定长度的字符串,会用空白补足指定的长度后存入表中
VARCAHR 变长字符串,指定长度范围1~255
TEXT 文本类型,存放更长的文本型数据。
DATE 日期值
TIME 时间值,存放的是与日期无关的一天中的任何时间。
DATATIME MySQL支持,用于存放日期和时间的类型

11.MySQL中的模式匹配

SQL中的模式匹配是根据一个不完整的字符串,查找字段的值。‘J%’可以用来查找J字母开头,
模式匹配表达式中,不能使用基本的比较运算符,只能使用LINK 或 NOT LINK运算符。


模式 说明
% 匹配任意多字符,如Mar%可以匹配 Martin,Mars,Mark等
. 匹配任意单一字符,如 .ike 可以匹配bike,dike,like…等
* 匹配前面的字符的0个或多个 ,如cofe 可以匹配 cofe,coffe,cofffe …等
^ 匹配^后的字符(或字符串) 为开头的字符串,如^MySQL 可以匹配MySQL guide,MySQL 教材 …等

12.使用MySQL函数

在这里插入图片描述

a.集合函数

COUNT():函数
统计人数:
在这里插入图片描述
统计以字母J 开头的姓名的人数:
在这里插入图片描述
MAX()函数:
薪水最高的记录:
在这里插入图片描述
MIN()函数:找最小值
SUM()函数:求和
AVG()函数:求平均值
在这里插入图片描述

b.字符串处理函数

LENGTH(‘字符串’):字符串长度
SUBSTRING(string,pos,len):截取字符串

c.日期函数

YEAR( time):返回年份
UNIX_TIMESTAMP():获取一个UNIX时间戳。
DATE_FORMAT(data,format):格式化一个日期。
NOW(): 返回当前系统时间。

发布了28 篇原创文章 · 获赞 11 · 访问量 2422

猜你喜欢

转载自blog.csdn.net/Y_an_Y/article/details/102717860