博客
关于我
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启动失败:Can't start server: Bind on TCP/IP port
查看>>
mysql启动报错
查看>>
mysql启动报错The server quit without updating PID file几种解决办法
查看>>
MySQL命令行登陆,远程登陆MySQL
查看>>
mysql命令:set sql_log_bin=on/off
查看>>
mySQL和Hive的区别
查看>>
MySQL和Java数据类型对应
查看>>
mysql和oorcale日期区间查询【含左右区间问题】
查看>>
MySQL和SQL入门
查看>>
mysql在centos下用命令批量导入报错_Variable ‘character_set_client‘ can‘t be set to the value of ‘---linux工作笔记042
查看>>
Mysql在Linux运行时新增配置文件提示:World-wrirable config file ‘/etc/mysql/conf.d/my.cnf‘ is ignored 权限过高导致
查看>>
Mysql在Windows上离线安装与配置
查看>>
MySQL在渗透测试中的应用
查看>>
Mysql在离线安装时启动失败:mysql服务无法启动,服务没有报告任何错误
查看>>
Mysql在离线安装时提示:error: Found option without preceding group in config file
查看>>
MySQL基于SSL的主从复制
查看>>
Mysql基本操作
查看>>
mysql基本操作
查看>>
mysql基础
查看>>
mysql基础---mysql查询机制
查看>>