韩顺平MySQL学习笔记

[[mysql安装]]


数据库三层结构

普通表本质上仍然是文件
在这里插入图片描述


数据库简介

sql:用于操作数据库。

关系型数据库:由行(row)和列(column)组成。其中行是可变的,列(属性)是不变的。

一行称为一条记录。


SQL语句分类

[[SQL语句分类.canvas]]


数据库服务启动与登录

net mysql start
mysql -u root -p

数据库

数据库语句结尾需要添加分号; 而DOS命令行下和结尾不能有分号。

  1. 创建数据库
CREATE DATABASE [IF NOT EXISTS] name CHARACTER SET utf8 COLLATE utf8_bin(区分大小写);

在创建数据库或者表的时候可以使用反引号规避关键字,删除的时候也需要加上反引号。

CREATE DATABASE `INT`;

不写后面的,默认:

  • 字符集默认为utf8
  • 数据库校对规则默认为utf_general_ci(不区分大小写)

注意:若在创建表的时候没有指定字符集和校对规则,则表默认跟随数据库的规则。

  1. 删除数据库(慎重)
DROP DATABASE name;
  1. 显示数据库
SHOW DATABASES;
#注意一定要加S
  1. 显示某数据库创建的语句信息
SHOW CREATE DATEBASE name;
  1. 数据库备份(DOS执行)命令行
mysqldump -u 用户名 -p -B 数据库1 数据库2 数据库n > 文件名.sql(路径)
  1. 数据库恢复(需要在mysql命令行执行
source 文件名.sql(路径)

或者:直接将文件.sql的内容放入查询编辑器(SQLyog中的)中执行。

  1. 数据库的表恢复
mysqldump -u 用户名 -p 数据库 表1 表2 表n > 文件名.sql(路径)

  1. 创建表:
CREATE TABLE name
(
	field1 datatype,
	field2 datatype,
	field3 datatype
)character set 字符集 collate 校验规则 engine 储存引擎

注:field:指定列名。datatype指定列数据类型。字符集,校验,引擎->(不指定默认跟随数据库)

定义无符号整数:

CREATE TABLE t1(id tinyint);//默认是有符号的: 0 - 255
CREATE TABLE t1(id tinyint unsigned);//默认是无符号的 :-128 - 127
  1. 显示表:
SHOW TABLES;
  1. 删除表
DROP TABLE name;
  1. 修改表
  • 添加列
ALTER TABLE name ADD(column datatype NOT NULL DEFULT '',othercolum datatype);

//添加一个列的时候,可以指定添加的位置,到colname后
ALTER TABLE name ADD column datatype NOT NULL DEFAULT '' AFTER colname;
  • 修改列
ALTER TABLE tablename MODIFY column datatype;//注意只能一个一个修改
  • 删除列
ALTER TABLE tablename DROP colname字段;//只能一个一个删
  • 修改列名
ALTER TABLE tablename CHANGE colname othercolname 数据类型 NOT NULL DEFAULT '';
//注意colname到othercolname中间没有to
  • 修改表的字符集
ALTER TABLE name charset 字符集;
  • 修改表名
RENAME TABLE name to newname;
  • 查看表的结构
desc name;
  • 复制表的结构
CREATE TABLE my_table2 LIKE emp; //将emp表的结构复制给my_table表
  1. 表的复制和去重
  • 表的复制
//将emp表的记录复制到my_table表
CREATE TABLE my_table(
	id INT,
	`name` VARCHAR(32),
	sal DOUBLE,
	deptno INT
	);
	
SELECT *FROM my_table;

INSERT INTO my_table (id,`name`,sal,deptno) 
	SELECT empno,ename,sal,deptno FROM emp;
//表的自我复制(记录成倍增长)
INSERT INTO my_table
SELECT *FROM my_table
  • 表的去重
//1.创建一个临时表,并复制emp表结构
CREATE TABLE temp LIKE emp;
//2.将emp表的记录去重复制到临时表
INSERT into temp SELECT DISTINCT * FROM emp;
//3.删除emp表的记录
DELETE FROM emp;
//4.将临时表的记录复制到emp
INSERT into emp SELECT * FROM temp;
DROP TABLE temp;

Mysql数据类型

[[Mysql数据类型(列类型).canvas]]

  1. 小数
FLOAT/DOUBLE [UNSIGNED]
DECIMAL[M,D][UNSIGNED]  //M表示小数位数总数默认为10,最大为64。D表示小数点后面的位数默认为0,最大为30。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值