MySQL基础操作
MySQL语法
注释:
-
单行注释:
--这是注释
-
多行注释:
/* 这是注释 这是注释 这是注释 这是注释 */
mysql语句不区分大小写,建议小写
针对数据库的基本操作
操作数据库->操作数据库的表->操作数据库的表中的数据
连接数据库
mysql -uroot -p密码 #-p和密码之间没有空格
查看全部数据库
show databases;
使用某个数据库(假设有个数据库为:school)
use school;
如果名称是sql中的一些关键字,要加反引号
use `user`;
针对数据库里面的表的操作
查看该数据库所有的表 show
show tables;
查看某个表信息desc
(假设在该数据库中有个表为:student):
describe student;
或
desc student;
创建数据库 create
; (中括号 []
表示可选)
create database [if not exist] school;
删除数据库:drop
drop database [if exist] school;
数据表
数据类型
【数值型】
- tinyint: 1个字节(-127~128)
- smallint: 2个字节
- mediumint: 3个字节
- int:4个字节
- bigint:8个字节
- float:4个字节
- double:8个字节
- decimal:字符串形式的浮点数(金融计算常用)
【字符串】
- char:1个字节(0~255)
- varchar:可变字符串 0~65535
- tinytext: 微型文本 2^8-1
- text:文本串 2^16-1
【时间日期】
- date YYYY-MM-DD, 日期格式
- time HH:mm:ss 时间格式
- datetime YYYY-MM-DD HH:mm:ss (最常用)
- timestamp 1970.1.1到现在的毫秒数(较常用)
- year:年份
【NULL型】
没有值,未知
注意,不要使用NULL进行运算,结果为NULL
字段属性(重要)
每一列(称为字段)都有多个属性,用于描述该列的特征
-
unsigned
无符号整数,表示该列不能为负数
-
zerofill
- 0填充的
- 不足的位数用0填充,如:int(3); --输入数字5,自动转为
005
-
自增 auto_increment
自动在一条记录的基础上(默认)
+1
必须是整数类型
-
非空 NOT NULL
- 假设为 not null: 如果不给他赋值,会报错
【创建一张表】
CREATE TABLE
IF
NOT EXISTS `student` (
`id` INT ( 4 ) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR ( 30 ) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`password` VARCHAR ( 30 ) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` VARCHAR ( 2 ) NOT NULL DEFAULT '保密' COMMENT '性别',
`age` INT ( 3 ) NOT NULL DEFAULT 18 COMMENT '年龄',
PRIMARY KEY ( `id` ) -- 主键
) ENGINE = INNODB DEFAULT CHARSET = utf8;
创建表格式( []
里面的内容表示可有可无 ):
CREATE TABLE [IF NOT EXISTS] `表名`(
`字段名` 列类型 [属性] [索引] [注释],
`字段名` 列类型 [属性] [索引] [注释],
`字段名` 列类型 [属性] [索引] [注释],
`字段名` 列类型 [属性] [索引] [注释],
...
`字段名` 列类型 [属性] [索引] [注释]
)[表类型] [字符集设置] [注释]
在创建完一个数据库或者表后,可以用以下语句:
SHOW CREATE DATABASE school; -- 查看创建数据库时的语句
SHOW CREATE TABLE student; -- 查看创建表时的语句
DESC student; -- 显示表的结构
数据库引擎
- INNODB(默认使用)
- MYISAM
MYISAM | INNODB | |
---|---|---|
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表的空间大小 | 较小 | 较大,为MYISAM的2倍 |
事务
- 是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyISAM就不可以
占用空间:
-
InnoDB的B+树主键索引的叶子节点就是数据文件,辅助索引的叶子节点是主键的值;
-
而MyISAM的B+树主键索引和辅助索引的叶子节点都是数据文件的地址指针。
常用操作:
- MYISAM: 节约空间,速度快
- INNODB:安全性高,事务处理,多表多用户操作
物理空间存在位置:
所有数据文件都在data目录下,本质还是文件存储
- MYISAM对应文件:
- *.frm 表结构定义
- *.MYD 数据文件
- *.MYI 索引文件
- INNODB:只有 *.frm 文件,以及上级目录下ibdata1文件
设置字符集编码
CHARSET=utf8
MySQL默认字符集 Latin1, 不支持中文
可以在 my.ini文件配置,但发到别人电脑时可能会出错,最好在创建表时也写上
修改、删除表
修改表的结构:ALTER TABLE
修改表名
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) -- 字段重命名
删除表的字段
ALTER TABLE teacher1 DROP age1;
删除表 DROP TABLE
drop table [if exists] teacher; -- 一般加上判断,避免出错
本文来自博客园,作者:aJream,转载请记得标明出处:https://www.cnblogs.com/ajream/p/16004906.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人