MySQL(1/3)

基本命令行操作

命令行连接

mysql -uroot -p

回车,然后在下一行输入密码,或者直接在p后写密码

修改密码

updata mysql.user set authentication_string=password('原密码') where user='root' and Host = 'localhost';

刷新权限

flush privileges;

查看所有数据库

show databases;

切换数据库

use 数据库名

成功会提示Database changed

查看数据库中所有表

show tables;

显示数据库中指定的表的信息

decribe 表名;

 创建一个数据库

create darabase 数据库名;

退出连接

exit; 

注意所有语句要用分号结尾,不分大小写

注释

#注释内容     --注释内容     /*注释内容*/

数据库语言

DDL        定义

DML        操作

DQL        查询

DCL        控制

CRUD增删改查

操作数据库

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

1.创建数据库

create database (if not exists) 数据库名

2.删除数据库

drop database (if exists) 数据库名

3.使用数据库

use `数据库名`

如果表明或者字段名是一个特殊字符,就需要带``

4.查看数据库

show database

数据库的列类型

数值

tinyint           十分小的数据             1个字节

smallint        较小的数据                 2个字节

mediumint    中等大小的数据         3个字节

int                 标准的整数                4个字节

bigint            较大的数据                8个字节

float              浮点数                       4个字节

double          浮点数                       8个字节

decimal        字符串形式的浮点数  金融计算的时候一般使用

字符串

char           字符串固定大小        0-255

varchar      可变字符串               0-65535        即String

tinytext       微型文本                  0-255

text             文本串                     0-65535        保存大文本

时间日期

data        YYYY-MM-DD,日期格式

time        HH:mm:ss,时间格式

datatime   YYYY-MM-DD  HH:mm:ss  最常用的时间格式

timestamp        时间戳,1970.1.1到现在的毫秒数

year    年份

null

未知数

不要使用null来计算

数据库的字段属性

Unsigned

无符号整数

声明该列不能声明为负数

zerofill

0填充的

不足的位数使用0来填充如5,005

非空 NULL not null

设置后字段不能为(null)

默认(defult)

默认值

自增

用来设计唯一的主键,主键类似于index,必须是整数类型

自动在上一条记录的基础上+1(默认)

创建数据库表

例子

CREATE TABLE IF NOT EXISTS `student` (
	`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
	`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
	`pswd` 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

常用命令

SHOW CREATE DATABASE school;  -- 查看创建数据库的语句
SHOW CREATE TABLE student;    -- 查看student数据表的定义语句
DESC student -- 显示表的结构

MylSAM和Innodb的区别

在物理空间存在的位置

所有的数据库文件都在data目录下,本质还是文件存储

·innodb在数据库表中只有一个*.frm文件,以及上级目录下的ibdata1文件

·MYISAM对应文件

        *.frm        表结构的定义文件

        *.MYD        数据文件(data)

        *.MYI          索引文件(index)

修改和删除数据库表字段

-- 修改表名 ALTER TABLE 旧表名 RENAME AS 新表名
ALTER TABLE teacher rename as teacher1
-- 增加表的字段 alter table 表名 add 字段名 列属性
alter table teacher1 add age int(3)

-- 修改表的字段(重命名,修改约束)
-- alter table 表名 modify 字段名 列属性[]
alter table teacher1 modify age varchar(11)  -- 修改约束
-- alter table 表名 change 新名 列属性[]
alter table teacher1 change age age1 int(1) -- 字段重命名

-- 删除表的字段
alter table teacher1 drop age1

-- 删除表
drop table if exists teacher1

change和modify的区别

数据库级别的外键

第一种添加外键的方式

create table if not exists `grade` (
	`gradeid` int(10) not null auto_increment comment '年级id',
	`gradename` varchar(50) not null comment '年级名称',
	primary key(`gradeid`)
)engine=innodb default charset=utf8

-- 定义外键key
	-- 给这个外键添加约束(执行引用) references 引用
CREATE TABLE IF NOT EXISTS `student` (
	`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
	`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
	`pswd` 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 '邮箱',
	`gradeid` int(10) not null comment '年级id',
	PRIMARY KEY(`id`),
	key `FK_gradeid` (`gradeid`),
	constraint `FK_gradeid` foreign key (`gradeid`) references `grade`(`gradeid`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

第二种添加外键的方式,推荐

create table if not exists `grade` (
	`gradeid` int(10) not null auto_increment comment '年级id',
	`gradename` varchar(50) not null comment '年级名称',
	primary key(`gradeid`)
)engine=innodb default charset=utf8

-- 定义外键key
	-- 给这个外键添加约束(执行引用) references 引用
CREATE TABLE IF NOT EXISTS `student` (
	`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
	`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
	`pswd` 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 '邮箱',
	`gradeid` int(10) not null comment '年级id',
	PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

alter table `student` add constraint `FK_gradeid` foreign key (`gradeid`) references `grade`(`gradeid`);

公式 alter table 表 add constraint 约束名 foreign key (`作为外键的列`) references 哪个表(哪个字段)

insert语句

语法:insert into `表名` (字段1,字段2....) values (值1)(值2)(.....)

主键自增可以省略

不写字段就会一一匹配

update语句

update 表名 set 列名1=新值,列名2=新值.... where 约束条件

如果没有约束条件默认给全部列替换新值

删除

delete

语法:delete from 表名 (where条件)

无条件全部删除,有条件删除满足条件数据

truncate命令

作用:完全清空一个数据库表,表的结构和索引约束不会变

语法:truncate 表名

二者异同

相同点:都能删除数据,都不会删除表结构

不同:

1.truncate 重置设置 自增列计数器会归零,delete不会

2.truncate 不会影响事务

  • 25
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值