MySQL学习笔记-基础实践篇-2.数据库的基本操作(DDL)

2.数据库的基本操作(DDL) 总览

在这里插入图片描述

MySQL基础学习笔记思维导图

笔记链接

参考狂神说MySQL教程笔记

参考尚硅谷MySQL教程笔记

重难点问题总结

1. database基本操作

在这里插入图片描述

  • 操作数据库的sql语言不区分大小写

1.1 启动和连接数据库

net start mysql
net stop mysql
mysql -u root - p

1.2 增删改查database

create database db_name;
drop database IF EXISTS db_naem;
show databases;
use db_name; /* 指定要操作哪一个数据库*/
  • 可视化SQLyog操作:

    在这里插入图片描述

2. table基本操作

2.1 增删改查table

create tabel t_name;
drop table t_name;
show tables; /* 查看有哪些表*/
desc t_name; /* 查看表的结构,字段属性*/
select * from t_name; /* 查看表的内容*/

2.2 创建表,定义字段、属性

(1) 实例
DROP TABLE IF EXISTS `discuss_post`;
CREATE TABLE `discuss_post` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` varchar(45) DEFAULT NULL,
  `title` varchar(100) DEFAULT NULL,
  `content` text,
  `type` int(11) DEFAULT NULL COMMENT '0-普通; 1-置顶;',
  `status` int(11) DEFAULT NULL COMMENT '0-正常; 1-精华; 2-拉黑;',
  `create_time` timestamp NULL DEFAULT NULL,
  `comment_count` int(11) DEFAULT NULL,
  `score` double DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `index_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
(2) 注释格式
单行注释:#注释文字(MySQL特有的方式)
单行注释:-- 注释文字(--后面必须包含一个空格。)
多行注释:/* 注释文字 */
COMMENT '0-正常; 1-精华; 2-拉黑;' -- 在列的属性中注释
(3) 从文件中直接导入表
\ ? -- 会显示所有操作文件的快捷方式
\. tb_file.sql
source tb_file.sql
(4)表类型选择和字符集编码设置
CREATE TABLE `discuss_post` (
  ...
) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- 注意不是utf-8

2.3 修改表(alter)

  • 修改表名 :
ALTER TABLE 旧表名 RENAME AS 新表名
  • 添加字段 :
ALTER TABLE 表名 ADD 字段名 列属性
  • 修改字段 :
ALTER TABLE 表名 MODIFY 字段名 列类型  -- 修改约束等
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列属性 -- 字段重命名
  • 删除字段 :
ALTER TABLE 表名 DROP 字段名  

3. 列的属性

3.1 数据类型:

(1)数值类型
在这里插入图片描述
(2)字符串
在这里插入图片描述
(3)日期和时间型数值类型
在这里插入图片描述
(4)NUll值
  • 理解为 “没有值” 或 “未知值”
  • 不要用NULL进行算术运算 , 结果仍为NULL

3.2 字段约束属性:

(1)NULL 和 NOT NULL
  • 默认为NULL , 即没有插入该列的数值
  • 如果设置为NOT NULL , 则该列必须有值
(2)Auto_InCrement
  • 自动增长的 , 每添加一条数据 , 自动在上一个记录数上加 1(默认)
  • 通常用于设置主键 , 且为整数类型
  • 可定义起始值和步长
    当前表设置步长(AUTO_INCREMENT=100) : 只影响当前表
    SET @@auto_increment_increment=5 ; 影响所有使用自增的表(全局)
  • 改变自增序列的初始值,前提是先将表中插入的数据删除
    alter table t_name AUTO_INCREMENT 1;
(3)unique
  • 唯一性约束,一个表中该约束对象的值一旦确定不能改变
  • 可以进行组合的唯一性约束
create table stu (
  id number(10), 
  name varchar2(20) constraint stu_name_nn not null,
  sex varchar2(5), 
  age number(3), 
  sdate date, grade number(2) default 1, 
  class number(4), 
  email varchar2(50) unique,
  constraint stu_name_email_uni unique(email, name) -- 唯一约束
); 
(4)primary key
  • 主键约束,同时满足唯一性约束和非空约束
(5)foreign key
  • 外键约束,注意,参考的外键必须是主键,且主键一旦被参考,就不能删除
(6)其他约束

UnSigned

  • 无符号的
  • 声明该数据列不允许负数 .

ZEROFILL

  • 0填充的
  • 不足位数的用0来填充 , 如int(3),5则为005

DEFAULT

  • 默认的用于设置默认值
  • 例如,性别字段,默认为"男" , 否则为 “女” ; 若无指定该列的值 , 则默认值为"男"的值

4. 数据库储存引擎的选取

4.1 table的类型和储存位置

(1)储存引擎的选择
CREATE TABLE 表名(
...
)ENGINE = InnoDB (or MyISAM)
-- 查看mysql所支持的引擎类型 (表类型)
SHOW ENGINES;

在这里插入图片描述

(2)数据表的存储位置
  • MySQL数据表以文件方式存放在磁盘中
    • 包括表文件 , 数据文件 , 以及数据库的选项文件
    • 位置 : Mysql安装目录\data\下存放数据表 . 目录名对应数据库名 , 该目录下文件名对应数据表
  • 注意 :
    • InnoDB类型数据表只有一个 *.frm文件 (8.0版本没有), 以及上一级目录的ibdata1文件
    • MyISAM类型数据表对应三个文件 :
      * . frm – 表结构定义文件
      * . MYD – 数据文件 ( data )
      * . MYI – 索引文件 ( index )
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值