【狂神】SQL笔记2

本文详细介绍了MySQL数据库的基本操作,包括连接数据库、修改密码、查看与切换数据库、创建和删除表、字段类型及属性。还讲解了数据库引擎的区别,如InnoDB与MYISAM,并提供了修改和删除表的SQL语句示例。此外,提到了字符集设置和表空间的物理文件结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 操作数据库

错做数据库>操作数据库中的表>操作数据库中表的数据

mysql -u root -p(密码) --连接数据库
update mysql.user set authentication_string=password("123456") where user='root' and Host='localhost'; --修改密码
flush privileges; --刷新权限

---------------------------------------------------------------------------------------
--所有的语句都使用;结尾
show databases; -- 查看所有的数据库
use school -- 切换数据库use 数据库名

show tables; --查看数据库中所有的表
describe student; --显示数据库中所有表的信息
如果你的表名或字段名是某些特殊字符,如user, root, 就需要带``
如: use `user`;

create database [if not exists] westos; --创建一个数据库  [ ]表示可选
drop database [if exists] westos;

exit; --退出连接

-- 单行注释
/*多行注释*/ 

2 数据库的列类型

字符串类型大小
tinyint十分小的数据1个字节
smallint较小的数据2个字节
mediumint中等大小的数据3个字节
int标准的整数4个字节
bigin较大的数据-8个字节
float浮点数4个字节
double浮点数8个字节
decimal字符串形式的浮点数
字符串类型大小备注
char字符串固定大小0~255
varchar可变字符串0~65535常用的 string
tinytext微型文本2^8 - 1
text文本串2^16-1保存大文本
时间日期格式备注
dataYYYY-MM-DD日期格式
timeHH:mm:ss时间格式
datatimeYYYY-MM-DD HH:mm:ss最常用的时间格式
timestamp1970.1.1到现在的毫秒数时间戳
year年份表示

null 没有值 未知

3 字段属性

在这里插入图片描述

字段属性作用备注
unsigned无符号整数生命该列不能为负数
zerofill不足的位数使用0填充如3长度的int, 005
自增在上一条记录的基础上自增1可以自定义设置主键的起始值和步长
非空?不填写值默认为null假如设置为not null,不给它赋值就会报错;
默认设置为默认的值不指定该列的值回设置为默认的值
主键一般一个表只有一个每一个表都必须存在的字段
version乐观锁每一个表都必须存在的字段
gmt_create创建时间每一个表都必须存在的字段
gmt_update修改时间每一个表都必须存在的字段
is_delete伪删除每一个表都必须存在的字段

4 创建数据库表

创建表:

create table if not exists `student`(
`id` int(4) not null auto_increment comment '学号',
`name` varchar(30) not null default '匿名' comment '姓名',
`pwd` varchar(20) not null default '123456' comment '密码',
`sex` varchar(2) not null default '女' comment '性别',
`birthday` datetime default null comment '出生日期',
`address` varchar(100) default null comment '邮箱',
`email` varchar(50) default null comment '邮箱',
primary key(`id`) --设置主键
)engine-innodb default charset=utf8
create table [if not exists] `表明`(
`字段名` 列类型 [属性] [索引] [注释],
`字段名` 列类型 [属性] [索引] [注释],
...
`字段名` 列类型 [属性] [索引] [注释]
)[表类型][字符集设置][注释]

常用命令

show create database school --查看创建数据库的语句
show create table student  -- 查看student数据表的定义语句
desc student --显示表的结构

数据表的类型

关于数据库引擎:
INNODB & MYISAM

MYISAMINNODB
事务支持不支持支持
数据行锁定不支持支持行锁定
外键不支持支持
全文索引支持不支持
表空间的大小较小较大,约为MYISAM的两倍

常规使用操作:

  • MYISAM 节约空间,速度较快
  • 安全性高,实物的处理,多表多用户操作

在物理空间的位置:所有的数据库文件都存储在data目录下,本质还是文件的存储

MYSQL引擎在物理文件上的区别:

  • InnoDB在数据库表中只有一个*.frm文件,以及上级目录下的ibdata1文件
  • MYISAM对应文件:
  • *.frm - 表结构的定义文件
  • *.MYD 数据文件(data)
  • *.MYI 索引文件

设置数据库表的字符集编码:

charset=utf8

不设置的话使用sql的默认编码Latin1, 不支持中文
可以在my.ini中配置默认的编码:

character-set-server=utf8

6 修改删除表

修改表

alter table teacher rename as teacher1 --修改表名
alter table teacher1 add age int(11) -- 增加表的字段

alter table teacher1 modify age varchar(11) --修改表的字段(修改约束)
alter table teacher1 change age age1 int(11) --修改表的字段(重命名)
-- change用来字段重命名,不能修改字段类型和约束,
-- modify不能用来字段重命名,智能修改字段类型和约束

alter table teacher drop age --删除表的字段

drop table if exists teacher --删除表

所有的创建和删除操作尽量加上判断,以免报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值