mysql数据库

  1.数据库的安装:

MySQL 下载地址:https://dev.mysql.com/downloads   

进入官网,点击DOWNLOADS

我们这里选择5.6.45版本下载,下载zip。

点击download进入:

(1)下载完成后,解压mysql压缩包,自定义目录(不能有中文和特殊字符)。

(2)为了方便使用,在cmd启动mysql时,不需要找到全路径,所以可以添加环境变量,将bin这个文件夹添加到环境变量,bin这个文件夹中有mysqld服务端,有mysql自带的一个客户端,所以添加了环境变量之后,在cmd中直接就可以使用了。然后全部点击确定后,进行下面的操作。

(3)在安装目录下新建一个my.ini文件,用Notepad++或者pycharm打开。

 在文件写入下面代码,主要是配置编码方式,你的安装目录一定要写对。完成后保存文件、关闭。

[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=E:\mysql-5.6.45-winx64
# 设置mysql数据库的数据的存放目录
datadir=E:\mysql-5.6.45-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

(4)接下来在cmd中配置服务,注意:以管理员打开cmd窗口,然后输入 mysqld --install 这样就将mysqld添加到系统服务了。

(5)使用管理员root用户登录,打开cmd

输入:mysql -uroot -p 回车

遇到password 直接回车(5.6版本默认没有密码)

mysql>set password = password(‘123’); 给当前数据库设置密码123(数据库语句以分号结尾),这样就可以修改root密码。

  2.数据库常用字段:

转自:https://blog.51cto.com/hibing/1336139

mysql数据库

mysql数据库

 

   3.数据库与表的创建:

新建数据库
右击MySQL,在弹出的下拉菜单中选择【新建数据库】;会弹出【新建数据库】窗口,填写【数据库名、字符集、排序规则】,然后点击【确定】按钮;在数据库的左侧就会出现新的数据库
新建数据表
在新创建的数据库下方有【表】,右击它,然后选择【新建表】;然后填写表的相关列行,之后点击【保存】按钮,会弹出【表名】窗口;输入自定义的表名后就会在新创建的数据库内出现一个新表

4.增删查改的SQL格式:
增:insert [into] <表名> (列名) values (列值)
删:delete from <表名> [where <删除条件>]
查:select <列名> from <表名> [where <查询条件表达试>] [order by <排序的列名>[asc或desc]]
改:update <表名> set <列名=更新值> [where <更新条件>]

5.IN 、BETWEEN 、LIKE 用法:

LIKE 操作符用于where 子句中搜索列的指定模式

IN操作符作用允许我们在where子句中规定多个值

BETWEEN操作符在where子句中使用,作用选取介于两值之间的数据范围

 6.关联查询:

嵌套查询

一、from子句嵌套
select ...from (子查询) as 别名
二、where 子句嵌套(in,exists判断的应用)
select ...from ...where ... = (子查询) -- 单值比较(=,>,<,!=等)
select ...from ...where ... in (子查询) -- 集合比较
select ...from ...where ... exists (子查询) -- 是否有存在查询记录
三、select 子句嵌套
select ...,(子查询),...from ...

总结:

子查询可看作是“表”、“多值集合”(单列)、“单值”(单列单行)
执行顺序是先内后外
嵌套在where、select的子查询是多次执行的
内外层数据列引用时遇到重名列应使用完全限定列名
嵌套查询获得的结果一般都能通过连接查询实现

7.INNER JOIN 、 LEFT JOIN 、RIGHT JOIN 、FULL JOIN 用法:

INNER JOIN 用法

内连接

满足条件的记录才会出现在结果集中

select ...form 表1 inner join 表2 on 表1.列x=表2.列y....(连接查询表1表2当表1的列表x=表2的列表y)

select...form 表1,表2 where 表1.列x=表2.列y(效果同上)

外连接

LEFT JOIN 用法

表a全部出现在结果集中,若表b无对应记录,则相应字段为null(左外连接)

select t1.*,t2.* from tb_name t1 left join tb_class t2 on t1.学号=t2.学号;

RIGHT JOIN 用法

表b全部出现在结果集中,若表a无对应记录,则相应字段为null(右外连接)

select t1.*,t2.* from tb_name t1 right join tb_class t2 on t1.学号=t2.学号;

FULL JOIN 用法

SQL FULL JOIN结合的左,右外连接的结果。

连接表将包含的所有记录来自两个表,并使用NULL值作为两侧缺失匹配结果

目前mysql不支持全连接,不过full join是一切分布式数据库都有的概念,不是mysql的概念。


8.数据库常用函数:

 一、常用函数 聚合函数

函数名 作用

AVG() 返回某字段的平均值

COUNT() 返回某字段的行数

MAX() 返回某字段的最大值

MIN() 返回某字段的最小值

SUM() 返回字段的和


用法:SELECT AVG(字段名) FROM 表名;

SELECT COUNT(字段名) FROM 表名;

SELECT MAX(字段名) FROM 表名;

SELECT MIN(字段名) FROM 表名;

SELECT SUM(字段名) FROM 表名;

这些函数可以计算一些数值,用起来会非常方便

二、字符串函数

函数名 作用 举例

CONCAT 字符串连接 SELECT CONCAT(‘my‘,‘s‘,ql‘);

(str1,str2...) 返回:mysql

INSERT 字符串替换 SELECT INSERT(‘这是SQL Server数据库‘,3,10,‘MySQL‘);

(str,pos,len,newstr) 返回:这是MySQL数据库

LOWER 将字符串转为小写 SELECT LOWER(MySQL);

(str) 返回:mysql

UPPER 将字符串转为大写 SELECT UPPER(MySQL);

(str) 返回:MYSQL

SUBSTRING 字符串截取 SELECT SUBSTRING(‘JavaMySQLOracle‘,5,5);

(str,num,len) 返回:MySQL

三、时间日期函数

函数名 作用 举例

CURDATE() 获取当前日期 SELECT CURDATE();

CURTIME() 获取当前时间 SELECT CURTIME();

NOW() 获取当前日期和时间 SELECT NOW();

WEEK(date) 返回日期date为一年的第几周 SELECT WEEK(NOW());

YEAR(date) 返回日期date的年份 SELECT YEAR(NOW());

HOUR(time) 返回时间time的小时值 SELECT HOUR(NOW());

MINUTE(time) 返回时间time的分钟值 SELECT MINUTE(NOW());

 

四、数学函数

函数名 作用 举例

CEIL(x) 返回大于或等于数值x的最小整数 SELECT CEIL(2.3);

FLOOR(x) 返回小于或等于数值x的最大整数 SELECT FLOOR(2.3);

RAND() 返回0-1之间的随机数 SELECT RAND();

 

 




mysql数据库

上一篇:python项目工具里封装(mysql、sendmail、requests)


下一篇:SqlServer 配置的那些事