博客
关于我
MySQL和SQL入门
阅读量:792 次
发布时间: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分组函数
查看>>
MySQL分组查询
查看>>
Mysql分表后同结构不同名称表之间复制数据以及Update语句只更新日期加减不更改时间
查看>>
mySql分页Iimit优化
查看>>
MySQL分页查询
查看>>
mysql列转行函数是什么
查看>>
mysql创建函数报错_mysql在创建存储函数时报错
查看>>
mysql创建数据库和用户 并授权
查看>>
mysql创建数据库指定字符集
查看>>
MySql创建数据表
查看>>
MySQL创建新用户以及ERROR 1396 (HY000)问题解决
查看>>
MySQL创建用户与授权
查看>>
MySQL创建用户报错:ERROR 1396 (HY000): Operation CREATE USER failed for 'slave'@'%'
查看>>
MySQL创建索引时提示“Specified key was too long; max key length is 767 bytes”
查看>>
mysql初始密码错误问题
查看>>
Mysql删除重复数据通用SQL
查看>>
mysql判断某一张表是否存在的sql语句以及方法
查看>>
mysql加入安装策略_一键安装mysql5.7及密码策略修改方法
查看>>
mysql加强(1)~用户权限介绍、分别使用客户端工具和命令来创建用户和分配权限
查看>>
mysql加强(3)~分组(统计)查询
查看>>