MySQL
一、MySQL简介
1、什么是MySQL
MySQL是最流行的开源RDBMS,在WEB应用方面是最好的RDBMS应用软件之一。
MySQL是一种关联数据库管理系统,将数据保存在不同的库中,每个库可包含对个表,每个表中可以有多行多列的数据。
关系型数据库的数据结构:
Server(服务器) -> Database(数据库) ->Table(表) -> Row(行) -> Column(列)
XAMPP(服务器软件套装) = Apache + MySQL/MariaDB + PHP 下载:https://www.apachefriends.org/zh_cn/index.html |
2、关系型数据库MySQL的使用
最流行的开源数据库,目前有两个分支: MySQL 和 MariaDB
使用MySQL数据库系统的步骤:
(1)下载并安装MySQL服务器端程序
C:\xampp\mysql\bin\mysqld.exe
Deamon 精灵、守护者、守护程序、服务器程序
(2)启动MySQL服务器端程序
双击mysqld.exe或者点击“启动”按钮,只要确保3306端口被mysqld.exe占用即可
-----------------------------------------------
(3)下载并安装MySQL客户端程序,可以选择下列三者之一
(3.1)命令行界面工具
C:\xampp\mysql\bin\mysql.exe -uroot 没有分号回车即可进入!!
(3.2)桌面版本工具
(3.3)网页版本工具
http://127.0.0.1/phpmyadmin/
(4)发送SQL命令给服务器执行,例如:
show databases; SQL命令都以分号结尾!!
(5)使用客户端程序连接服务器端
交互模式: mysql -uroot
脚本模式: mysql -uroot < e:/xx.sql
(6)交互模式:运用cmd命令查看执行效果:步骤
mysql -uroot//直接回车,打开MySQL服务
show databases;//查看数据库
use 数据库名 ; //关联数据库
show tables //查看表名
//insert delete update select\ //增删改查
insert into 表名 values(null,'title','content',); //增加(插入)数据
delete from news where nid = 1; //删除数据
select * from nwes; //查询
update news set title='aaa' where nid=1; //更新
如图所示:
二、SQL语言
1、SQL语言简述
SQL:Strutured Query Language,一种专用于操作关系型数据库的语言,可以实现“增删改查”数据库服务器中的数据。
执行SQL语句的两种方式:
(1)交互模式: mysql -uroot 输入一行执行一行 —— 适用于临时少量操作数据
(2)脚本模式:把多条SQL命令写在一个文本文件中,一次性全部提交给服务器执行 ——适用于临时大量操作数据
Mysql-uroot<d:/jd.sql 小于号表示“导入”
2、SQL语句
1、DDL:数据定义语言,用于定义数据的结构
1、CREATE:用于创建数据库对象,如库,表,视图等
CREATE DATABASE tarena_oa CHARSET utf8;
CREATE TABLE emp(id INT,name VARCHAR(32));
2、DROP:用于丢弃数据库对象,如库、表、视图等
DROP DATABASE IF EXISTS tarena_oa;
DROP TABLE emp;
3、ALTER:用于修改数据库对象定义
4、TRUNCATE:用于截断表中所有记录
2、DML语句:数据操作语言,用于操作数据表中的数据。
- INSERT:向表中插入一行或者多行记录
INSERT INTO emp(id,name) VALUES(88,’LING’) 或者写作
INSERT INTO emp(id,name);INSERT INTO emp VALUES(88,’kinbg’) 分开写
2.DELETE:删除表中的记录
DELETE FROM emp; /*删除所有记录*/
DELETE FROM emp WHERE id=88;/*删除一行记录*/
4.UPDATE:修改表中的记录
UPDATE emp SET name=’kane’ WHERE id=88;
3、DQL语句
DQL语句数据查询语言,用于查询数据:
SELECT :查询表中记录
SELECT id,name FROM emp; /*查询所有记录行中id和name两列上的值*/
SELECT id,name FROM emp WHERE id=88
/*查询某行记录中额id和name两列上的值*/
4、DCL语句
数据控制语言,控制用户的权限。
GRANT、REVOLE
3、SQL语言的实际运用和注意点
/*SQL命令不区分大小写,习惯上关键字都大写,非关键字小写,但结尾必须分号*/
/*SQL中的多行注释*/
#单行注释
1、指定后面的SQL 语句所用的字符编码方式
SET NAMES UTF8; #SQL中UTF-8必须写作UTF8!
2、数据库的数据结构:服务器 > 库 > 表 > 行 > 列
3、删除指定的数据库,如果存在的话
DROP DATABASE IF EXISTS tedu;
4、创建新的数据库,并指定储存数据所用的字符编码
CREATE DATABASE tedu CHARSET=UTF8;
5、开始使用指定数据库
USE tedu;
6、创建保存学生信息表格
CREATE TABLE student(
sid INT PRIMARY KEY AUTO_INCREMENT, #主键列,数据是唯一的 自增列
stuName VARCHAR(4), #字符长度的设定
sex VARCHAR(1),
score FLOAT(4,1), #小数位数的设定
birthday DATE
);
7、向表中插入记录行,SQL中的字符串/日期必须使用单引号;数字可用可不用
INSERT INTO student VALUES(1,’大旭’,’男’,’190’,’1991-10-1’);
INSERT INTO student VALUES(2,’东东’,’男’,’213’,’1991-12-3’);
8、修改指定的记录行——最难记的语句?
UPDATA student SET stuName =’大东’,score=’230’,birthday=’1993-3-2’ WHERE sid =2;
#SQL中判断相等只用一个等号
9、删除指定的记录行
#DELETE FROM student; #删除所有记录
DELETE FROM student WHERE sid=1;#删除满足条件的行
10、查询出学生表中所有的记录行
SELECT sid ,stuName,sex,score,birthday FROM student;
11、查询符合条件的记录行
SELECT sid,stuName,sex,score,birthday FROM student WHERE sid=2;
#判断条件 < > <= >= !=
#(1)设置编码方式
SET NAMES UTF8;
#(2)试着删除数据库
DROP DATABASE IF EXISTS ibm;
#(3)创建数据库-ibm,指定保存数据所用编码方式
CREATE DATABASE ibm CHARSET=UTF8;
#(4)开始使用数据库-ibm
USE ibm;
#(5)创建一个部门表-dept(did,dname,location)
CREATE TABLE dept(
did INT PRIMARY KEY,
dname VARCHAR(32),
location VARCHAR(8)
);
#(6)插入三个部门记录行,10-.... 20-.... 30-....
INSERT INTO dept VALUES('10','市场部','北京');
INSERT INTO dept VALUES('20','运营部','青岛');
INSERT INTO dept VALUES('30','市场部','青岛');
#(7)创建一个员工表-emp(eid,ename,salary,hireDate,isOnDuty,deptId )
CREATE TABLE emp(
eid INT PRIMARY KEY AUTO_INCREMENT,
ename VARCHAR(32),
salary FLOAT(8,2), #999999.99
hireDate DATE,
isOnDuty BOOLEAN,
deptId INT
);
#(8)为每个部门插入两个员工记录
INSERT INTO emp VALUES(
NULL,'Tom','5000','2010-5-1','1','30'
);
INSERT INTO emp VALUES(
NULL,'Mary','5500','2010-5-2','1','30'
);
INSERT INTO emp VALUES(
NULL,'Joe','6000','2010-5-3','0','10'
);
INSERT INTO emp VALUES(
NULL,'King','8000','2010-5-10','1','10'
);
INSERT INTO emp VALUES(
NULL,'Scott','7000','2009-1-1','0','20'
);
INSERT INTO emp VALUES(
NULL,'Kate','7500','2009-1-2','0','20'
);
#删除10号部门及其下的所有员工
DELETE FROM dept WHERE did=10;
DELETE FROM emp WHERE deptId=10;
#把30号部门编号改为300号,记得修改员工表
UPDATE dept SET did=300 WHERE did=30;
UPDATE emp SET deptId=300 WHERE deptId=30;
#(9)查询出所有的部门信息
SELECT did,dname,location FROM dept;
#(10)查询出运营部的编号
#SELECT did FROM dept WHERE dname='运营部';
#(11)查询出所有的员工信息
SELECT * FROM emp;
#(12)查询出20号部门的所有的员工信息
#SELECT * FROM emp WHERE deptId=20;
#(12)查询出运营部的所有员工信息——查询嵌套
/*SELECT *
FROM emp WHERE deptId=(
SELECT did FROM dept WHERE dname='运营部'
);*/