博客
关于我
MySQL和SQL入门
阅读量:789 次
发布时间:2023-02-12

本文共 2197 字,大约阅读时间需要 7 分钟。

《MySQL 技术内幕》第一章阅读笔记

表结构设计

在《MySQL 技术内幕》中,对数据库表的结构设计有详细阐述。本文将重点分析成员表的创建过程及其相关特性。

成员表的创建

mysql> create table member (    ->     member_id int unsigned not null auto_increment,    ->     last_name varchar(20) not null,    ->     first_name varchar(20) not null,    ->     suffix varchar(5) null,    ->     expiration date null,    ->     email varchar(100) null,    ->     street varchar(50) null,    ->     city varchar(50) null,    ->     state varchar(2) null,    ->     zip varchar(10) null,    ->     phone varchar(20) null,    ->     interests varchar(255) null    -> ) engine = innodb;

数据类型说明

  • member_id: 唯一递增的自增字段,用于唯一标识每个成员。
  • last_namefirst_name:存储成员的姓氏和名字,均不允许为空。
  • suffix: 可选的后缀字段,允许为空。
  • expiration: 存储成员的有效期限,允许为空。
  • emailstreetcitystatezipphone:存储联系信息,均可为空。
  • interests: 存储成员的兴趣爱好,长度为255个字符,可为空。

索引和约束

  • primary key: 由 member_id 唯一确定索引,确保数据唯一性。
  • not null: 所有基础字段均不允许为空,MySQL会自动添加约束。

表结构分析

通过使用 DESC 命令查看表结构:

mysql> DESC member;
Field Type Null Key Default Extra
member_id int(10) unsigned NO PRI NULL auto_increment
last_name varchar(20) NO NULL
first_name varchar(20) NO NULL
suffix varchar(5) YES NULL
expiration date YES NULL
email varchar(100) YES NULL
street varchar(50) YES NULL
city varchar(50) YES NULL
state varchar(2) YES NULL
zip varchar(10) YES NULL
phone varchar(20) YES NULL
interests varchar(255) YES NULL

数据插入

插入数据时,需注意字段顺序与定义一致:

mysql> INSERT INTO student (name, sex) VALUES ('Abby', 'F'), ('Joseph', 'M');

支持批量插入:

mysql> INSERT INTO student (name, sex) VALUES ('Abby', 'F'), ('Joseph', 'M');

查询操作

基本查询

mysql> SELECT 2 + 2, 'Hello, World!', VERSION();

排序查询

mysql> SELECT name, student_id FROM student ORDER BY name;

高级查询

mysql> SELECT concat(first_name, ' ', last_name) as name,            concat(city, ' ', state) as birthplace           FROM president;

日期运算

mysql> SELECT date_add('2023-10-01', 1) as future_date,           date_sub('2023-10-01', 1) as past_date;

自定义变量

mysql> SET @variable = 'Hello World';

删除和更新

删除记录

mysql> DELETE FROM president WHERE state = 'OH';

更新操作

mysql> UPDATE mysql.user SET password = '123' WHERE user = 'root';

DBA指南

查看表结构

mysql> SHOW CREATE TABLE president;

刷清权限

mysql> FLUSH PRIVILEGES;

通过以上优化,文章结构更加清晰,内容更加专业,适合技术读者阅读。同时,语言风格更加简洁,符合技术文档的写作习惯。

转载地址:http://uhbfk.baihongyu.com/

你可能感兴趣的文章
Mysql中varchar类型数字排序不对踩坑记录
查看>>
MySQL中一条SQL语句到底是如何执行的呢?
查看>>
MySQL中你必须知道的10件事,1.5万字!
查看>>
MySQL中使用IN()查询到底走不走索引?
查看>>
Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
查看>>
MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
查看>>
mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
查看>>
mysql中出现Unit mysql.service could not be found 的解决方法
查看>>
mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
查看>>
Mysql中各类锁的机制图文详细解析(全)
查看>>
MySQL中地理位置数据扩展geometry的使用心得
查看>>
Mysql中存储引擎简介、修改、查询、选择
查看>>
Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
查看>>
mysql中实现rownum,对结果进行排序
查看>>
mysql中对于数据库的基本操作
查看>>
Mysql中常用函数的使用示例
查看>>
MySql中怎样使用case-when实现判断查询结果返回
查看>>
Mysql中怎样使用update更新某列的数据减去指定值
查看>>
Mysql中怎样设置指定ip远程访问连接
查看>>
mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍
查看>>