1.mysql的入门基本使用
1.登陆Mysql数据库
mysql -u root -p 密码
2.展示(查询)所有数据库
show databases;
3.进入数据库
use dataname;
4.创建数据库
create database dataname;
2.操作数据规则
2.1 DML:
它们是**UPDATE、INSERT、DELETE,**就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言
查询表为 person(表名) 的所有内容(查询)
select * from person;
插入一条数据(添加)
insert into person(name,age) value('zhagnsan',23);
为id为1的添加name(修改)
update person set name = '张三' where id=1;
删除id为1的数据(删除)
delete from person where id = 1;
2.2 DDL:
主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用
对表结构修改
create table tablename(name varchar(32),age int);//创建表(字段)
alter table //删除添加修改表
alter table person add home varchar(32);
alter table person drop home varchar(32);
desc person //查看表结构
2.3 DCL:
是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有
sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL
select columnlist //列名
from table_list //哪些表获取数据
where condition //过滤数据的条件
group by grouping //分组条件
having condition //对分组结果进行过滤
start,limit //对结果进行限定
查询需求如下:
–条件:年龄为奇数
按home 分组
查询分数最高的 并且大于80分
只返回一条
查询person表中的age为奇数的以home分组并且age为1的 查询一条
select age from person where age%2=1 group by home having age=1 limit 1;
2.4 DQL:
它们是SELECT就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言
(1)列(字段)控制
①:查询所有列
select * from 表名; //其中 * 表示查询所有列
②:查询指定 列()
select 列1 [,列2,列3...] from 表名;
③:完全重复的记录只显示一次
select distinct 列名 from 表名;
④:列运算
* 数值类型的列可以做加、减、乘、除运算
>select 列名+2 from 表名; 把这个列的值加上2
* 字符串类型的列可以做连续运算
>select concat('***',列名) from 表名; 在这个列值前面拼接上3个***
* 转换NULL值
有时候需要把null转换为其他值再来做运算或者赋值,如果该列存在null值,做运算还是null,这时就希望把该列的null值转化为0或者其他值再来做运算
>select ifnull(列名,想要转化为什么样的值) from 表名;
* 给列起别名
>select ifnull(列名,0)+100 AS 别名 from 表名; AS 可以省略不写
(2)条件控制:
(2.1)条件查询
与前面的讲的UPDATE和DELETE的语句一样,SELECT语句也可以使用 WHERE关键字来控制条件
* SELECT 列名1,列名2... 列名n FROM 表名 WHERE 条件;(age>10 AND name IS NOT NULL)
(2.2)模糊查询
当你想查询姓cao的name时,这时就可以使用模糊查询
* SELECT * FROM 表名 WHERE name LIKE '黄_';( 1 个下划线代表 1 个字符)
:查询限制了字符长度
* SELECT * FROM 表名 WHERE name LIKE '黄%';( % 匹配 0...n 个字符)
:查询不限制字符长度
* SELECT * FROM 表名 WHERE name LIKE '%小%';(name 中有"小"的所有数据)
二:排序:order by 排序的关键字
(1)升序
* SELECT * FROM 表名 ORDER by 列名 ASC;(ASC :升序)
>按照 列名 来做排序---升序
>其中ASC可以省略(建议不要省略)
(2)降序
* SELECT * FROM 表名 ORDER BY 列名 DESC; ( DESC : 降序)
>按照 列名 来做排序---降序
>其中DESC不可以省略
(3)多列排序
SELECT * FROM 表名 ORDER BY 列名1 ASC ,列名2 DESC;
三:聚合函数:聚合函数用来做某列的纵向运算
(1)COUNT
SELECT COUNT(*) FROM 表名;
>计算表中列不全为NULL的记录的行数(有效记录)
SELECT COUNT(列名) FROM 表名;
>计算表中指定的列中值不为NULL的记录的行数
(2)MAX
SELECT MAX(列名) FROM 表名;
>计算指定列中的最大值
(3)MIN
SELECT MIN(列名) FROM 表名;
>计算指定列中的最小值
(4)SUM
SELECT SUM(列名) FROM 表名;
>计算指定列中的所有值的总和
(5)AVG
SELECT AVG(列名) FROM 表名;
>计算指定列中所有值总和的平均值
四:分组查询
分组查询是把所有记录使用某一列进行分组,然后查询组信息
例如:
SELECT age,COUNT(*) FROM 表名 GROUP BY age;
>按照年龄进行分组,查询各个年龄的记录数
SELECT sex,MAX(age) FROM 表名 GROUP BY sex;
>按照性别进行分组,查询每组性别中的最大年龄
SELECT 列名 ,COUNT(*) FROM 表名 GROUP BY 列名 HAVING COUNT(*) > 3;
>按照性别分组,查询每组的记录数 大于 3 条记录数,
五:limit字句(方言—只有MySql有)
LIMIT 用来限定查询结果的起始行,以及总行数
例如:查询起始行为第3行,一共查询4行记录
SELECT * FROM 表名 LIMIT (pageIndex - 1)* pageCount , pageCount;
>其中2表示从第三行开始查,4表示查询4条记录,即:第3、4、5、6条记录
limit 被用来做数据分页查询