MYSQL学习笔记:关于MySQL的基本概念(1)


MySQL学习:


关于MySQL基本概念

数据库(DataBase)
简称DB:按照某一特定数据结构来组织,存储数据的仓库。

数据库管理系统(DataBase Management System)
简称DBMS,是为了建立,操作和维护数据库而设计的一个程序,介于用户和数据库之间。


SQL分类

  • DDL(Data Definition Language-数据定义语句)
    用来定义数据库的对象,如数据表、视图、索引等
    如: create、alter、drop
  • DML (Data Manipulation Language-数据操纵语句)
    在数据库表中更新,增加和删除记录
    insert、delete、update— 增删改
  • DCL (Data Control Language-数据控制语句)
    指用于设置用户权限和控制事务语句
    如grant,revoke,if…else,while,begin transaction
  • DQL(Data Query Language select-数据查询语句)

数据库的操作

创建数据库
create database 数据库名;
create database 数据库名 character set 字符集;
create database 数据库名 character set 字符集 collate 校对规则;
查看数据库
show databases; --查看所有的数据库
show create database 数据库名; --显示数据库创建
选择数据库
use 数据库名;
修改数据库
alter database 数据库名 character 字符集;
删除数据库
drop database 数据库名;
查看当前数据库
select database(); --查看当前使用的数据库 

数据表的操作

在介绍数据表之前,说一下数据类型。

  • 字符串类型
    varchar、char
  • 大数据类型
    blob、text
  • 数值型
    tinyint、smallint、int、bigint、float、double
  • 逻辑型
    bit
  • 日期型
    date、time、datetime、timestamp

详见菜鸟教程——MySQL数据类型

创建数据表
create table 表名
(
	field1  datatype (auto_increment), --说明此列每增加一行时自动增量。
	field2  datatype (unique), --定义唯一约束
	field3  datatype (not null), --定义非空约束
	field4 datetype (default 1), --指定默认值为1
	primary key(field1) --指定为主键
)character set 字符集 collate 校对规则;

每个表只允许一个AUTO_INCREMENT列,而且它必须被索> 引。
可以使用last_insert_id()语句来获取最后一个AUTO_INCREMENT值。

查看数据表
show tables; --查看所有的数据表
show create table 数据表; --查看表的创建过程
desc 数据表; --查看数据表结构
修改数据表
--add:添加列
alter table 表名 add 列名 列类型 (列的约束) ;

--modify:修改列
alter table 表名 modify 变量名 数据类型;

--change:修改列名
alter table 表名 change 原名 新名 新数据类型;

--drop:删除列
alter table 表名 drop 列名;

--修改表名
alter table 原表名 to 新表名;

--修改表的字符集
alter table 表名 character set 字符集;
删除数据表
DROP TABLE 数据表名;
重命名数据表
RENAME TABLE 旧表名 TO 新表名;

-- 重命名多个表名
RENAME TABLE 旧表名1 TO 新表名1,
             旧表名2 TO 新表名2,
             旧表名3 TO 新表名3;

对数据表的数据操作


CRUD ————增删改查

增数据
  • 一般写法
insert into 表名(1,2,3...) values(1,2,3...);
  • 简单写法
insert into 表名 values(1,2,3...);

注意:
省略的列必须满足以下两个条件:
1、该列定义为允许NULL值(无值或空值)。
2、在表定义中给出默认值。

  • 批量插入
insert into 表名 values(1,2,3...),(4,5,6...),(7,8,9...);
  • 查看表中的所有数据
select * from 表名;

补充:
要提高整体性能,可以在 INSERT 和 INTO 之间添加关键字 LOW_PRIORITY,指示MySQL降低INSERT语句的优先级。
INSERT LOW_PRIORITY INTO


删数据

使用DELETE时要加WHERE关键字,否则会删除表中的所有行。

delete from 表名 [where 条件];

delete from 表名; --删除全部记录
delete from 表名 where [...] --删除满足条件的记录

truncate 表名; --删除全部数据

注:

delete 删除数据 和 truncate 删除数据 有什么区别
  
delete:(DML)一条一条删除表中的数据
truncate:(DDL)先删除表再重建表

当数据较时,delete比较高效。
当数据较时,truncate比较高效。

同时也要注意:DELETE删除整行而不是整列,如果要删除整列要使用UPDATA语句


改数据

如果更改数据的时候没加where条件,会改变表中的所有数据。

update 表名
set 列名1=1,列名2=2,...
where 条件;
  • 如果要删除某一列的数据,可以直接把它设置为NULL。
UPDATE customers 
SET cost_email = NULL 
WHERE cust_id = 10005;
查数据
--查看表中所有的数据
select * from 表名; 

--查看表中列n,m的数据
select 列名n,列名m from 表名; 

--表别名
select 别名.列名1,别名.列名2 from 表名 as 别名;
--列表名
select 列名1 (as) 别名1,列名2 (as) 别名2 from 表名;

--去掉重复的值(distinct)
select distinct 列名 from 表名;

--运算查询
select *,(列名运算) (as 别名) from 表名;

--条件查询
select 列名 from 表名 where (条件);
  • like
    _:表示一个字符。
    %:表示多个字符。

  • in
    在某个范围中获得值。
    eg: select * from 表名 where 列n in (...);

  • order by
    asc:(默认)升序
    desc:降序
    eg: select * from 表名 order by 列名 desc;

  • update
    修改表中的数据
    UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

  • 聚合函数

sum() : 求和
avg() : 求平均值
count() : 统计数量
max()/min() : 最大/最小值

eg :
select sum() from 表名;
select 列 from 表名 having (聚合函数)


总的来说,就是:

子句说明是否必须使用
SELECT要返回的列或表达式
FROM从中检索数据的表仅在从表选择数据时使用
WHERE行级过滤
GROUP BY分组说明仅在按组计算聚集时使用
HAVING组级过滤
ORDER BY输出排序顺序
LIMIT要检索的行数
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值