HAC-John  

创建数据库操作

10.1 创建数据库
create database 数据库 数据库名
CREATE DATABASE day35;

设置数据库的编码格式
CREATE DATABASE day35 CHARACTER SET utf8


10.2: 查看mysql中所有的数据库
show databases;
查看某个库的定义的信息
show create database 数据名;

10.3删除数据库
drop database 数据库名称;

10.4: 其他的数据库操作命令
切换数据库:use 数据库名


10.5: 查看正在使用的数据库:
select database();
11 创建数据表格式
create table 表名(
字段名 类型(长度) 约束,
uid INT PRIMARY KEY AUTO_INCREMENT,// 主键自增
字段名 类型(长度) 约束
uname varchar(20),
uaddress varchar(200)
);


12约束
约束的作用:
create table 表名(
列名 类型(长度) 约束,
列名 类型(长度) 约束
);
限制每一列能写什么数据,不能写什么数据。

哪些约束:
主键约束 PRIMARY KEY AUTO_INCREMENT
> create table tabklname(
id int primary key
);
删除主键
alter table 表名 drop primary key;
非空约束
唯一约束
外键约束
13 创建用户表
需求:创建用户表,用户编号,姓名,用户的地址
14 主键约束
* A: 主键是用于标识当前记录的字段。它的特点是非空,唯一。
在开发中一般情况下主键是不具备任何含义,只是用于标识当前记录。

15 常见表的操作
15.1: 查看数据库中的所有表:
show tables;
15.2: 格式:drop table 表名;
drop table tabklname;
16 修改表结构
16.1: 修改表添加列
alter table 表名 add 列名 类型(长度) 约束;
alter table users add sex varchar(1);
16.2: 修改表修改列的类型长度及约束
alter table 表名 modify 列名 类型(长度) 约束;
alter table users modify sex varchar(2) not null;
例如:
16.3: 修改表修改列名
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
alter table users change sex gener varchar(20);
16.4: 修改表删除列
alter table 表名 drop 列名;
alter table users drop gener;
16.5: 修改表名
rename table 表名 to 新表名;
rename table users to qiang;
16.6: 修改表的字符集
alter table 表名 character set 字符集;
17 数据表添加数据_1
17.1 语法:
insert into 表 (列名1,列名2,列名3..) values (值1,值2,值3..); -- 向表中插入某些列

17.2: 添加数据格式,不考虑主键
insert into 表名 (列名) values (值)
17.3: 添加数据格式,所有值全给出
格式
insert into 表名 values (值1,值2,值3..); --向表中插入所有列

17.4: 添加数据格式,批量写入
格式:
insert into 表名 (列名1,列名2,列名3) values (值1,值2,值3),(值1,值2,值3)
mysql> insert into zhangwu values('zhichu' 1000);
mysql> insert into zhangwu values('zhich',1000);

mysql> insert into zhangwu values(6,'zhichu',500);

mysql> insert into zhangwu(zname,zmony) values('zhichu',10000),('zhichu1',-20000),('shouru',10000);


18更新数据
18.1用来修改指定条件的数据,将满足条件的记录指定列修改为指定值
语法:
update 表名 set 字段名=值,字段名=值;
update 表名 set 字段名=值,字段名=值 where 条件;
update zhangwu set zname='qiangchifanzhichu' where id='1';
19 删除数据
delete from 表名 [where 条件];
或者
truncate table 表名;
面试题:
删除表中所有记录使用delete from 表名; 还是用truncate table 表名;
20 命令行乱码问题
show variables like 'character%'; 查看mysql客户端的编码格式 *
set names gbk; ***** 只针对当前窗口有效
永久解决 找知道mysql根目录 my.ini文件
default-character-set=utf8 //客户端编码设置 default-character-set=gbk
character-set-server=utf8 修改完后 重启服务
21 数据表和测试数据准备
账务表
create table zhangwu(
id int primary key auto_increment,
zname varchar(200),
zmony double);
插入记录
insert into zhangwu(zname,zmony) values (),();
22 数据的基本查询

22.1: 查询指定字段信息
select 字段1,字段2,...from 表名;
例如:
select id,name from zhangwu;

22.2: 查询表中所有字段
select * from 表名;

22.3: distinct用于去除重复记录
select distinct 字段 from 表名;
22.4: 别名查询,使用的as关键字,as可以省略的.
别名可以给表中的字段,表设置别名。 当查询语句复杂时,使用别名可以极大的简便操作。
表别名格式:
select * from 表名 as 别名;

select * from 表名 别名;
列别名格式:
select 字段名 as 别名 from 表名;

select 字段名 别名 from 表名;
23 数据的条件查询_1
23.1:条件查询
where语句表条件过滤。满足条件操作,不满足不操作,多用于数据的查询与修改。

23.2 : 格式 :
select 字段 from 表名 where 条件;

23.3: while条件的种类如下:
比较运算符
> < <= >= = <> ---------- 大于、小于、大于(小于)等于、不等于
BETWEEN ...AND... ----------- 显示在某一区间的值(含头含尾)
IN(set) -----------显示在in列表中的值,例:in(100,200)
LIKE 通配符 -----------模糊查询,Like语句中有两个通配符:
% 用来匹配多个字符;例first_name like ‘a%’;
_ 用来匹配一个字符。例first_name like ‘a_’;
select * from zhangwu where zname like '胡%';
IS NULL 判断是否为空
------------is null; 判断为空
is not null; 判断不为空
23.4 逻辑运算符
and ------------ 多个条件同时成立
or ------------ 多个条件任一成立
not ------------ 不成立,例:where not(salary>100);

23.5 模糊查询
查询出账务名称包含”支出”的账务信息。

23.6 查询出账务名称中是五个字的账务信息

23.7 查询出账务名称不为null账务信息
SELECT * FROM zhangwu WHERE name IS NOT NULL;
SELECT * FROM zhangwu WHERE NOT (name IS NULL);


24 排序查询
24.1 使用格式
* 通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后。
* SELECT * FROM 表名 ORDER BY 字段ASC;
* ASC 升序 (默认)
* DESC 降序


25 聚合函数
函数介绍
* 之前我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询是纵向查询,
它是对一列的值进行计算,然后返回一个单一的值;另外聚合函数会忽略空值。
* count:统计指定列不为NULL的记录行数;
* sum:计算指定列的数值和,如果指定列;
* max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串类型不是数值类型,那么计算结果为0排0序运算;
* min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
* avg:计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;
26 分组查询

26.1: 使用格式
* 分组查询是指使用group by字句对查询信息进行分组,例如:我们要统计出zhanguw表中所有分类账务的总数量,这时就需要使用group by 来对zhangwu表中的账务信息根据parent进行分组操作。
* SELECT 字段1,字段2… FROM 表名 GROUP BY 字段 HAVING 条件;
* 分组操作中的having子语句,是用于在分组后对数据进行过滤的,作用类似于where条件。
26.2: having与where的区别
* having是在分组后对数据进行过滤.
* where是在分组前对数据进行过滤
* having后面可以使用分组函数(统计函数)
* where后面不可以使用分组函数。

posted on 2019-02-23 11:06  初衷丶  阅读(117)  评论(0编辑  收藏  举报