MySQL是当今主流的关系型数据库管理系统(记录是有行有列的数据库) , 可以与Oracle 和SQL Server 竞争 , 是最好RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一 ,主要使用5.5左右版本, MySQL、Oracle 等并不是数据库,只是数据库管理软件(数据库就是存储数据的仓库,本质是一个文件系统,用户通过SQL进行增删查改) 。
数据库是一组数据的集合,可以包括很多张表,相当于家和家人的关系
用户通过数据库管理系统访问数据库中表内的数据。(记录)
rpm命令使用 : rpm -ivh gcc-c++-4.4.7-3.el6.x86_64.rpm
常用参数:
i:安装应用程序(install)
e:卸载应用程序(erase)
vh:显示安装进度;(verbose hash)
U:升级软件包;(update)
qa: 显示所有已安装软件包(query all),结合grep命令使用
# rpm -qa|grep mysql
查看是否已有MySQL软件 卸载My SQL 删除mysql的数据库
rpm -qa|grep mysql yum remove mysql mysql-server mysql-libs mysql-common /var/lib/mysql
rm -rf /var/lib/mysql
rm /etc/my.cnf
使用yum 安装mysql,要使用mysql的yum仓库,从官网下载适合自己系统的仓库 http://dev.mysql.com/downloads/repo/yum/
5.6版本 mysql-community-release-el6-5.noarch.rpm
使用命令 yum localinstall mysql-community-release-el6-5.noarch.rpm 将 mysql-community-release-el6-5.noarch.rpm上传到linux系统。
安装 : yum install mysql-community-server
启动MySQL : service mysqld start
为root用户设置密码 : /usr/bin/mysqladmin -u root password ‘new-password‘
远程连接授权 : mysql>GRANT ALL PRIVILEGES ON *.* TO ‘myuser‘@‘%‘ IDENTIFIED BY ‘mypassword‘ WITH GRANT OPTION; //‘myuser‘、‘mypassword‘ 需要替换成实际的用户名和密码。
设置表名大小写不敏感 : 在/etc/my.cnf 中的[mysqld] 后添加 lower_case_table_names=1 然后重启MySQL服务 , 默认0区分大小写,1不区分
重启MySQL : service mysqld restart
cmd中文乱码
修改my.ini文件,然后重启mysql服务器
SQL语句全称Structured Query Language , 简称SQL,是结构化查询语言 ,SQL用于创建,插入,更新和修改数据,分为DDL(定义),DML(操作),DCL(控制),DQL(查询)。
DDL: 创建数据库 CREATE DATABASE database-name , 删除数据库 drop database dbname ……
DML: insert into table(name,age) values(value1,value2)... delete、update
DCL:grant 权限 on 数据库.表 to 用户名@‘主机名‘ identified by ‘密码‘;
DQL: select * from table1……
排序语法关键字: ORDER BY , ASC(升序) DESC(降序) 示例: select * from student where sname like ‘%陈%‘ order by sid desc;(按学生ID降序排序)
聚合函数(只对单列进行操作) :
sum():求某一列的和
avg():求某一列的平均值
max():求某一列的最大值 示例: select count(*) from product (求总数)
min():求某一列的最小值
count():求某一列的元素个数
分组: GROUP BY HAVING
示例:select cid,avg(price) from product group by cid having avg(price)>60; //分组统计每组商品的平均价格,并且平均价格> 60
UNION操作符
WHERE条件执行顺序(影响性能)
MYSQL:从左往右去执行WHERE条件的。
Oracle:从右往左去执行WHERE条件的。
结论 : 写WHERE条件的时候,优先级高的部分要去编写过滤力度最大的条件语句
一对一(一夫一妻制度)、一对多(一个班级和多个学生)、多对多(多个学生和多个老师)、多对一(多个员工和一个部门)
示例:
关键词
CROSS JOIN(交叉连接) 显示交叉连接 :SELECT * FROM A CROSS JOIN B 隐式交叉连接: SELECT * FROM A, B
INNER JOIN(内连接或等值连接) 显式内连接: SELECT * FROM A INNER JOIN B ON A.id = B.id 隐式内连接 : SELECT * FROM A,B WHERE A.id = B.id
OUTER JOIN(外连接) 左外连接: SELECT * FROM A LEFT JOIN B ON A.id = B.id
右外连接: SELECT * FROM A RIGHT JOIN B ON A.id = B.id 左查询以左表为主表,右查询则右表为主表
关键词 : limit
SELECT * FROM table LIMIT 0,5
子查询允许把一个查询嵌套在另一个查询当中
子查询可以包含普通select可以包括的任何子句,比如:distinct、 group by、order by、limit、join和union等
select name from stuinfo where s_id in (select id from student where name = "张三");
原文:https://www.cnblogs.com/llkang/p/12098519.html