MySQL学习

xiaoxiao2021-02-28  101

近期在去学习MySQL.

数据表与Java类的对比关系

// 一一对应关系 数据表 表名 --> Java中类名 表中的字段 --> Java类中的属性 表中一行(一条记录) --> Java类的对象

net start MySQL # 启动mysql

登陆mysql

mysql -u root -p # 输入密码

安装SQLYog.

学习SQL语句

SQL的分类 // 1. DDL(Data Definition Language)数据定义语言: 用于定义数据库对象 --> 数据库,表,列等 关键字有: create , alter , drop // 2. DML(Data Manipulation Language) 数据操作语言: 用于对数据库中表的记录进行更新. 关键字有: insert delete update // 3. DCL(Data Control Language) 数据控制语言: 用来定义数据库的访问权限和安全级别,及创建用户。 // 4. DQL(Data Query Language) 数据查询语言: 用来查询数据库中表的记录。 关键字:selectfromwhere

SQL语句通用的语法:

 SQL语句可以单行或多行书写,以分号结尾  可使用空格和缩进来增强语句的可读性  MySQL数据库的SQL语句不区分大小写,建议使用大写,例如:SELECT * FROM user。  同样可以使用/**/的方式完成注释  MySQL中的我们常使用的数据类型如下

数据库操作

- 创建数据库

* create database 数据库名; * create database 数据库名 character set 字符集;

- 查看数据库

show databases;

- 删除数据库

drop database 数据库名字; 切换数据库 use 数据库名字; 查看正在使用的数据库 select database()
表结构操作语句
创建数据表 create table 表名( 字段名 类型(长度) 约束, 字段名 类型(长度) 约束 );

约束: 主键约束,非空约束,唯一约束,外键约束…等

主键约束:

主键是用于标识当前记录的字段。它的特点是非空,唯一。在开发中一般情况下主键是不具备任何含义字段,只是用于标识(唯一性)当前记录。

使用格式: 1. 在创建表时创建主键,在字段后面加上 primary key. 2. 在创建表时创建主键,在表创建的最后来指定主键 /* 1.0 */ create table tablename( id int primary key, ....... ) /* 2.0 */ create table tablename( id int, ......., primary key(id) )

删除主键:

alter table 表名 drop primary key;

主键自增长: 一般主键是自增长的字段,不需要指定

实现添加自增长语句,主键字段后加auto_increment(只适用MySQL) 如: sid INT PRIMARY KEY auto_increment, #分类ID 查看所有表 show tables 查看具体某个表信息 DESC 表名; 删除表 DROP TABLE 表名字; 修改表结构语句 // 1. 给表添加列(新的字段)  alter table 表名 add 列名 类型(长度) 约束; // 2. 修改列的类型长度及约束  alter table 表名 modify 列名 类型(长度) 约束; // 3. 修改列的名字  alter table 表名 change 旧列名 新列名 类型(长度) 约束; // 4. 删除列.  alter table 表名 drop 列名; // 5. 修改表名  rename table 表名 to 新表名; // 6. 修改表的字符集  alter table 表名 character set 字符集; 数据表添加数据 1. insert into 表 (列名1,列名2,列名3..) values (值1,值2,值3..); -- 向表中插入某些列 如: INSERT INTO product (id,pname,price) VALUES (1,'李宁',3221.20) 2. 不考虑主键情况就是在列名里面不写那个主键字段. 3. insert intovalues (值1,值2,值3..); --向表中插入所有列 4. 批量写入 insert into 表(列1.2,列3) values (值1,值2,值3),(值1,值2,值3)...

操作注意事项:

- 插入的数据应与字段的数据类型相同 - 数据的大小应该在列的长度范围内 - 在values中列出的数据位置必须与被加入列的排列位置相对应。 - 除了数值类型外,其它的字段类型的值必须使用引号引起。 - 如果要插入空值,可以不写字段,或者插入 null。 - 对于自动增长的列在操作时,直接插入null值即可。 更新表记录 update 表名 set 字段名=值,字段名=值; update 表名 set 字段名=值,字段名=值 where 条件; 删除记录 delete from 表名 [where 条件]; 或者 truncate table 表名; 删除表中所有记录使用delete from 表名; 还是用truncate table 表名; 删除方式:delete 一条一条删除,不清空auto_increment记录数。 truncate 直接将表删除,重新建表,auto_increment将置为零,从新开始。 数据库中的与或非. and or not = <> <=

DOS操作数据乱码解决问题

我们在dos命令行操作中文时,会报错.

原因:因为mysql的客户端编码的问题我们的是utf8,而系统的cmd窗口编码是gbk 解决方案(临时解决方案):修改mysql客户端编码。

// 解决办法 1.  将客户端编码修改为gbk. set character_set_results=gbk; / set names gbk; 2.  在mysql安装目录下有my.ini文件 default-character-set=gbk 客户端编码设置 character-set-server=utf8 服务器端编码设置 注意:修改完成配置文件,重启服务 数据库查询语句 1.  查询指定字段信息 select 字段1,字段2,...from 表名; 2.  查询表中所有字段 select * from 表名; 3.  distinct用于去除重复记录 select distinct 字段 from 表名; 4.  别名查询,使用的as关键字,as可以省略的. 别名可以给表中的字段,表设置别名。 当查询语句复杂时,使用别名可以极大的简便操作。 表别名格式: select * from 表名 as 别名;select * from 表名 别名; 列别名格式: select 字段名 as 别名 from 表名;select 字段名 别名 from 表名; 5. 在sql语句的操作中,可以直接对列进行运算 如: select pname,price+10000 from product; 条件查询 1. where语句表条件过滤。满足条件操作,不满足不操作,多用于数据的查询与修改。 格式 :select 字段 from 表名 where 条件;

while条件的种类如下:

模糊查询 – 配合通配符 %: 多个字符 _: 一个字符 select * from 表名 where 字段 like '条件'; 排序查询 order by 列名 [desc降序] [asc升序] 如: SELECT * FROM account ORDER BY money 默认升序

- 聚合函数

聚合函数查询是一种纵向查询.它是对一列的值进行运算,然后返回一个单一的值. 聚合函数会忽略空值. 常用的5个聚合函数: 1. count: 统计指定列不为null的记录行数 2. sum: 计算指定列的数值和,如果指定列的数据类型不是数值,那么计算结果为0 3. max: 计算指定列的最大值,如果指定列的数据类型是字符串,那么使用字符串排序运算 4. mix : 计算指定列的最小值,如果指定列的数据类型是字符串,那么使用字符串排序运算 5. avg: 计算指定列的数值平均值,如果指定列的数据类型不是数值,那么计算结果为0 例如: SELECT COUNT(*) FROM account SELECT SUM(money) FROM account

- 分组查询

group by 被分组的列名字 必须跟随聚合函数 SELECT SUM(money), zname FROM account GROUP BY zname 分组查询后,结果再次筛选,不能使用where,使用关键字having SELECT 字段1,字段2,字段3.. FROM 表名 GROUP BY 字段 HAVING 条件

HAVING 与 WHERE 的区别

1. having是在分组后对数据进行过滤. 2. where 是在分组前对数据进行过滤 3. having后面可以使用分组函数,where后面不可以
转载请注明原文地址: https://www.6miu.com/read-66904.html

最新回复(0)