mySQL笔记

数据库

数据库的操作

命令行连接

host         -h 主机
port         -P 端口号
user         -u 用户名
password	 -p 密码
mysqld -hlocalhost -P3306 -uroot -proot

退出登录

exit
quit
\q

显示所有数据库

show databases;

在这里插入图片描述

注意:数据库安装后,自带4个数据库

创建数据库

create database [if not exists] 数据库名 [可选项];

在这里插入图片描述

创建数据库时,如果数据库已经存在,就会报错

在这里插入图片描述

在创建数据库时,判断数据库是否存在,不存在就创建

create database if not exists 数据库名;

在这里插入图片描述

特殊字符,关键字做数据库名,使用反引号``将数据库名括起来
在这里插入图片描述

创建数据库时,可以指定字符集,如果不指定编码,数据库默认使用安装数据库时指定的编码

create database emp charset=gbk;

MySQL数据库的目录

数据库保存的路径在安装MySQL的时候就配置好。
也可以在my.ini配置文件中更改数据库的保存地址。
datadir="...."
一个数据库就对应一个文件夹,在文件夹中有一个db.opt文件,在此文件中设置数据库的字符集和校对集

删除数据库

drop database 数据库名;

在这里插入图片描述

删除关键字数据库

在这里插入图片描述

判断数据库如果存在则删除

在这里插入图片描述

显示创建数据库的语句

show create database 数据库名;	

在这里插入图片描述

修改数据库

修改数据库的字符编码

alter database 数据库名 charset=字符编码;

小结:修改数据库只能修改数据库的字符编码

选择数据库

use 数据库名;

数据表的操作

显示所有表

show tables;

创建表

语法:

set names gbk;	-- 设置客户端和服务器通讯的编码

create table [if not exists] `表名`(
	`字段名` 数据类型 [null|not null] [default Value] [auto_increment] [primary key] [comment],
    `字段名` 数据类型 [null|not null] [default Value] [auto_increment] [primary key] [comment],
    ......
)[engine=存储引擎] [charset=字符编码]
---------------------------------
null|notnull		是否为空
default Value		默认值
auto_increment		自动增长,默认从1开始,每次递增1
primary key			主键,主键的值不能为空,且不能重复
comment				备注
engine				引擎 myisam, innodb
----------------------------------
注意:如果表名和字段名使用了关键字的特殊字符,需要用反引号``引起来。

在这里插入图片描述

小结:

1、如果不指定引擎,默认是innodb

2、如果不指定字符编码,默认和数据库编码一致

数据表的文件

一个数据库对应一个文件夹
一个表对应一个或多个文件
myisam引擎 - 一个表对应3个文件
	.frm	存储的是表结构
	.myd	存储的是表数据
	.myi	存储的是表数据的索引
innodb引擎 - 一个表对应一个表结构文件

显示创建表的语句

-- 结果横着排列
show create table 表名;
-- 结果竖着排列
show create table 表名\G;

在这里插入图片描述

查看表结构

describe 表名;
//或
desc 表名;

在这里插入图片描述

删除表

drop table 表名;

//如果存在就删除
drop table if exists 表名;

//一次删除多个表
drop table 表一,表二,...;

复制表

-- 语法一
create table 新表名 select 字段 from 旧表
-- 特点:不能复制父表的键,能够复制父表的数据

-- 语法二
create table 新表名 like 旧表;
-- 特点:只能复制表结构,不能复制表数据

修改表

语法: alter table 表名
-- --------------------

1. 添加字段:alter table 表名 add[column] 字段名 数据类型 [位置]	
	例如:alter table student add sex char(1) after name;
		//在name字段后添加一个sex字段;长度为1的字符
	例如:alter table student add sex char(1) first;
		//在第一个字段添加一个sex字段;长度为1的字符
2. 删除字段:alter table 表名 drop[column] 字段名
3. 修改字段(改名):alter table 表名 change[column] 原字段名 新字段名 数据类型...
4. 修改字段(不改名):alter table 表名 modify 字段名 字段属性
5. 修改引擎:alter table 表名 engine=引擎名
6. 修改表名:alter table 表名 rename to 新表名
7. 将表移动到其他数据库:alter table 表名 rename to 数据库名.新表名
	例如:alter table student rename to `user`.student;
		//将当前数据库下的student表移动到user数据库下,改名为student

数据的操作

插入数据

insert into 表名(字段名,字段名,...) values (1,2,...);
-- 可以插入所有字段
-- 可以插入部分字段
-- 插入的字段和表的字段顺序可以不一致,但是插入字段名和插入的值一定要一一对应
-- 插入字段名可以省略
-- 自动增长列,可以直接插入null

在这里插入图片描述

-- 插入多个值
insert into 表名 (字段名1, 字段名2,....) values (1,2, ...), (1,2, ...);

更新数据

-- 更新某个数据
update 表名 set 字段=[where条件]

删除数据

delete from 表名 [where条件];

多学一招:delete from 表 和 truncate table 表区别?

1. delete from 表	: 遍历表记录,一条一条的删除
2. truncate table 表	 : 将原表销毁,再创建一个同结构的新表,就清空表而言,这种方法效率高

数据传输时的字符集

发现:在数据表中插入数据时,如果有中文,则会报错(或者中文无法插入)

客户端编码:

在这里插入图片描述

查看服务器接受,返回的编码:

在这里插入图片描述

更改接收客户端指令的编码:

set character_set_client=gbk;

设置返回值的字符编码:

set character_set_results=gbk;
-- 可以通过set names一次性设置编码
set names utf8;		-- 此语句相当于下面三句
set character_set_client=gbk;
set character_set_connection=gbk;
set character_set_results=gbk;

282923250)]

更改接收客户端指令的编码:

set character_set_client=gbk;

设置返回值的字符编码:

set character_set_results=gbk;
-- 可以通过set names一次性设置编码
set names utf8;		-- 此语句相当于下面三句
set character_set_client=gbk;
set character_set_connection=gbk;
set character_set_results=gbk;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值