MySQL

MySQL

1.MySQL的登录

1.1服务的启动与停止

使用命令行工具

  •  # 启动MySQL服务命令:
     net start MySQL服务名
     ​
     # 停止MySQL服务命令:
     net stop MySQL服务名

1.2登录与退出

  • 格式

 mysql -h 主机名 -P 端口号 -u用户名 -p密码
  • 举例

 mysql -h localhost -P 3306 -u root -p******

2.MySQL演示使用

2.1 MySQL5.7中

  1. 查看编码命令

     show variables like 'character_%';
     show variables like 'collation_%';
  2. 修改mysql的数据目录下的my.ini配置文件

     [mysql] #大概63行左右,在其下添加
     ​
     default-character-server=utf8
     ​
     [mysqld] #大概76行左右,在其下添加
     ​
     character-set-server=utf8
     collation-server=utf8_general_ci
  3. 重启服务

  4. 再次查看编码

2.2 MySQL 8

  • MySQL 8中数据库默认编码方式为 utf8bm4 ,无需修改编码方式。

2.3MySQL常见命令

  • 修改密码

 update mysql.user set authentication_string=password('******') where user='root' and Host='localhost';
  • 刷新权限

 flush privileges;
  • 查看数据库中所有的表

 show tables;
  • 显示数据库中所有表的信息

 describe student;
  • 退出连接

 exit;
 ctrl + c -- 强制退出
  • 注释

 -- 单行注释
 ​
 /*(多行注释)
 hello
 */

3 .操作数据库

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

mysql关键字不区分大小写

3.1操作数据库

  • 创建数据库

 create database xxx;
  • 使用数据库

 -- 如果表名或者字段名是一个特殊字符,就需要带` `(tab上面)
 use dbtest1;
  • 查看所有的数据库

 show databases;
  • 删除数据库

 drop datebase [if exists] dbtest1;

3.2数据库的列类型

数值

  • tinyint 十分小的数据 1个字节

  • smallint 较小的数据 2个字节

  • mendiumint 中等大小的数据 3个字节

  • int 标准的数据 4个字节

  • bigint 较大的数据 8个字节

  • float 浮点数 4个字节

  • double 浮点数 8个字节

  • decimal 字符串形式的浮点数 通常金融计算时使用

字符串

  • char 字符串固定大小的

  • varchar 可变字符串

  • tinytext 微型文本

  • text 文本串(保存大文本)

时间日期

  • data YYYY-MM-DD,日期格式

  • time HH:mm:ss,时间格式

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

  • timestamp 时间戳 1970.0.0到现在的毫秒数

  • year 年份表示

null

  • 没有值,位置

  • 注意,不要使用NULL进行运算,结果为NULL

3.3数据库的字段属性(重点)

Unsigned

  • 无符号的整数

  • 声明了该列不能声明为负数

zerofill

  • 0填充

  • 将不足的位数使用0填充

自增

  • 自动在上一条记录的基础上加1

  • 通常用来设置唯一的主键,必须为整数类型

  • 可以自定义设置主键自增的起始值和步长

非空

  • 不赋值会报错

默认

  • 设置默认的值

  • 如果不指定值则为默认值

3.4创建数据库表

 --  注意点:使用英文括号,表的名称和字段尽量加` `
 --  auto_increment自增
 --  所有的语句后面加,  最后一个不用加
 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

3.5修改删除表

修改

 -- 修改表名
 ALTRER  TABLE   旧表名  RENAME AS 新表名
 ​
 -- 增加表的字段
 ALTER TABLE 表名  ADD 字段名 列属性
 ​
 -- 修改表的字段
 ALTER   TABLE   表名  MODIFY  字段名 列属性[]  -- 修改约束
 ALTER TABLE 表名  CHANGE 旧名字  新名字 列属性[] -- 字段重命名
 ​
 -- 删除表的字段
 ALTER TABLE 表名  DROP    字段名

删除

 -- 删除表(判断后删除)
 DROP    TABLE   IF  EXISTS  表名

4.MySQL数据管理

4.1外键

 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
 ​
 ​
 --  注意点:使用英文括号,表的名称和字段尽量加` `
 --  auto_increment自增
 --  所有的语句后面加,  最后一个不用加
 CREATE TABLE IF
     NOT EXISTS `student` (
         `id` INT ( 4 ) NOT NULL auto_increment comment  '学号',
         `name` VARCHAR ( 30 ) NOT NULL DEFAULT '匿名' comment '姓名',
         `gradeid` INT(10) NOT NULL 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` ),
     KEY `FK_gradeid` (`gradeid`),
     CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `gradeid`(`gradeid`)
     ) ENGINE = INNODB DEFAULT charset = utf8
     
     
     -- 创建表的时候没有外键
     ALTER TABLE `student`
     ADD CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `gradeid`(`gradeid`)

4.2DML语言

数据库意义:数据存储、数据管理

DML语言:数据操作语言

  • insert

  • update

  • delete

4.3添加

 -- 插入语句(添加)
 INSERT INTO `grade`(`gradename`) VALUES ('大四')  
 ​
 -- 不写插入的字段,会自动一一匹配
 INSERT INTO `grade` VALUES (3,'大四') 
 ​
 -- 插入多条数据
 INSERT INTO `grade`(`gradename`)
 VALUES ('大一'),('大二')
 ​
 -- 插入一条数据中的多个字段
 INSERT INTO `student`(`name`,`pwd`,`sex`)
 VALUES ('张三','aaaaaa','男')
 ​
 -- 插入多条数据
 INSERT INTO `student`(`name`,`pwd`,`sex`)
 VALUES ('王五','aaaaaa','男'),('李四','bbbbbb','女')

4.4修改

 -- 修改姓名,带简介
 UPDATE `student` SET `name`='修改后' WHERE id = 1;
 ​
 -- 不能指定条件的情况下,会改动所有表
 UPDATE `student` SET `name` = '修改后';
 ​
 -- 修改多个属性用逗号隔开
 UPDATE `student` SET `name`='修改后',email = '123@qq.com' WHERE id = 1;
 ​
 -- 多个条件定位数据
 UPDATE `student` SET `name`='修改后' WHERE `name`='修改前' AND(AND为同时满足条件,OR为满足其一即可) sex= '女'

4.5删除

delete 命令

语法:delete from 表名 [where 条件]

 -- 删除数据(尽量避免)
 DELETE FROM `student`;
 ​
 -- 删除指定数据
 DELETE FROM `student` WHERE id=1;

TRUNCATE命令

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

 -- 清空表
 TRUNCATE `表名`

delete和TRUNCATE区别

  • delete 不会影响自增序号

  • TRUNCATE 重新设置自增列 计数器会归零

  • TRUNCATE 不会影响事务

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值