博客
关于我
MySQL和SQL入门
阅读量:791 次
发布时间: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学习总结(23)——MySQL统计函数和分组查询
查看>>
Mysql学习总结(24)——MySQL多表查询合并结果和内连接查询
查看>>
Mysql学习总结(25)——MySQL外连接查询
查看>>
Mysql学习总结(26)——MySQL子查询
查看>>
Mysql学习总结(27)——Mysql数据库字符串函数
查看>>
Mysql学习总结(28)——MySQL建表规范与常见问题
查看>>
Mysql学习总结(29)——MySQL中CHAR和VARCHAR
查看>>
Mysql学习总结(2)——Mysql超详细Window安装教程
查看>>
Mysql学习总结(30)——MySQL 索引详解大全
查看>>
Mysql学习总结(31)——MySql使用建议,尽量避免这些问题
查看>>
Mysql学习总结(32)——MySQL分页技术详解
查看>>
Mysql学习总结(33)——阿里云centos配置MySQL主从复制
查看>>
Mysql学习总结(35)——Mysql两千万数据优化及迁移
查看>>
Mysql学习总结(36)——Mysql查询优化
查看>>
Mysql学习总结(37)——Mysql Limit 分页查询优化
查看>>
Mysql学习总结(38)——21条MySql性能优化经验
查看>>
Mysql学习总结(39)——49条MySql语句优化技巧
查看>>
Mysql学习总结(3)——MySql语句大全:创建、授权、查询、修改等
查看>>
Mysql学习总结(40)——MySql之Select用法汇总
查看>>
Mysql学习总结(41)——MySql数据库基本语句再体会
查看>>