MySQL
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
数据库(Database):
数据库也是一种软件。
可以动态的对数据库润健创建的数据库,进行修改查询。
常用的数据库:
mysql,oracle,sqlserver,DB2数据库(IBM)
数据库的安装:
mysql一步一步安装即可。
Oracle1安装注意,安装出错就要重装系统。
一般的数据库软件都有对饮搞得客户端,通过客户端连接数据库
安装完成后在服务里面启动服务:
SQL语言:
SQL(Structured Query Language)结构化查询语言
-----------------------------------------------------------------------------------------------------------------------------------------------
MySQL语言分类:
SQL DML 和 DDL:
可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。
SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。
查询和更新指令构成了 SQL 的 DML 部分:
- SELECT
- UPDATE
- DELETE
- INSERT INTO
SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。
SQL 中最重要的 DDL 语句:
- CREATE DATABASE
- ALTER DATABASE
- CREATE TABLE
- ALTER TABLE
- DROP TABLE
- CREATE INDEX
- DROP INDEX
---------------------------------------------------------------------------------------------------------------------------------------------------
SQL SELECT 语法:
SELECT 列名称 FROM 表名称
- example:
我们建立了一个user用户表,并且在各个字段插入value。
查询结果为:
我们也可以对某个满足条件的字段查询:
查询结果:
SQL SELECT DISTINCT 语句
在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。
关键词 DISTINCT 用于返回唯一不同的值。
语法:
SELECT DISTINCT 列名称 FROM 表名称
- example:
查询结果为:
WHERE 子句用于规定选择的标准。
WHERE 子句
如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。
语法
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
下面的运算符可在 WHERE 子句中使用:
操作符 | 描述 |
= | 等于 |
<> | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
BETWEEN | 在某个范围内 |
LIKE | 搜索某种模式 |
注释:在某些版本的 SQL 中,操作符 <> 可以写为 !=。
- example:详细见例子1
AND 和 OR 运算符用于基于一个以上的条件对记录进行过滤。
AND 和 OR 运算符
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
- example:
查询结果为:
Update 语句
Update 语句用于修改表中的数据。
语法:
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
- example:
查询结果:
DELETE 语句
DELETE 语句用于删除表中的行。
语法
DELETE FROM 表名称 WHERE 列名称 = 值
- example:
查询结果:
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
LIKE 操作符
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
一般LIKE和通配符使用:
SQL 通配符
在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。
SQL 通配符必须与 LIKE 运算符一起使用。
在 SQL 中,可使用以下通配符:
通配符 | 描述 |
% | 替代一个或多个字符 |
_ | 仅替代一个字符 |
[charlist] | 字符列中的任何单一字符 |
[^charlist] 或者 [!charlist] | 不在字符列中的任何单一字符 |
- example:
查询结果:
SQL别名:
语法:select coll(as) 别名,coll(as)别名 from 表名 where 条件
- example:
查询结果:
ORDER BY 语句用于对结果集进行排序。
ORDER BY 语句
ORDER BY 语句用于根据指定的列对结果集进行排序。
ORDER BY 语句默认按照升序对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
- example:
这里我们用另外一个table tablename is emp.
我们将对sal字段进行排序:
查询结果如下:
现在我们看看分别对两个字段进行排序,看看又会是怎么样呢?
查询结果:
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
INSERT INTO 语句
INSERT INTO 语句用于向表格中插入新的行。
语法
INSERT INTO 表名称 VALUES (值1, 值2,....)
我们也可以指定所要插入数据的列:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
- example:详细见例子1
- ------------------------------------------------------------------------------------------------------------------------------------------------------------
SQL 拥有很多可用于计数和计算的内建函数。
函数的语法
内建 SQL 函数的语法是:
SELECT function(列) FROM 表
函数的类型
在 SQL 中,基本的函数类型和种类有若干种。函数的基本类型是:
- Aggregate 函数
- Scalar 函数
函数 | 描述 |
返回某列的平均值 | |
返回某列的行数(不包括 NULL 值) | |
返回被选行数 | |
LOWER(column) | 返回在指定的域中的字母换成小写 |
UPPER(column) | 返回在指定的域中的字母换成大写 |
返回某列的最高值 | |
返回某列的最低值 | |
LENGHT(str) | 返回某个字符的长度 |
SUBSTR(str , pos ,len) | 切取字符 |
返回某列的总和 |
代码笔记:
/*ORDER BY
ASC 升序
DESC 降序
*/
SELECT * FROM emp ORDER BY sal ASC;/*以empno排序*/
SELECT * FROM emp ORDER BY sal DESC,deptno DESC;/*ORDER BY 排序只能作用于第一个排序的字段**/
/*常用函数*
*LOWER(str):转小写
*UPPER(str):装换成大写
*CONCAT(str1,str2,...):把字段连接起来
*LENGTH(str):字符串的长度
*SUBSTR(str,pos,len):切取字符
*ROUND(X,D):指定四舍五入到小数点后几位,可以用负数指定前几位
*TO_NUMBER(num):把数字字符串转换成数字
*TO_CHAR(str,格式):按指定格式格式化字符串
*/
SELECT LOWER(dname) FROM dept WHERE deptno=30;
SELECT UPPER(dname) FROM dept WHERE deptno=30;
set @num='sssss';
SELECT LENGTH(@num);
SELECT SUBSTR(@num,1,5);
SELECT dname,SUBSTR(dname,1,1) FROM dept;
SELECT empno ,TO_DAYS(??) FROM emp;
/**分组函数
*AVG(str):计算平均值
*MAX(expr):最大值
*/
SELECT*FROM emp;
SELECT AVG(sal) FROM emp;
SELECT AVG(sal) FROM emp WHERE sal>(SELECT AVG(sal) FROM emp);
SELECT COUNT(*) FROM emp;
SELECT MAX(sal) FROM emp;
SELECT MIN(sal) FROM emp;
SELECT SUM(sal) FROM emp;
/*********插入数据**********/
INSERT INTO user VALUES(1,'秦博',0,321654,1);
INSERT INTO user VALUES(2,'杜良思',0,321654,1);
INSERT INTO user VALUES(3,'熊东超',0,321654,2);
INSERT INTO user VALUES(4,'陈燧',0,321654,3);
INSERT INTO user VALUES(5,'范明珠',1,321654,4);
INSERT INTO user(userId,userName,userSex,password,flag) VALUES(6,'唐家伟',0,454545,5);
INSERT INTO user(userId,userName,userSex,password,flag) VALUES(7,'苟朋',0,545454,6);
INSERT INTO user(userId,userName,userSex,password,flag) VALUES(8,'苟朋',0,545454,6);
INSERT INTO user(userId,userName,userSex,password,flag) VALUES(8,'苟朋',0,545454,6);
SELECT * FROM user;
UPDATE user SET userSex=1 WHERE userName='范明珠';
/*查找表中女孩子1位女0男*/
SELECT userName FROM user WHERE userSex=1;
/**给查询出来的字段去别名**/
/*语法:select coll(as) 别名,coll(as)别名 from 表名 where 条件*/
SELECT userName as '小仙女' FROM `user` WHERE userName='范明珠';
SELECT userName as '帅哥',password as '密码' FROM user WHERE userId=1;
/*在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。
DISTINCT所有字段一样的只显示一条记录
*/
SELECT DISTINCT * FROM user;
/**实例(查询table中所有的不同密码)*/
SELECT DISTINCT password FROM `user`;
/*如果多个字段的话,表示当这个结果字段一样的话保留一条*/
/*语法:select coll(as) 别名,coll(as)别名 from 表名 where 条件*/
SELECT DISTINCT userName as 'USER',password as 'USER1' FROM user;
/**WHERE条件(=,!=,<>,<,><=,>=,ANY(任意一个),SOME(任何一个),ALL(所有))
BETWEEN(在某个范围内),
LIKE( 搜索某种模式模糊查询)*/
/**IS NULL 和 IS NOT NULL 都是查询状态*/
SELECT userId FROM `user` WHERE userName IS NULL;
SELECT * FROM user;
/*LIKE*/
/*
* %(任意个任意字符)
* _(代表任何一个字符)
*/
SELECT password FROM `user` WHERE `password` LIKE '%5%';
/*NOT ,AND ,OR
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
*/
SELECT userName FROM `user` WHERE userId>5 AND userId<=7;
SELECT * FROM `user` WHERE userId>5 OR userName LIKE '秦博';
DELETE FROM `user` WHERE userId>3;/*删除ID>3的每条信息*/