目录
- MySQL数据库
- MySQL
- MySQL数据库的基本操作
- 1.表,字段,记录和键
- 2.登录和退出MySQL
- 3.表的查看与建立
- a.查看表
- b.创建表
- 4.建立索引
- MySQL中的SQL语法基础
- 1.查看表结构
- 2.插入数据
- 3.查询数据
- 4.条件查询
- 5.更新数据
- 6.删除数据
- 7.对查询结果排序
- 8.对查询结果分组
- 9.对查询结果进行限定
- LIMIT
- HAVING
- 10.MySQL的数据类型
- 11.MySQL中的模式匹配
- 12.使用MySQL函数
- a.集合函数
- b.字符串处理函数
- c.日期函数
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(): 返回当前系统时间。