/*
查看数据库
*/
USE da1;-- 切换数据库
USE db1;
SELECT DATABASE();-- 查询当前使用的数据库
SHOW DATABASES;-- 查看当前mysql中都有哪些数据库
SHOW CREATE DATABASE db1;-- 查看一个数据库的定义信息
Mysql四种自带的数据库
3. 修改与删除数据库
修改数据库的字符集
命令
说明
alter database 数据库名 character set 字符集;
数据库的字符集修改操作
drop database 数据库名
从MySql中永久的删除某个数据库
ALTER DATABASE da1 CHARACTER SET utf8;
DROP DATABASE da1;-- 慎用!
DDL操作 数据表
Mysql常见的数据类型
类型
描述
int
整型
double
浮点型
varchar
字符串型
date
日期类型,格式为 yyyy-MM-dd ,只有年月日,没有时分秒
Mysql中的char类型是固定长度,根据定义的长度分配空间;而varchar类型是可变长度
1. 创建表
语法格式:
CREATE TABLE 表名(
字段名称 字段类型(长度),
字段名称 字段类型 --最后一列不用,
);
-- 代码示例:
CREATE TABLE table1(
NAME CHAR(10),
age INT,
ALTER TABLE table1 ADD TIME DATE
);
-- 创建一个和table1相同的表(结构,内容并未拷贝)
CREATE TABLE table2 LIKE table1;
2. 查看表
命令
说明
show tables;
查看当前数据库中的所有表名
desc 表名;
查看数据表的结构
SHOW TABLES;
DESC table1;
SHOW CREATE TABLE table2;
3. 删除表(结构 drop)
命令
说明
drop table 表名;
删除表(从数据库中永久删除某一张表)
drop table if exists 表名;
判断表是否存在, 存在的话就删除,不存在就不执行删除
DROP TABLE IF EXISTS table2;
4. 修改表
/*
修改表的名称
修改表的字符集
修改列(数据类型、长度、名称)
向表中添加、删除列
*/
-- 改名
RENAME TABLE table1 TO newtable;
-- 修改字符集
ALTER TABLE newtable CHARACTER SET gbk;
-- 修改表中字段的长度
ALTER TABLE newtable MODIFY NAME VARCHAR(20);
-- 修改列的名称
ALTER TABLE newtable CHANGE NAME newname VARCHAR(20);
-- 添加字段
ALTER TABLE newtable ADD sex CHAR;
-- 删除字段
ALTER TABLE newtable DROP sexx;
2.5 DML操作表中数据(30%)
使用DML对表中进行增、删、改操作
1. 添加操作
语法格式:insert into 表名(字段名1,字段名2)values(字段值1,字段值2);
-- 方式1:
INSERT INTO table1(name1,age)VALUES("张三",11);
-- 方式2:不写字段名,直接写数据:
INSERT INTO table1 VALUES("李四",12);
-- 方式3:插入指定字段:
INSERT INTO table1 (name1)VALUES("李四");
2. 更改数据
语法格式:updata 表名 set 字段名 =字段值 where 字段名=值;
UPDATE table1 SET name1='张张张';
UPDATE table1 SET name1='王' /*可用,修改多个字段*/WHERE age=11;
-- 空字段:
UPDATE table1 SET name1='李李李' WHERE age IS NULL;
#DQL简单查询
SELECT * FROM table1;
SELECT name1 FROM table1;
-- 别名查询(AS) as可省略
SELECT name1 AS '姓名' FROM table1;
SELECT name1 '姓名' FROM table1;
-- 去重操作(distinct)
SELECT DISTINCT name1 FROM table1;
-- 实现将查询的值再次操作
SELECT name1,age+100 AS age FROM table1;
2. 条件查询
运算符
说明
> < <= >= = <> !=
大于、小于、大于(小于)等于、不等于
BETWEEN …AND…
区间之间
IN(集合)
集合表示多个值,使用逗号分隔
LIKE ‘%张%’
模糊查询
IS NULL
查询某一列为NULL的值, 注: 不能写 = NULL
%
表示匹配任意多个字符串,
_
表示匹配 一个字符
3. 排序(order by)
语法结构:select 自动名 from 表名 [where] order by 字段名称 [asc/desc]
-- 单列排序
SELECT * FROM table1 ORDER BY age;
SELECT * FROM table1 ORDER BY age DESC;
-- 组合排序,如果第一个字段相同,按第二个字段排
SELECT * FROM table1 ORDER BY name1,age DESC;
4. 聚合函数
聚合函数:将一列数据作为一个整体,进行纵向的计算
语法结构:select 聚合函数(字段名) from 表名;
聚合函数
作用
count(字段)
统计指定列不为NULL的记录行数
sum(字段)
计算指定列的数值和
max(字段)
计算指定列的最大值
min(字段)
计算指定列的最小值
avg(字段)
计算指定列的平均值
/*
聚合函数:将一列数据作为一个整体,进行纵向的计算
*/
SELECT COUNT(*) FROM table1;-- 忽略Null字段
SELECT SUM(age) FROM table1;
SELECT AVG(age) AS '王的平均年龄' FROM table1 WHERE name1='王';
-- 查询所有名称
SELECT name1 AS '名称个数' FROM table1 GROUP BY name1;
-- 查询每个名称的平均年龄
SELECT name1 AS '名称',AVG(age) AS '平均年龄' FROM table1 GROUP BY name1;
-- 查询平均年龄>50的名称
SELECT name1 AS '名称',AVG(age) AS '平均年龄' FROM table1 GROUP BY name1 HAVING AVG(age) >50;
6. Limit关键字
分页查询,限制查询返回的行数。语法格式:
select 字段名 from 表名 limit offset,length;
offset:起始行数,默认从0开始;length:返回行数;
-- 查看前5条数据
select * from table1 limit 5;
-- 分页查询,每页显示5条数据:
select * from table limit 0,5;
select * from table limit 5,5;
select * from table limi 10,5;
-- 起始行数=(当前页-1)*每页行数
查询,限制查询返回的行数。语法格式:
select 字段名 from 表名 limit offset,length;
offset:起始行数,默认从0开始;length:返回行数;
-- 查看前5条数据
select * from table1 limit 5;
-- 分页查询,每页显示5条数据:
select * from table limit 0,5;
select * from table limit 5,5;
select * from table limi 10,5;
-- 起始行数=(当前页-1)*每页行数