博客
关于我
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截取sql语句
查看>>
mysql截取身份证号前几位_EXCEL中怎样截取身份证号前六位数字
查看>>
mysql手工注入
查看>>
MySQL执行SQL文件出现【Unknown collation ‘utf8mb4_0900_ai_ci‘】的解决方案
查看>>
Mysql执行update by id的过程
查看>>
mysql执行计划
查看>>
MySQL执行计划 EXPLAIN参数
查看>>
MySQL执行计划【explain】,看这一篇就够啦!
查看>>
Mysql执行计划字段解释
查看>>
mysql执行计划怎么看
查看>>
MySQL执行计划解读
查看>>
mysql执行顺序与索引算法
查看>>
mysql批量update优化_Mysql中,21个写SQL的好习惯,你值得拥有呀
查看>>
mysql批量update操作时出现锁表
查看>>
MYSQL批量UPDATE的两种方式
查看>>
mysql批量修改字段名(列名)
查看>>
MySQL批量插入数据遇到错误1213的解决方法
查看>>
mysql技能梳理
查看>>
MySQL报Got an error reading communication packets错
查看>>
Mysql报错Can‘t create/write to file ‘/tmp/#sql_3a8_0.MYD‘ (Errcode: 28 - No space left on device)
查看>>